diff options
author | Marvin Borner | 2024-03-25 18:59:03 +0100 |
---|---|---|
committer | Marvin Borner | 2024-03-25 18:59:48 +0100 |
commit | 14e38ce378236cf54924b58396168c1e94f8e6b2 (patch) | |
tree | ecbbb75517695de8897a2a9c58aa1a97ec2546f5 /samples/rosetta/validate_isin.bruijn | |
parent | f8398804d351667a7b887b89f6f70c7d5c407d22 (diff) |
Improved samples by adding links to problems
Diffstat (limited to 'samples/rosetta/validate_isin.bruijn')
-rw-r--r-- | samples/rosetta/validate_isin.bruijn | 30 |
1 files changed, 0 insertions, 30 deletions
diff --git a/samples/rosetta/validate_isin.bruijn b/samples/rosetta/validate_isin.bruijn deleted file mode 100644 index 7608ed5..0000000 --- a/samples/rosetta/validate_isin.bruijn +++ /dev/null @@ -1,30 +0,0 @@ -:import luhn_test_of_credit_card_numbers . - -:import std/Number/Conversion . -:import std/Combinator . -:import std/String . -:import std/Char . -:import std/Logic . -:import std/Number . - -# verifies ISIN format -format? [len ⋀? country ⋀? security ⋀? checksum] - len (length 0) =? (+12) - country all? uppercase? (take (+2) 0) - security all? (φ or? uppercase? numeric?) (take (+9) (drop (+2) 0)) - checksum numeric? _0 - -# performs luhn test -checksum? (map (from-base36 → number→string)) → concat → string→number → luhn - from-base36 binary→ternary → [(0 - (0 ≥? (+65) ((+65) - (+10)) (+48)))] - -# performs format and checksum test -validate φ and? format? checksum? - -:test (validate "US0378331005") (true) -:test (validate "US0373831005") (false) -:test (validate "U50378331005") (false) -:test (validate "US03378331005") (false) -:test (validate "AU0000XVGZA3") (true) -:test (validate "AU0000VXGZA3") (true) -:test (validate "FR0000988040") (true) |