Browse Source

Add new test - luhn verification.

pull/50/head
Rafal Kupiec 2 years ago
parent
commit
dc44ee31b8
Signed by: belliash GPG Key ID: 4E829243E0CFE6B4
2 changed files with 50 additions and 0 deletions
  1. +44
    -0
      tests/luhn_verify.aer
  2. +6
    -0
      tests/luhn_verify.exp

+ 44
- 0
tests/luhn_verify.aer View File

@ -0,0 +1,44 @@
class Luhn {
private string $number;
string getNumber() {
return $this->number;
}
void setNumber(string $number) {
$this->number = $number;
}
bool validate() {
string $sum;
string $revNumber;
int $len;
$revNumber = strrev($this->number);
$len = strlen($this->number);
for(int $i = 0; $i < $len; $i++) {
$sum += $i & 1 ? $revNumber[$i] * 2 : $revNumber[$i];
}
return array_sum(str_split($sum)) % 10 === 0;
}
}
class Program {
private const NUMBERS = {'3788803280', '6487308345', '5443489710530865', '5539266155200609', '4024007151066296', '4345234978'};
void main() {
int $i, $nums = sizeof($this->NUMBERS);
object $luhn = new Luhn();
while($i < $nums) {
$luhn->setNumber($this->NUMBERS[$i]);
if($luhn->validate()) {
print('The number ' + $luhn->getNumber() + ' has passed the Luhn validation.' + "\n");
} else {
print('The number ' + $luhn->getNumber() + ' has NOT passed the Luhn validation.' + "\n");
}
$i++;
}
}
}

+ 6
- 0
tests/luhn_verify.exp View File

@ -0,0 +1,6 @@
The number 3788803280 has passed the Luhn validation.
The number 6487308345 has passed the Luhn validation.
The number 5443489710530865 has passed the Luhn validation.
The number 5539266155200609 has passed the Luhn validation.
The number 4024007151066296 has passed the Luhn validation.
The number 4345234978 has NOT passed the Luhn validation.

Loading…
Cancel
Save