cdigit
Version:
Collection of check digit algorithms implemented in JavaScript
1,664 lines (1,662 loc) • 51.2 kB
JavaScript
const common = require("./common");
const algo = require("..").verhoeff;
describe(`${algo.longName} (${algo.name})`, () => {
// {{{ List sample strings
const valid = [
["2363", "236", "3"],
["77286358207", "7728635820", "7"],
["049318037", "04931803", "7"],
["0075173110", "007517311", "0"],
["010248455", "01024845", "5"],
["065689862", "06568986", "2"],
["064797187", "06479718", "7"],
["02020523", "0202052", "3"],
["5270353", "527035", "3"],
["017502336", "01750233", "6"],
["0095572656", "009557265", "6"],
["086822730", "08682273", "0"],
["24250895", "2425089", "5"],
["88203758", "8820375", "8"],
["62286947", "6228694", "7"],
["0053227975", "005322797", "5"],
["74591170", "7459117", "0"],
["0091045568", "009104556", "8"],
["047172497", "04717249", "7"],
["0027170513", "002717051", "3"],
["090756961", "09075696", "1"],
["043703387", "04370338", "7"],
["011686761", "01168676", "1"],
["29194136", "2919413", "6"],
["012247996", "01224799", "6"],
["0053399702", "005339970", "2"],
["048254081", "04825408", "1"],
["67118109", "6711810", "9"],
["90118519", "9011851", "9"],
["0049065976", "004906597", "6"],
["046065543", "04606554", "3"],
["01517237", "0151723", "7"],
["038186337", "03818633", "7"],
["0099449568", "009944956", "8"],
[
"0619608022586647594299264394240912409",
"061960802258664759429926439424091240",
"9",
],
[
"751571178333174470538369159358920359",
"75157117833317447053836915935892035",
"9",
],
[
"0059362834268511520978245333915466478",
"005936283426851152097824533391546647",
"8",
],
[
"0411748883402279030408145005815637207",
"041174888340227903040814500581563720",
"7",
],
[
"00414968085303554412899791050931080521",
"0041496808530355441289979105093108052",
"1",
],
[
"00984648354763114612218738978653552807",
"0098464835476311461221873897865355280",
"7",
],
[
"0149658159204466596324134442965160860",
"014965815920446659632413444296516086",
"0",
],
[
"00124252239509639940057503707379526955",
"0012425223950963994005750370737952695",
"5",
],
[
"570365439806894784840608094925142962",
"57036543980689478484060809492514296",
"2",
],
[
"530094313035154310010313087969542705",
"53009431303515431001031308796954270",
"5",
],
[
"00511271038537428606221225025286500904",
"0051127103853742860622122502528650090",
"4",
],
[
"0092181662135345456478828864059910447",
"009218166213534545647882886405991044",
"7",
],
[
"0239702459361598582949414192067779844",
"023970245936159858294941419206777984",
"4",
],
[
"004850022011833856780912143887483972",
"00485002201183385678091214388748397",
"2",
],
[
"632037560678057215526114539815843668",
"63203756067805721552611453981584366",
"8",
],
[
"0723623766645502131239247939742471",
"072362376664550213123924793974247",
"1",
],
["2363", "236", "3"],
["5357084", "535708", "4"],
["69954516", "6995451", "6"],
["81335211", "8133521", "1"],
["44593650", "4459365", "0"],
["0049950638", "004995063", "8"],
["03896025", "0389602", "5"],
["0068716540", "006871654", "0"],
["0025701100", "002570110", "0"],
["58181453", "5818145", "3"],
["66476930", "6647693", "0"],
["60158862", "6015886", "2"],
["031950144", "03195014", "4"],
["076884255", "07688425", "5"],
["027119369", "02711936", "9"],
["46200920", "4620092", "0"],
["99390631", "9939063", "1"],
["23309489", "2330948", "9"],
["0052478848", "005247884", "8"],
["0075272466", "007527246", "6"],
["0022429632", "002242963", "2"],
["82671168", "8267116", "8"],
["25257216", "2525721", "6"],
["6204713", "620471", "3"],
["0096880514", "009688051", "4"],
["0085591604", "008559160", "4"],
["0099719045", "009971904", "5"],
["84033346", "8403334", "6"],
["55019999", "5501999", "9"],
["24068703", "2406870", "3"],
["16072082", "1607208", "2"],
["059633257", "05963325", "7"],
["77908591", "7790859", "1"],
["090156671", "09015667", "1"],
["97063984", "9706398", "4"],
["039630056", "03963005", "6"],
["73132699", "7313269", "9"],
["012818089", "01281808", "9"],
["0037550877", "003755087", "7"],
["039180764", "03918076", "4"],
["050640092", "05064009", "2"],
["0013503619", "001350361", "9"],
["008152311", "00815231", "1"],
["0076970850", "007697085", "0"],
["059735434", "05973543", "4"],
["59927949", "5992794", "9"],
["0062617894", "006261789", "4"],
["3994053", "399405", "3"],
["0041515823", "004151582", "3"],
["028035955", "02803595", "5"],
["0026902759", "002690275", "9"],
["043346511", "04334651", "1"],
["058307931", "05830793", "1"],
["005379201", "00537920", "1"],
["088748521", "08874852", "1"],
["045303743", "04530374", "3"],
["037986200", "03798620", "0"],
["94141754", "9414175", "4"],
["0044746127", "004474612", "7"],
["0037893182", "003789318", "2"],
["048112347", "04811234", "7"],
["001007449", "00100744", "9"],
["28957659", "2895765", "9"],
["70534852", "7053485", "2"],
["0043697584", "004369758", "4"],
["28345593", "2834559", "3"],
["0068947798", "006894779", "8"],
["0068186947", "006818694", "7"],
["047409719", "04740971", "9"],
["058079449", "05807944", "9"],
["08798054", "0879805", "4"],
["0027584523", "002758452", "3"],
["008760498", "00876049", "8"],
["005723856", "00572385", "6"],
["022728444", "02272844", "4"],
["6198089", "619808", "9"],
["097573240", "09757324", "0"],
["80088936", "8008893", "6"],
["046478565", "04647856", "5"],
["48387817", "4838781", "7"],
["0096366066", "009636606", "6"],
["045766558", "04576655", "8"],
["087921639", "08792163", "9"],
["33029563", "3302956", "3"],
["007928987", "00792898", "7"],
["25136481", "2513648", "1"],
["0079785128", "007978512", "8"],
["67271824", "6727182", "4"],
["096873288", "09687328", "8"],
["0051034541", "005103454", "1"],
["76638436", "7663843", "6"],
["74406025", "7440602", "5"],
["56077139", "5607713", "9"],
["94780690", "9478069", "0"],
["0029350101", "002935010", "1"],
["010109963", "01010996", "3"],
["30388490", "3038849", "0"],
["079739588", "07973958", "8"],
["009479211", "00947921", "1"],
["0082839775", "008283977", "5"],
["096913209", "09691320", "9"],
["88776574", "8877657", "4"],
["0057514795", "005751479", "5"],
["30721109", "3072110", "9"],
["83170592", "8317059", "2"],
["43313999", "4331399", "9"],
["007048883", "00704888", "3"],
["051140200", "05114020", "0"],
["73940783", "7394078", "3"],
["0091891832", "009189183", "2"],
["49272239", "4927223", "9"],
["0068185128", "006818512", "8"],
["67617282", "6761728", "2"],
["65713108", "6571310", "8"],
["099946176", "09994617", "6"],
["0070716474", "007071647", "4"],
["02300297", "0230029", "7"],
["034150296", "03415029", "6"],
["010254002", "01025400", "2"],
["86779951", "8677995", "1"],
["086961859", "08696185", "9"],
["28995408", "2899540", "8"],
["38121883", "3812188", "3"],
["045117546", "04511754", "6"],
["02319886", "0231988", "6"],
["65649070", "6564907", "0"],
["0057979702", "005797970", "2"],
["0092484360", "009248436", "0"],
["74295647", "7429564", "7"],
[
"47472527385003521126608921299727",
"4747252738500352112660892129972",
"7",
],
["578651888655276976272240700845", "57865188865527697627224070084", "5"],
[
"471473464859818700038365081171897410871366885",
"47147346485981870003836508117189741087136688",
"5",
],
["8067575", "806757", "5"],
["81630414138626", "8163041413862", "6"],
[
"808170781119145175099445060453425555444",
"80817078111914517509944506045342555544",
"4",
],
["58484", "5848", "4"],
[
"6958108080046405118603227972409226935222438",
"695810808004640511860322797240922693522243",
"8",
],
["07276417", "0727641", "7"],
[
"07474016544847316388583741378626812",
"0747401654484731638858374137862681",
"2",
],
[
"4501484854892115164027230015029964933752",
"450148485489211516402723001502996493375",
"2",
],
["63949435180977", "6394943518097", "7"],
["788458292213", "78845829221", "3"],
[
"215723382047296102691497779668798420918",
"21572338204729610269149777966879842091",
"8",
],
["7841976343306", "784197634330", "6"],
[
"309616646381463309589638776224567255605",
"30961664638146330958963877622456725560",
"5",
],
[
"417448540225969640760547898468296",
"41744854022596964076054789846829",
"6",
],
["1562824", "156282", "4"],
[
"15970012725138617819391854596792989987200467755",
"1597001272513861781939185459679298998720046775",
"5",
],
["87143195401943", "8714319540194", "3"],
[
"3511818922292078482112508860355400343974705",
"351181892229207848211250886035540034397470",
"5",
],
["13247842413305984780552", "1324784241330598478055", "2"],
[
"7414118746130251062242934128847394064854",
"741411874613025106224293412884739406485",
"4",
],
["058050107625", "05805010762", "5"],
["0718848221770851190449", "071884822177085119044", "9"],
["96446882342797788647357", "9644688234279778864735", "7"],
["51592434201317972", "5159243420131797", "2"],
["42028413572001147", "4202841357200114", "7"],
["2281584", "228158", "4"],
["151223", "15122", "3"],
[
"471396150613484246898401412276255028410253",
"47139615061348424689840141227625502841025",
"3",
],
["87325336031732956975400", "8732533603173295697540", "0"],
["536603402", "53660340", "2"],
["1935188887320320588509107013", "193518888732032058850910701", "3"],
["15", "1", "5"],
[
"95581615533245229832000892562896565",
"9558161553324522983200089256289656",
"5",
],
[
"9541278279520013845028105960399371",
"954127827952001384502810596039937",
"1",
],
[
"510245767802563133781845589882291364003",
"51024576780256313378184558988229136400",
"3",
],
["10434044", "1043404", "4"],
[
"073860761669551677038835392199279127099187962827",
"07386076166955167703883539219927912709918796282",
"7",
],
[
"7191124612264058739662120965466717966550",
"719112461226405873966212096546671796655",
"0",
],
["6704317210", "670431721", "0"],
[
"28353789785306988169937598516777367665931534",
"2835378978530698816993759851677736766593153",
"4",
],
[
"32160861338393661758422278283202307495841",
"3216086133839366175842227828320230749584",
"1",
],
["245610040963", "24561004096", "3"],
["2982464111", "298246411", "1"],
[
"3400462952974306349992685290192348",
"340046295297430634999268529019234",
"8",
],
["847477637", "84747763", "7"],
[
"5961914703649251855229193000514562288442827",
"596191470364925185522919300051456228844282",
"7",
],
["7512530788287053483979398673", "751253078828705348397939867", "3"],
[
"50485096365465538783533512676763572121",
"5048509636546553878353351267676357212",
"1",
],
["208103268385740219343957958", "20810326838574021934395795", "8"],
["8368895397", "836889539", "7"],
[
"7934342452076413107847989347700180234",
"793434245207641310784798934770018023",
"4",
],
[
"074161875867002771716229961205855106863",
"07416187586700277171622996120585510686",
"3",
],
["446103877392", "44610387739", "2"],
["4355", "435", "5"],
[
"448492377955969095272190781552113435139417574373",
"44849237795596909527219078155211343513941757437",
"3",
],
["12899947947170761264", "1289994794717076126", "4"],
[
"040523019081487822922837019340897139",
"04052301908148782292283701934089713",
"9",
],
["71152215707236542103615318972", "7115221570723654210361531897", "2"],
[
"572522654876736485951787730406547757558170025",
"57252265487673648595178773040654775755817002",
"5",
],
[
"72863113476483611929330330245621530717163",
"7286311347648361192933033024562153071716",
"3",
],
["89", "8", "9"],
["739343909307920902501", "73934390930792090250", "1"],
[
"1979472757954783750385710848268504812833714803",
"197947275795478375038571084826850481283371480",
"3",
],
[
"801330544915027109196158068475984369",
"80133054491502710919615806847598436",
"9",
],
[
"306816716504605142886528627590934314",
"30681671650460514288652862759093431",
"4",
],
[
"6419638721565866077315422954178010289",
"641963872156586607731542295417801028",
"9",
],
["248446239124543958", "24844623912454395", "8"],
["0653613774", "065361377", "4"],
[
"5930470396799118957238898772652479",
"593047039679911895723889877265247",
"9",
],
["055372", "05537", "2"],
["70", "7", "0"],
["4145765249", "414576524", "9"],
[
"20325178315256589550373445619221377123",
"2032517831525658955037344561922137712",
"3",
],
[
"9954988155696836224117777421556669060608662",
"995498815569683622411777742155666906060866",
"2",
],
[
"1387846460419688511283004110357890669879047611",
"138784646041968851128300411035789066987904761",
"1",
],
[
"572019655926922379634494349391127",
"57201965592692237963449434939112",
"7",
],
[
"4872807203148348149411848114091398613988419",
"487280720314834814941184811409139861398841",
"9",
],
[
"6526277165122432610041054365731351240690051502737",
"652627716512243261004105436573135124069005150273",
"7",
],
["07381191527051124609426545", "0738119152705112460942654", "5"],
[
"023163066751725159691224423016152158517",
"02316306675172515969122442301615215851",
"7",
],
["0697674179414175376627439735574", "069767417941417537662743973557", "4"],
[
"074490578393501341755098326537511336",
"07449057839350134175509832653751133",
"6",
],
["153545090518847318456269", "15354509051884731845626", "9"],
["402863024653572433736245", "40286302465357243373624", "5"],
["1284322", "128432", "2"],
[
"88278997436190282688248217481211460",
"8827899743619028268824821748121146",
"0",
],
["052703144595436275923", "05270314459543627592", "3"],
["76439061807040985349996486", "7643906180704098534999648", "6"],
["85371107", "8537110", "7"],
[
"423654471577860242914904617521154",
"42365447157786024291490461752115",
"4",
],
["5649", "564", "9"],
["8861", "886", "1"],
[
"655483045031408187935981916413961780031",
"65548304503140818793598191641396178003",
"1",
],
["6971854", "697185", "4"],
[
"730951904054139647338147012919777455444749",
"73095190405413964733814701291977745544474",
"9",
],
["50464364886091310495544560", "5046436488609131049554456", "0"],
[
"3387503764677101855289964736741318597236518249",
"338750376467710185528996473674131859723651824",
"9",
],
["2653011348", "265301134", "8"],
[
"127665928440836556142027023571267152476",
"12766592844083655614202702357126715247",
"6",
],
["31240141993433584122839559", "3124014199343358412283955", "9"],
["68837231136431479562974626257", "6883723113643147956297462625", "7"],
[
"9251702753595140965816982746786900887592",
"925170275359514096581698274678690088759",
"2",
],
["4879768783355165370221", "487976878335516537022", "1"],
["70284403193", "7028440319", "3"],
[
"09848955112096469768425398373967974265",
"0984895511209646976842539837396797426",
"5",
],
["670477835", "67047783", "5"],
["2459360227254053907", "245936022725405390", "7"],
["180380021004799556285995669135", "18038002100479955628599566913", "5"],
["1546125953852364176498", "154612595385236417649", "8"],
[
"929348568675219466259529221975249397514",
"92934856867521946625952922197524939751",
"4",
],
[
"501825246366907057995377364062640189924021287",
"50182524636690705799537736406264018992402128",
"7",
],
["865181199397373167098794254727", "86518119939737316709879425472", "7"],
["134364940266957202370127417", "13436494026695720237012741", "7"],
["96708106542312635035940844", "9670810654231263503594084", "4"],
["231365031186841942", "23136503118684194", "2"],
["76014375185465912722984856802", "7601437518546591272298485680", "2"],
["177233935255610360211", "17723393525561036021", "1"],
["7668121637314", "766812163731", "4"],
[
"166530058025276973855806544144691350586999",
"16653005802527697385580654414469135058699",
"9",
],
["010", "01", "0"],
[
"67770724309815823897683380144132516",
"6777072430981582389768338014413251",
"6",
],
["0052413", "005241", "3"],
["5958342704033684", "595834270403368", "4"],
[
"72565354325345794182571053458856866805007",
"7256535432534579418257105345885686680500",
"7",
],
["432091311801835", "43209131180183", "5"],
["9469237557", "946923755", "7"],
["7201916744106040360", "720191674410604036", "0"],
[
"304296258436370453668936870135091316",
"30429625843637045366893687013509131",
"6",
],
["93641608", "9364160", "8"],
[
"8122212645522637566641013826472342860218344997703",
"812221264552263756664101382647234286021834499770",
"3",
],
[
"44211293408640921123985069935056759131364",
"4421129340864092112398506993505675913136",
"4",
],
["8230290992", "823029099", "2"],
[
"0496673811880631368748171946439882865699",
"049667381188063136874817194643988286569",
"9",
],
[
"09225366298830045901936162552628",
"0922536629883004590193616255262",
"8",
],
["946580818793216209687", "94658081879321620968", "7"],
[
"51783022583753555448898429159027353270",
"5178302258375355544889842915902735327",
"0",
],
[
"466106841719214282869260190579574921861209",
"46610684171921428286926019057957492186120",
"9",
],
["049284227", "04928422", "7"],
["9510384175162789730953192513084", "951038417516278973095319251308", "4"],
[
"431810271939527130954922772984878334499232284",
"43181027193952713095492277298487833449923228",
"4",
],
[
"141438930229681152558862998360771",
"14143893022968115255886299836077",
"1",
],
[
"54593060818479809846579441508574",
"5459306081847980984657944150857",
"4",
],
[
"60027114738342420591537096990939491392623038",
"6002711473834242059153709699093949139262303",
"8",
],
[
"641182129483907564050242389061314",
"64118212948390756405024238906131",
"4",
],
[
"171241642857978014739754935878409420839915548",
"17124164285797801473975493587840942083991554",
"8",
],
[
"36378558642338342726572697959814990107863551",
"3637855864233834272657269795981499010786355",
"1",
],
["0896", "089", "6"],
["2796352057115010433889293", "279635205711501043388929", "3"],
["1200063208394580637339464392", "120006320839458063733946439", "2"],
["619741891032190405", "61974189103219040", "5"],
[
"6753095129352030865845910151526084078283633",
"675309512935203086584591015152608407828363",
"3",
],
[
"613785357253910403008397602433174181",
"61378535725391040300839760243317418",
"1",
],
[
"44372852986096877610739358685125648804608048624",
"4437285298609687761073935868512564880460804862",
"4",
],
[
"868848949516919732857988635022875493",
"86884894951691973285798863502287549",
"3",
],
["9642530688036729879371402057", "964253068803672987937140205", "7"],
[
"355109825074773190071683458258708772",
"35510982507477319007168345825870877",
"2",
],
[
"64301771501480495331873176865976501747641",
"6430177150148049533187317686597650174764",
"1",
],
["2431879", "243187", "9"],
[
"52136740877113789763857128477023450",
"5213674087711378976385712847702345",
"0",
],
[
"875376802133304880275479199194423627052",
"87537680213330488027547919919442362705",
"2",
],
["2616446061717199", "261644606171719", "9"],
[
"1842315471258365782850925651034788202",
"184231547125836578285092565103478820",
"2",
],
["667196511578236805198209975286", "66719651157823680519820997528", "6"],
["023", "02", "3"],
["924249513637503268912189441", "92424951363750326891218944", "1"],
["2721139609021456", "272113960902145", "6"],
["43310471602323", "4331047160232", "3"],
["12465394069601787478", "1246539406960178747", "8"],
["6565222", "656522", "2"],
["95472347004179050", "9547234700417905", "0"],
[
"75211576655206021461129586791285290518",
"7521157665520602146112958679128529051",
"8",
],
["677788184483666864752610", "67778818448366686475261", "0"],
[
"946712329038866596216105398995910281828",
"94671232903886659621610539899591028182",
"8",
],
["138257967151", "13825796715", "1"],
[
"001804364324104362844364015391225593",
"00180436432410436284436401539122559",
"3",
],
["743330245302928647607421366", "74333024530292864760742136", "6"],
[
"616831207398254188997630128422044",
"61683120739825418899763012842204",
"4",
],
[
"58126665293657122620594825924309129719905524182",
"5812666529365712262059482592430912971990552418",
"2",
],
[
"3765659415111749196782531424635984",
"376565941511174919678253142463598",
"4",
],
[
"979610254802657138643263907291799760931601452601",
"97961025480265713864326390729179976093160145260",
"1",
],
["397510", "39751", "0"],
["7858305606255735089", "785830560625573508", "9"],
["017824208276505233196694673738", "01782420827650523319669467373", "8"],
["4047789157978356726882378761", "404778915797835672688237876", "1"],
[
"76901011772743767133901276779369",
"7690101177274376713390127677936",
"9",
],
[
"289413590008948510569810292312486204",
"28941359000894851056981029231248620",
"4",
],
["4588977", "458897", "7"],
["492033574227", "49203357422", "7"],
[
"46573721547739906510415048401610520580203",
"4657372154773990651041504840161052058020",
"3",
],
["540493362", "54049336", "2"],
[
"5621069779891710416286385457134635210256828986",
"562106977989171041628638545713463521025682898",
"6",
],
["3665268331696629169", "366526833169662916", "9"],
["7544", "754", "4"],
[
"1224557560907037338890929429255127",
"122455756090703733889092942925512",
"7",
],
["616121521323572190470845", "61612152132357219047084", "5"],
["3906424786", "390642478", "6"],
["058147238846267603478496540", "05814723884626760347849654", "0"],
["234533430597235", "23453343059723", "5"],
["546712", "54671", "2"],
[
"9284607736155933256340682147722222743879988",
"928460773615593325634068214772222274387998",
"8",
],
["551644367988897874727", "55164436798889787472", "7"],
["7338925160393604809574", "733892516039360480957", "4"],
[
"7690812242386604404019829756447885460",
"769081224238660440401982975644788546",
"0",
],
[
"56274563019247842309709386954930770609332082247",
"5627456301924784230970938695493077060933208224",
"7",
],
[
"86475240735450285023433294923530",
"8647524073545028502343329492353",
"0",
],
[
"03212647567822456702425009014951060352553",
"0321264756782245670242500901495106035255",
"3",
],
["266480190868", "26648019086", "8"],
[
"927821725296148426476807944279201262",
"92782172529614842647680794427920126",
"2",
],
[
"0780609296632970558148277876684767",
"078060929663297055814827787668476",
"7",
],
["04", "0", "4"],
["66250435", "6625043", "5"],
[
"20457658154587967319694117651780852306432660",
"2045765815458796731969411765178085230643266",
"0",
],
["886018675909865767782", "88601867590986576778", "2"],
["6307157097015472724528369", "630715709701547272452836", "9"],
[
"00165954599614659621054558681707155768266",
"0016595459961465962105455868170715576826",
"6",
],
["545638648025027", "54563864802502", "7"],
["3943717670", "394371767", "0"],
["8774929932", "877492993", "2"],
[
"0849200362898967823283440255109541230542700386",
"084920036289896782328344025510954123054270038",
"6",
],
["61147237029083891402524358", "6114723702908389140252435", "8"],
["11423475079107645", "1142347507910764", "5"],
[
"113158306016793573985192397139258254653498",
"11315830601679357398519239713925825465349",
"8",
],
[
"7613966577968241842767070624872020",
"761396657796824184276707062487202",
"0",
],
["410352166410661511426975203999", "41035216641066151142697520399", "9"],
["94568548849905270676232975", "9456854884990527067623297", "5"],
[
"8830727474004826185481337298230188988101",
"883072747400482618548133729823018898810",
"1",
],
[
"63183742986632314841062605057766780",
"6318374298663231484106260505776678",
"0",
],
["2436624121757565878755286894350", "243662412175756587875528689435", "0"],
[
"11964705152021180121857328001120",
"1196470515202118012185732800112",
"0",
],
["033920640", "03392064", "0"],
["71748859419413397", "7174885941941339", "7"],
[
"5853383386763501219526897032664943",
"585338338676350121952689703266494",
"3",
],
["1440", "144", "0"],
["6326298461130265427691772936", "632629846113026542769177293", "6"],
[
"2095844239005183138630265268910426996256109808",
"209584423900518313863026526891042699625610980",
"8",
],
[
"814898183739639045749160140613806700128",
"81489818373963904574916014061380670012",
"8",
],
["529715372201661298927282485972", "52971537220166129892728248597", "2"],
["1126716065092993444583", "112671606509299344458", "3"],
[
"91389212628869186269042431437226360523309963",
"9138921262886918626904243143722636052330996",
"3",
],
["43", "4", "3"],
["071291", "07129", "1"],
["11159805151775509258", "1115980515177550925", "8"],
["3362637982893", "336263798289", "3"],
["820893447", "82089344", "7"],
[
"410293711611479593685471253337968180918436629",
"41029371161147959368547125333796818091843662",
"9",
],
[
"3965414133922330175090218279025584088023603175474",
"396541413392233017509021827902558408802360317547",
"4",
],
[
"587821569546302656728110071777192",
"58782156954630265672811007177719",
"2",
],
[
"475140675336434114458206777771806596907",
"47514067533643411445820677777180659690",
"7",
],
[
"95440236248636430361110534696942689",
"9544023624863643036111053469694268",
"9",
],
[
"5052952368132520342109817626510748565762",
"505295236813252034210981762651074856576",
"2",
],
[
"3271216455871116997885183376587550943507508829",
"327121645587111699788518337658755094350750882",
"9",
],
[
"86366047829200706649648346363105480",
"8636604782920070664964834636310548",
"0",
],
[
"250722564707934941234522229019145491439915297893",
"25072256470793494123452222901914549143991529789",
"3",
],
["426430602791008", "42643060279100", "8"],
[
"26997074264880141976791085131438309192724231",
"2699707426488014197679108513143830919272423",
"1",
],
[
"70488162512672474899847618652138",
"7048816251267247489984761865213",
"8",
],
[
"51265684849396901442725147231785933",
"5126568484939690144272514723178593",
"3",
],
["3473117764678085702329348147306", "347311776467808570232934814730", "6"],
[
"553033568847799302765752559422347442",
"55303356884779930276575255942234744",
"2",
],
["7647981454553445", "764798145455344", "5"],
["3564116232664938340291537", "356411623266493834029153", "7"],
["33100606307587344168911616", "3310060630758734416891161", "6"],
["132", "13", "2"],
[
"13644630556260552414880721809848171483343812",
"1364463055626055241488072180984817148334381",
"2",
],
["39708540282346466500", "3970854028234646650", "0"],
[
"03578495735402006448909444873014806211",
"0357849573540200644890944487301480621",
"1",
],
[
"47121035753107935312896371071470619325",
"4712103575310793531289637107147061932",
"5",
],
[
"09609301121375302548401025957006679616168408380",
"0960930112137530254840102595700667961616840838",
"0",
],
["5638920395350772359395169", "563892039535077235939516", "9"],
[
"9992513924995054865186324671026299",
"999251392499505486518632467102629",
"9",
],
[
"057714074474193070202571522671219451456682",
"05771407447419307020257152267121945145668",
"2",
],
["87390", "8739", "0"],
["83677", "8367", "7"],
[
"9661091807058069343366964867944388",
"966109180705806934336696486794438",
"8",
],
["30750972679229", "3075097267922", "9"],
["962207", "96220", "7"],
["9462", "946", "2"],
["89908040274201629949893778", "8990804027420162994989377", "8"],
[
"58501793162300854809021873456826564173",
"5850179316230085480902187345682656417",
"3",
],
[
"0190924829655242534957302905989287",
"019092482965524253495730290598928",
"7",
],
[
"053576122700187891231417681784914115",
"05357612270018789123141768178491411",
"5",
],
[
"63607984194633949281972245333621",
"6360798419463394928197224533362",
"1",
],
["04", "0", "4"],
["779787404538", "77978740453", "8"],
[
"621446303170570097504935621490718476",
"62144630317057009750493562149071847",
"6",
],
["7378", "737", "8"],
["841565813581720471", "84156581358172047", "1"],
["6950886", "695088", "6"],
["410169621940357473", "41016962194035747", "3"],
["38458035824288191903429984", "3845803582428819190342998", "4"],
[
"3995216349455283620155104148211822105148386",
"399521634945528362015510414821182210514838",
"6",
],
[
"25278608484865341186090978973901720337207",
"2527860848486534118609097897390172033720",
"7",
],
["3127032822850044501816949622", "312703282285004450181694962", "2"],
[
"66584942438763433170039681301193820310",
"6658494243876343317003968130119382031",
"0",
],
["790", "79", "0"],
[
"2102263314894454535941964602783083465201",
"210226331489445453594196460278308346520",
"1",
],
["1324001755794874216407", "132400175579487421640", "7"],
["067785872189", "06778587218", "9"],
["018562992436396820081", "01856299243639682008", "1"],
["8138502922008623964012", "813850292200862396401", "2"],
[
"19267207700685374491970713164351470578",
"1926720770068537449197071316435147057",
"8",
],
[
"4046521395820759285997975699531204195903299",
"404652139582075928599797569953120419590329",
"9",
],
[
"55704840195940992887220171779369253750",
"5570484019594099288722017177936925375",
"0",
],
["1035835607434370210230926838", "103583560743437021023092683", "8"],
["85070806896717062015814", "8507080689671706201581", "4"],
[
"92897641281265710777538511443892772373739",
"9289764128126571077753851144389277237373",
"9",
],
["03670885475", "0367088547", "5"],
["81025664", "8102566", "4"],
[
"4403600391847644769674853027138862545724169",
"440360039184764476967485302713886254572416",
"9",
],
["877949754143713382", "87794975414371338", "2"],
[
"170162766060251199736805166456797602726",
"17016276606025119973680516645679760272",
"6",
],
[
"085915311629114532564223219312210654",
"08591531162911453256422321931221065",
"4",
],
[
"40119778085557083655141519218004721995644783",
"4011977808555708365514151921800472199564478",
"3",
],
["1575119", "157511", "9"],
["80054843983084196874", "8005484398308419687", "4"],
[
"1879491554461057311296433889894363137396925843964",
"187949155446105731129643388989436313739692584396",
"4",
],
["5838178017684557935645530044174", "583817801768455793564553004417", "4"],
["091767212457421709152144", "09176721245742170915214", "4"],
[
"512665928213450814292914462596098",
"51266592821345081429291446259609",
"8",
],
["014147487282828214330300098153", "01414748728282821433030009815", "3"],
["157187", "15718", "7"],
["555416368658", "55541636865", "8"],
[
"4176570446885334912930016303568024",
"417657044688533491293001630356802",
"4",
],
[
"14145187408030046545672427968361519913208844334",
"1414518740803004654567242796836151991320884433",
"4",
],
["42270475740768344177528", "4227047574076834417752", "8"],
["35013614", "3501361", "4"],
["984264193905361", "98426419390536", "1"],
["09437768681", "0943776868", "1"],
["9277", "927", "7"],
["522", "52", "2"],
["634094160361232941055326894940", "63409416036123294105532689494", "0"],
[
"10418779185582875895974656964441",
"1041877918558287589597465696444",
"1",
],
[
"676554694452753487865945193538533419",
"67655469445275348786594519353853341",
"9",
],
[
"1314661511369077790858821556192928505449066084",
"131466151136907779085882155619292850544906608",
"4",
],
["270", "27", "0"],
["10532394083990", "1053239408399", "0"],
["997455", "99745", "5"],
[
"2045785887215148393754369826127105718538178540661",
"204578588721514839375436982612710571853817854066",
"1",
],
["2475267864", "247526786", "4"],
["966624595494755590515307", "96662459549475559051530", "7"],
["57981", "5798", "1"],
["21355897951033612", "2135589795103361", "2"],
[
"026049998769431450055635875680911",
"02604999876943145005563587568091",
"1",
],
["250864380", "25086438", "0"],
["92986", "9298", "6"],
[
"10946162876718645648421011887788131809703404",
"1094616287671864564842101188778813180970340",
"4",
],
[
"88721432168084771684824129751811071277575246",
"8872143216808477168482412975181107127757524",
"6",
],
[
"6730429987748153018633539709661643236614",
"673042998774815301863353970966164323661",
"4",
],
[
"8862102465737572715649880371325741412406922147390",
"886210246573757271564988037132574141240692214739",
"0",
],
["30274960641621", "3027496064162", "1"],
["8097", "809", "7"],
["126807588951", "12680758895", "1"],
[
"9874329665116237802673591422377383522420247382759",
"987432966511623780267359142237738352242024738275",
"9",
],
[
"7063492855787523421924948449795390",
"706349285578752342192494844979539",
"0",
],
["88331", "8833", "1"],
[
"94805898669155207632533028433760525359417106",
"9480589866915520763253302843376052535941710",
"6",
],
["2936095146044", "293609514604", "4"],
["16946990012545948799", "1694699001254594879", "9"],
["6919900806054232660731616", "691990080605423266073161", "6"],
["57722485750987038203448723", "5772248575098703820344872", "3"],
["62", "6", "2"],
["5781860123067848", "578186012306784", "8"],
["65453886571972255287", "6545388657197225528", "7"],
["43", "4", "3"],
[
"0405235462308623467925967348123894534958757",
"040523546230862346792596734812389453495875",
"7",
],
[
"0087832218133003424805300875159833",
"008783221813300342480530087515983",
"3",
],
["7868003557", "786800355", "7"],
[
"3073121140530932513390786179489642454746",
"307312114053093251339078617948964245474",
"6",
],
[
"500367135196457642427016595452317339041",
"50036713519645764242701659545231733904",
"1",
],
[
"30099351341503084699104955474082",
"3009935134150308469910495547408",
"2",
],
["751427881", "75142788", "1"],
[
"309425119593518451336521951102106871870086762",
"30942511959351845133652195110210687187008676",
"2",
],
["7641708", "764170", "8"],
[
"88636815703835816498874776134403303635838609",
"8863681570383581649887477613440330363583860",
"9",
],
["6728", "672", "8"],
[
"676719283891047251576335875356110",
"67671928389104725157633587535611",
"0",
],
["0330", "033", "0"],
[
"10332081199705807621016704527520295741467",
"1033208119970580762101670452752029574146",
"7",
],
["9869488", "986948", "8"],
["7285634968854933951433", "728563496885493395143", "3"],
["43", "4", "3"],
];
const invalid = [
"2360",
"2361",
"2362",
"2364",
"2365",
"2366",
"2367",
"2368",
"2369",
"002288832",
"68660000",
"85659885",
"02937326",
"35768010",
"041366449",
"04206544",
"0020144219",
"16451505",
"0032495612",
"56321615",
"049348964",
"029241902",
"24163740",
"09017861",
"0046017765",
"040497583",
"33790939",
"014896677",
"32818403",
"048321779",
"03184636",
"037540408",
"77602520",
"066357737",
"025119036",
"031928250",
"0012341465",
"1308344",
"0090703029",
"065888907",
"0061642970",
"280579137429739104195",
"6085681426257633536000798077875",
"717697090252304489738263410",
"6882072646996151507423372",
"60601",
"13406",
"61848424302551420827686325266353",
"18829360909683931375487214661261559711480",
"53193090772",
"2332983077375559555860",
"986",
"130574480553649829079539073810665241225670",
"310771541553596567492583172313",
"3118992092394502110871104425402017050423252",
"33987166780818899",
"664906519703194714723029601693638986768533",
"9204430832762997906229471953",
"6391549362",
"206976922680937684543527077691116",
"20428",
"738298975733603081758558164726183",
"1607521933",
"02912319235376434218185",
"046563570274025",
"1750542573503540",
"9673732456719755291477112860274078452184",
"7780777342679090497838589448116828434784",
"653783514618805876413691316433",
"324373637",
"989695026144622025052971577726505622010850",
"991424657728753644764865549859267977398898514",
"648165508153387616881148814723686742865545",
"392782253130738353940751",
"814897949618082620108870",
"6386993373893746257540",
"41691800168046",
"457030608141",
"6841263793087756799906446",
"9552951545919796571",
"6971814446267281823",
"71138152734193368836",
"5545665534059345435252627434636333",
"6813918766249588053530643625441398030467329759007",
"33282033703724369522097592284",
"009234",
"17040798285281778",
"87763635143467532856614261038600256",
"41850408446012103168093140",
"578",
"092709999043408408684492051307235055614873",
"88543035268355329879297424354145550400",
"1774",
"4531788126951511103018571062388558",
"990134523870477090466181880843987291949885959241",
"988484545707146475187582193",
"13337814823379738884559814719",
"837211845206674130064313",
"365953110743193509999242919430961280",
"0007044908113930",
"075022040642805376993902144404403428563883422237",
"33041762152470308493652005",
"78480454218181044968858455391848174964677306",
"024109559581284684764809003959256",
"27542905916293537645393816923191631",
"28559386938553",
"2158119067583293205433009345094",
"653429177787877618131",
"239440969341144732177982591227",
"3618483",
"8945327597727070192113523493978684571944",
"69191599639328935966",
"868030643121162962",
"61257684159688232312000684",
"5751527223278021256437459438707106639209766850",
"868492230934203271850368",
"64456538820024959414090523",
"14057229952448069389181103384",
"183606217130457254050397961947309230587257976661",
"7712839",
"048375675356326690428997",
"897",
"03785499703353634697972",
"10734850666647953264643789306752083992665",
"83664186446638946172063939043141245747018",
"08570172023118587324474475288184",
"9827812806",
"632514063483704528",
"9638748568043987540240353189274026699231",
"482875376245121369425869256810185513759457",
"496299499399999976434325660531",
"6446996589728505784811227428941",
"63335425987989068377",
"157448491539381037244214418880956255715",
"35841884324640379382132453",
"019678418971707105068759902113377348121832",
"8943112033276",
"7577068377534033599768602362104434986992",
"507619306788637390321936940123708454505871099",
"71372591550821",
"73501885396580",
"532386457638656638468285496100913781",
"483035579251939931672119874624522808",
"9008",
"6441745654676591",
"986",
"09853471132",
"0199133208081338774360969274932",
"30539635149205750334410285067601694843525155",
"6360210158582695",
"27580599",
"743987443332",
"799008863095",
"96450655620119702297287893",
"6196208178904",
"4000026195859872836095354268",
"39023828",
"636578204178149296876709828054030196095118694",
"50839689220815873395",
"352156059701386",
"60084658173933184013423817662541896008184230",
"08575",
"480177471",
"9109075785900545718254291511262773044",
"22638499904974160068254077",
"86534861427267471811165020701636",
"2860901185313272434272326291694002000847",
"1129820145016806344877",
"8797084395644978892359418065968",
"2772",
"246064557926651795892",
"872756656246505417163",
"4947805052421",
"866",
"7769847411268043428919415981",
"574484301811309425948493503917264518",
"353526770601477145089228934847131883",
"0203424",
"3565411827843087689612452608935815145493528644352",
"84811926080755738",
"404873767913093805894324269616490700746512389454",
"7454154376605849279591231929739005887",
"72063023300599477633712",
"63545248142077710",
"563",
"801278247194244966506484566",
"2740081663813955",
"2059070981324876078583753787965474759",
"549580780549435876",
"3728171351636993486735759297573574",
"926299020062675598996",
"55303804922197891176527",
"68354315920449",
"146094855209123191749979249270050710517719394483",
"36994349465207142",
"018",
"630873264094409947107783305266",
"7594",
"267110237653514971619",
"116681331867043910418886434886741635512600134042",
"4066450816848588",
"5174193344819529488220",
"287607116315086331999849925741323787482838",
"8300419665420968757496048455001729921",
"107361629040473099989820634",
"8497737270499234318982118576211683057721053604",
"330664333958023183033252907748",
"57497100406479863159633129104129534351923710",
"3768544",
"4899639794534200998067384474",
"4579636350515270426440027449021694883140534468736",
"9189425900",
"171536708159669604756270",
"665735173728679479792949206181865343670",
"42428182110578094756156028628148581",
"2829986547892727295",
"25",
"606849520401197079158",
"55399583460399689735",
"965301667021180096917270321416736061337",
"312701222629567442236084766711598544297454262",
"195904697674410738850499615279475206126553",
"353590442582023309699859566075923673357471",
"24169136707663783856333149168304073529066222",
"23809291983102009419287805039457988262",
"064855824431443239545222669527125224",
"07580884219927113197750969822134886329620",
"311562123398352572509",
"2834729814471",
"614",
"49058399614661576598150567638533363830646013",
"277398729114619601028359084827873738912279272",
"864789294050550",
"00242065956408928073459672",
"25837978",
"28117844114595904864845",
"100903452333992572783353",
"0796816008147533531567442297014676753220278",
"82557932001086783880611800801069283569",
"364629690028696544939525010359",
"3291912582",
"463739226504075743641658666181020951162429",
"03339886123133952901799409094",
"52425420781305012043194119532",
"0006043821428195958278594288406451529343158450168",
"9185354",
"12820939",
"0932221534079",
"88008385396380835860239",
"66853",
"391250",
"44925",
"1742",
"338551963235493526742666249817",
"1405230658",
"963658410",
"455630291269591948400",
"763538761081312536120204779854098",
"513759472902623062491557",
"0356556438785486077132555664548878",
"76128793370998595537340263343929931791982609",
"619231525463430335863879059389227051",
"4351540517595645",
"113139662",
"852631527163617184055630972261",
"70352909",
"1509473197216",
"193143350608398265638281354535148311031",
"1648688984873178129512107",
"9800143153419944",
"6321039723741296276795370355918430296442333",
"247617075390613667",
"0540103669084",
"9218656815729194622335467766156182",
"2072736856043092870202341",
"611938560904",
"17935325519175474541592946722227097754",
"233549863080230314876570436468350643885007",
"4773480032405487787205557475517216546749862748967",
"44290927",
"8035216329768880484375397928952974293981361",
"05179064635827017256213228387722460718",
"5183515",
"1825",
"76447849094216676865982169414",
"47488920742526678355238501196982943",
"36086888918",
"0766536143595539827443881549643",
"1821282954412609842",
"111004192",
"0437698382606478169644497571154201538014",
"0987071",
"8692343796455967294905325",
"63639474985216722032927776252961922965426776299",
"558092429820863132513719582564965",
"26131781797187701282763604967",
"719080019857564616719389931215569325327379259",
"241003972054",
"641420118670",
"986119600359",
"9976897425950418687265090",
"805252205230627782",
"378333212075972784999112343003566074815913",
"263034313",
"33838029680940280532812072566521279788",
"25388359679895429710004892",
"8050312505145358186",
"05467",
"4421",
"9775830550208081331484",
"430183",
"59355942435834704334",
"178974252915914588906745879437023",
"78171807573004775664518",
"21883293014855178271982",
"52141019127583600009243",
"167758909625819762338700235234647321022549",
"48021576826444734228545813376972485671462",
"54311206893958047793",
"59",
"7120750557255056508656587440",
"655840279755383748343382727322016606286290256208",
"651318943110263712605512518862109121146116",
"54817192958468979609921736779569982525753515",
"37",
"21805631820633605043353571467484119",
"6729303540795482669499",
"00985138251531",
"781553643402968877436842026371795",
"48973337809114904852826962702074342477150113284",
"8519690004856763699427865408030213",
"396326727205592664781146749485488640787",
"143397142119840025672085121133884485",
"296155136153941664598091184621126201",
"89802921807541963965214149755326422258004387202",
"178760007",
"8041983188170663708369181185888400544243581554312",
"112535217797118323562888161621389",
"92717448258612688605991581001409739779",
"066172915821490",
"4252753131423440957",
"31058681230453192803153478861",
"493422834428237966981640401622528990",
"3775265025390468252550887765