Pārlūkot izejas kodu

Luhn checksum tests

n1073645 5 gadi atpakaļ
vecāks
revīzija
54cb2d268b

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

@@ -64,9 +64,15 @@ class LuhnChecksum extends Operation {
      * @returns {string}
      * @returns {string}
      */
      */
     run(input, args) {
     run(input, args) {
+
+        if (!(input)) return "0";
+
         const checkSum = this.checksum(input).toString();
         const checkSum = this.checksum(input).toString();
+
         let checkDigit = this.checksum(input+"0");
         let checkDigit = this.checksum(input+"0");
+
         checkDigit =  (checkDigit === 0 ? 0 : (10-checkDigit)).toString();
         checkDigit =  (checkDigit === 0 ? 0 : (10-checkDigit)).toString();
+
         return "Checksum: " + checkSum + "\n\nCheckdigit: " + checkDigit + "\n\nLuhn Validated String: "+ input + checkDigit;
         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",
         name: "Luhn Checksum on standard data",
         input: "35641709012469",
         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: [
         recipeConfig: [
             {
             {
                 op: "Luhn Checksum",
                 op: "Luhn Checksum",