diff options
Diffstat (limited to 'challenge-162/roger-bell-west/javascript/ch-1.js')
| -rwxr-xr-x | challenge-162/roger-bell-west/javascript/ch-1.js | 52 |
1 files changed, 52 insertions, 0 deletions
diff --git a/challenge-162/roger-bell-west/javascript/ch-1.js b/challenge-162/roger-bell-west/javascript/ch-1.js new file mode 100755 index 0000000000..352d732648 --- /dev/null +++ b/challenge-162/roger-bell-west/javascript/ch-1.js @@ -0,0 +1,52 @@ +#! /usr/bin/node + +function generate(in0) { + let in1 = in0.replace(/[^0-9]+/g,"") + if (in1.length < 12) { + return 99 + } + in1 = in1.substring(0,12) + let s = 0 + let m = 1 + for (let i of String(in1)) { + s += parseInt(i) * m + m = 4 - m + } + return (10-(s % 10)) % 10 +} + +function validate(in0) { + let in1 = in0.replace(/[^0-9]+/g,"") + if (in1.length < 13) { + return false + } + return generate(in1) == parseInt(in1.charAt(12)) +} + +if (generate("978-0-306-40615-") == 7) { + process.stdout.write("Pass") +} else { + process.stdout.write("FAIL") +} +process.stdout.write(" "); + +if (generate("978-0-306-40615-7") == 7) { + process.stdout.write("Pass") +} else { + process.stdout.write("FAIL") +} +process.stdout.write(" "); + +if (validate("978-0-306-40615-7") == true) { + process.stdout.write("Pass") +} else { + process.stdout.write("FAIL") +} +process.stdout.write(" "); + +if (validate("978-0-306-46015-7") == false) { + process.stdout.write("Pass") +} else { + process.stdout.write("FAIL") +} +process.stdout.write("\n"); |
