Verhoeff algorithm: Difference between revisions
Content added Content deleted
Thundergnat (talk | contribs) (→{{header|Raku}}: Add a Raku example) |
Thundergnat (talk | contribs) (→{{header|Raku}}: Oops, order of operations, make a little more concise) |
||
Line 274: | Line 274: | ||
} |
} |
||
say "Checkdigit: {@i[$c]}"; |
say "Checkdigit: {@i[$c]}"; |
||
+($int ~ @i[$c]); |
|||
} |
} |
||
Line 292: | Line 293: | ||
## TESTING |
## TESTING |
||
for 236 |
for 236, 12345, 123456789012 -> $int { |
||
checksum $int, :verbose( $int.chars < 8 ); |
my $check = checksum $int, :verbose( $int.chars < 8 ); |
||
validate $check, :verbose( $int.chars < 8 ); |
validate $check, :verbose( $int.chars < 8 ); |
||
validate +($check.chop ~ 9), :verbose( $int.chars < 8 ); |
validate +($check.chop ~ 9), :verbose( $int.chars < 8 ); |
||
}</lang> |
|||
{{out}} |
{{out}} |
||
<pre>Checkdigit calculation for 236: |
<pre>Checkdigit calculation for 236: |
||
Line 321: | Line 323: | ||
Checkdigit: incorrect |
Checkdigit: incorrect |
||
Checkdigit calculation for |
Checkdigit calculation for 12345: |
||
i ni p(i, ni) c |
i ni p(i, ni) c |
||
0 0 0 0 |
0 0 0 0 |
||
1 |
1 5 8 8 |
||
2 |
2 4 7 1 |
||
3 |
3 3 6 7 |
||
4 |
4 2 5 2 |
||
5 |
5 1 2 4 |
||
⚫ | |||
⚫ | |||
⚫ | |||
Validation calculation for |
Validation calculation for 123451: |
||
i ni p(i, ni) c |
i ni p(i, ni) c |
||
0 |
0 1 1 1 |
||
1 |
1 5 8 9 |
||
2 |
2 4 7 2 |
||
3 |
3 3 6 8 |
||
4 |
4 2 5 3 |
||
⚫ | |||
Checkdigit: |
Checkdigit: correct |
||
Validation calculation for |
Validation calculation for 123459: |
||
i ni p(i, ni) c |
i ni p(i, ni) c |
||
0 9 9 9 |
0 9 9 9 |
||
1 |
1 5 8 1 |
||
2 |
2 4 7 8 |
||
3 |
3 3 6 2 |
||
4 |
4 2 5 7 |
||
5 1 2 5 |
|||
Checkdigit: incorrect |
Checkdigit: incorrect |
||