public function validate($input) { if (!ctype_digit($input)) { return false; } if (mb_strlen($input) !== 9) { return false; } $sum = -1 * $input[8]; for ($i = 9; $i > 1; --$i) { $sum += $i * $input[9 - $i]; } return $sum !== 0 && $sum % 11 === 0; }
/** * @dataProvider providerForInvalidBsn * * @param string $input */ public function testShouldNotValidateBsn($input) { $this->assertFalse($this->rule->validate($input)); }