Browse Source

Luhn checksum tests

n1073645 5 years ago
parent
commit
54cb2d268b
2 changed files with 29 additions and 1 deletions
  1. 6 0
      src/core/operations/LuhnChecksum.mjs
  2. 23 1
      tests/operations/tests/LuhnChecksum.mjs

+ 6 - 0
src/core/operations/LuhnChecksum.mjs

@@ -64,9 +64,15 @@ class LuhnChecksum extends Operation {
      * @returns {string}
      */
     run(input, args) {
+
+        if (!(input)) return "0";
+
         const checkSum = this.checksum(input).toString();
+
         let checkDigit = this.checksum(input+"0");
+
         checkDigit =  (checkDigit === 0 ? 0 : (10-checkDigit)).toString();
+
         return "Checksum: " + checkSum + "\n\nCheckdigit: " + checkDigit + "\n\nLuhn Validated String: "+ input + checkDigit;
     }
 

+ 23 - 1
tests/operations/tests/LuhnChecksum.mjs

@@ -11,7 +11,29 @@ TestRegister.addTests([
     {
         name: "Luhn Checksum on standard data",
         input: "35641709012469",
-        expectedOutput: "7",
+        expectedOutput: "Checksum: 7\n\nCheckdigit: 0\n\nLuhn Validated String: 356417090124690",
+        recipeConfig: [
+            {
+                op: "Luhn Checksum",
+                args: []
+            },
+        ],
+    },
+    {
+        name: "Luhn Checksum on standard data 2",
+        input: "896101950123440000",
+        expectedOutput: "Checksum: 5\n\nCheckdigit: 1\n\nLuhn Validated String: 8961019501234400001",
+        recipeConfig: [
+            {
+                op: "Luhn Checksum",
+                args: []
+            },
+        ],
+    },
+    {
+        name: "Luhn Checksum on standard data 3",
+        input: "35726908971331",
+        expectedOutput: "Checksum: 6\n\nCheckdigit: 7\n\nLuhn Validated String: 357269089713317",
         recipeConfig: [
             {
                 op: "Luhn Checksum",