From bbc29c80f429d7493fdb9cb7987000d633734db5 Mon Sep 17 00:00:00 2001 From: Ian Coleman Date: Thu, 17 Nov 2016 11:59:15 +1100 Subject: Missing cards are detected --- src/js/index.js | 20 ++++++++++++++++++++ tests.js | 38 ++++++++++++++++++++++++++++++++++++-- 2 files changed, 56 insertions(+), 2 deletions(-) diff --git a/src/js/index.js b/src/js/index.js index 6a81601..f4163ee 100644 --- a/src/js/index.js +++ b/src/js/index.js @@ -894,6 +894,26 @@ if (uniqueCards.length == 52) { cardDetail.unshift("full deck"); } + // Detect missing cards + var values = "A23456789TJQK"; + var suits = "CDHS"; + var missingCards = []; + for (var i=0; i 0 && missingCards.length <= 6) { + var msg = missingCards.length + " missing: " + missingCards.slice(0,3).join(" "); + if (missingCards.length > 3) { + msg += "..."; + } + cardDetail.push(msg); + } // Add card details to typeStr if (cardDetail.length > 0) { typeStr += " (" + cardDetail.join(", ") + ")"; diff --git a/tests.js b/tests.js index a0de5fe..13f2c76 100644 --- a/tests.js +++ b/tests.js @@ -2650,7 +2650,7 @@ page.open(url, function(status) { }, { entropy: "ac2c3c4c5c6c7c8c9ctcjcqckcad2d3d4d5d6d7d8d9dtdjdqdkdah2h3h4h5h6h7h8h9hthjhqhkhas2s3s4s5s6s7s8s9stsjsqs3d4d", - type: "card (2 duplicates: 3d 4d)", + type: "card (2 duplicates: 3d 4d, 1 missing: KS)", events: 53, bits: 232, words: 27, @@ -2658,7 +2658,7 @@ page.open(url, function(status) { }, { entropy: "ac2c3c4c5c6c7c8c9ctcjcqckcad2d3d4d5d6d7d8d9dtdjdqdkdah2h3h4h5h6h7h8h9hthjhqhkhas2s3s4s5s6s7s8s9stsjsqs3d4d5d6d", - type: "card (4 duplicates: 3d 4d 5d...)", + type: "card (4 duplicates: 3d 4d 5d..., 1 missing: KS)", events: 53, bits: 243, words: 27, @@ -2690,6 +2690,40 @@ page.open(url, function(status) { 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", + }, ]; // use entropy page.evaluate(function() { -- cgit v1.2.3