Functional Weave
Code in TypeScript

logistics.sscc@1.1.0

vectors.json

2,065 bytes · view raw

[
  { "name": "GS1's own example: (00) 1 0614141 123456789 7", "args": [1, "0614141", 123456789], "expect": "106141411234567897" },
  { "name": "serial zero is padded to fill the nine digits a 7-digit prefix leaves", "args": [0, "5012345", 0], "expect": "050123450000000008" },
  { "name": "a 10-digit prefix leaves six serial digits; check digit 0", "args": [3, "5012345678", 42], "expect": "350123456780000420" },
  { "name": "leading zeros in the prefix are kept", "args": [9, "0000123", 5], "expect": "900001230000000058" },
  { "name": "largest serial a 12-digit prefix allows", "args": [0, "123456789012", 9999], "expect": "012345678901299996" },
  { "name": "a 4-digit prefix leaves twelve serial digits", "args": [1, "1234", 999999999999], "expect": "112349999999999999" },
  { "name": "serial one too large for a 12-digit prefix", "args": [0, "123456789012", 10000], "expectError": "serialReference must fit in 4 digits" },
  { "name": "serial too large for a 7-digit prefix", "args": [1, "0614141", 1000000000], "expectError": "serialReference must fit in 9 digits" },
  { "name": "negative serial", "args": [1, "0614141", -1], "expectError": "serialReference must not be negative" },
  { "name": "extension digit above 9", "args": [10, "0614141", 1], "expectError": "extensionDigit must be 0 to 9" },
  { "name": "negative extension digit", "args": [-1, "0614141", 1], "expectError": "extensionDigit must be 0 to 9" },
  { "name": "prefix too short", "args": [1, "123", 1], "expectError": "companyPrefix must be 4 to 12 digits" },
  { "name": "prefix too long", "args": [1, "1234567890123", 1], "expectError": "companyPrefix must be 4 to 12 digits" },
  { "name": "prefix with a letter", "args": [1, "06141A1", 1], "expectError": "companyPrefix must be 4 to 12 digits" },
  { "name": "prefix with a space is not tidied", "args": [1, "0614 141", 1], "expectError": "companyPrefix must be 4 to 12 digits" },
  { "name": "GS1's check digit worked example: SSCC 37610425002123456 takes 9", "args": [3, "7610425", 2123456], "expect": "376104250021234569" }
]