+ strength: "very strong",
+ },
+ {
+ entropy: "AAAAAAAA BBBBBBBB CCCCCCCC DDDDDDDA EEEEEEEE FFFFFFFF",
+ filtered: "AAAAAAAABBBBBBBBCCCCCCCCDDDDDDDAEEEEEEEEFFFFFFFF",
+ type: "hexadecimal",
+ events: 48,
+ bits: 192,
+ words: 18,
+ strength: "extremely strong",
+ },
+ {
+ entropy: "7d",
+ type: "card",
+ events: 1,
+ bits: 5,
+ words: 0,
+ strength: "extremely weak",
+ },
+ {
+ entropy: "ac2c3c4c5c6c7c8c9ctcjcqckcad2d3d4d5d6d7d8d9dtdjdqdkdah2h3h4h5h6h7h8h9hthjhqhkhas2s3s4s5s6s7s8s9stsjsqsks",
+ type: "card (full deck)",
+ events: 52,
+ bits: 226,
+ words: 27,
+ strength: "extremely strong",
+ },
+ {
+ entropy: "ac2c3c4c5c6c7c8c9ctcjcqckcad2d3d4d5d6d7d8d9dtdjdqdkdah2h3h4h5h6h7h8h9hthjhqhkhas2s3s4s5s6s7s8s9stsjsqsks3d",
+ type: "card (full deck, 1 duplicate: 3d)",
+ events: 53,
+ bits: 232,
+ words: 27,
+ strength: "extremely strong",
+ },
+ {
+ entropy: "ac2c3c4c5c6c7c8c9ctcjcqckcad2d3d4d5d6d7d8d9dtdjdqdkdah2h3h4h5h6h7h8h9hthjhqhkhas2s3s4s5s6s7s8s9stsjsqs3d4d",
+ type: "card (2 duplicates: 3d 4d, 1 missing: KS)",
+ events: 53,
+ bits: 232,
+ words: 27,
+ strength: "extremely strong",
+ },
+ {
+ entropy: "ac2c3c4c5c6c7c8c9ctcjcqckcad2d3d4d5d6d7d8d9dtdjdqdkdah2h3h4h5h6h7h8h9hthjhqhkhas2s3s4s5s6s7s8s9stsjsqs3d4d5d6d",
+ type: "card (4 duplicates: 3d 4d 5d..., 1 missing: KS)",
+ events: 53,
+ bits: 243,
+ words: 27,
+ strength: "extremely strong",
+ },
+ // Next test was throwing uncaught error in zxcvbn
+ {
+ entropy: "ac2c3c4c5c6c7c8c9ctcjcqckcad2d3d4d5d6d7d8d9dtdjdqdkdah2h3h4h5h6h7h8h9hthjhqhkhas2s3s4s5s6s7s8s9stsjsqsksac2c3c4c5c6c7c8c9ctcjcqckcad2d3d4d5d6d7d8d9dtdjdqdkdah2h3h4h5h6h7h8h9hthjhqhkhas2s3s4s5s6s7s8s9stsjsqsks",
+ type: "card (full deck, 52 duplicates: ac 2c 3c...)",
+ events: 104,
+ bits: 452,
+ words: 54,
+ strength: "extremely strong",
+ },
+ // Case insensitivity to duplicate cards
+ {
+ entropy: "asAS",
+ type: "card (1 duplicate: AS)",
+ events: 2,
+ bits: 12,
+ words: 0,
+ strength: "extremely weak",
+ },
+ {
+ entropy: "ASas",
+ type: "card (1 duplicate: as)",
+ events: 2,
+ bits: 12,
+ words: 0,
+ strength: "extremely weak",
+ },
+ // Missing cards are detected
+ {
+ entropy: "ac2c3c4c5c6c7c8c tcjcqckcad2d3d4d5d6d7d8d9dtdjdqdkdah2h3h4h5h6h7h8h9hthjhqhkhas2s3s4s5s6s7s8s9stsjsqsks",
+ type: "card (1 missing: 9C)",
+ events: 51,
+ bits: 226,
+ words: 27,
+ strength: "extremely strong",
+ },
+ {
+ entropy: "ac2c3c4c5c6c7c8c tcjcqckcad2d3d4d 6d7d8d9dtdjdqdkdah2h3h4h5h6h7h8h9hthjhqhkhas2s3s4s5s6s7s8s9stsjsqsks",
+ type: "card (2 missing: 9C 5D)",
+ events: 50,
+ bits: 225,
+ words: 24,
+ strength: "extremely strong",
+ },
+ {
+ entropy: "ac2c3c4c5c6c7c8c tcjcqckcad2d3d4d 6d7d8d9dtdjd kdah2h3h 5h6h7h8h9hthjhqhkhas2s3s4s5s6s7s8s9stsjsqsks",
+ type: "card (4 missing: 9C 5D QD...)",
+ events: 48,
+ bits: 221,
+ words: 24,
+ strength: "extremely strong",
+ },
+ // More than six missing cards does not show message
+ {
+ entropy: "ac2c3c4c5c6c7c8c tcjcqckcad2d3d4d 6d 8d9d jd kdah2h3h 5h6h7h8h9hthjhqhkh 2s3s4s5s6s7s8s9stsjsqsks",
+ type: "card",
+ events: 45,
+ bits: 214,
+ words: 24,
+ strength: "extremely strong",
+ },