Пример #1
0
 /**
  * Test that luhn() returns true if a number passes the luhn algorithm.
  */
 public function testLuhn()
 {
     $this->assertTrue(Validate::luhn('370482756063980'));
     // American Express
     $this->assertTrue(Validate::luhn('5610745867413420'));
     // BankCard
     $this->assertTrue(Validate::luhn('30155483651028'));
     // Diners Club 14
     $this->assertTrue(Validate::luhn('36747701998969'));
     // 2004 MasterCard/Diners Club Alliance International 14
     $this->assertTrue(Validate::luhn('5597511346169950'));
     // 2004 MasterCard/Diners Club Alliance US & Canada 16
     $this->assertTrue(Validate::luhn('6011802876467237'));
     // Discover
     $this->assertTrue(Validate::luhn('201496944158937'));
     // enRoute
     $this->assertTrue(Validate::luhn('210034762247893'));
     // JCB 15 digit
     $this->assertTrue(Validate::luhn('3096806857839939'));
     // JCB 16 digit
     $this->assertTrue(Validate::luhn('5020147409985219'));
     // Maestro (debit card)
     $this->assertTrue(Validate::luhn('5580424361774366'));
     // Mastercard
     $this->assertTrue(Validate::luhn('6767432107064987'));
     // Solo 16
     $this->assertTrue(Validate::luhn('676714834398858593'));
     // Solo 18
     $this->assertTrue(Validate::luhn('6767838565218340113'));
     // Solo 19
     $this->assertTrue(Validate::luhn('5641829171515733'));
     // Switch 16
     $this->assertTrue(Validate::luhn('493622764224625174'));
     // Switch 18
     $this->assertTrue(Validate::luhn('6759603460617628716'));
     // Switch 19
     $this->assertTrue(Validate::luhn('4024007174754'));
     // VISA 13 digit
     $this->assertTrue(Validate::luhn('4916375389940009'));
     // VISA 16 digit
     $this->assertTrue(Validate::luhn('4175003346287100'));
     // Visa Electron
     $this->assertTrue(Validate::luhn('869940697287073'));
     // Voyager
     $this->assertFalse(Validate::luhn('0000000000000000'));
     $this->assertFalse(Validate::luhn('869940697287173'));
 }