+ catch (e) {
+ return e.message;
+ }
+ // Card entropy is used if every pair could be a card
+ try {
+ e = Entropy.fromString("4c3c2c");
+ if (e.base.str != "card") {
+ return "Card entropy not used if all pairs are cards";
+ }
+ }
+ catch (e) {
+ return e.message;
+ }
+ // Card entropy uses base 52
+ // [ cards, binary ]
+ try {
+ var cards = [
+ [ "ac", "00000" ],
+ [ "acac", "00000000000" ],
+ [ "acac2c", "000000000001" ],
+ [ "acks", "00000110011" ],
+ [ "acacks", "00000000000110011" ],
+ [ "2c", "1" ],
+ [ "3d", "1111" ],
+ [ "4h", "11101" ],
+ [ "5s", "101011" ],
+ [ "6c", "101" ],
+ [ "7d", "10011" ],
+ [ "8h", "100001" ],
+ [ "9s", "101111" ],
+ [ "tc", "1001" ],
+ [ "jd", "10111" ],
+ [ "qh", "100101" ],
+ [ "ks", "110011" ],
+ [ "ks2c", "101001011101" ],
+ [ "KS2C", "101001011101" ],
+ ];
+ for (var i=0; i<cards.length; i++) {
+ var card = cards[i][0];
+ var result = cards[i][1];
+ e = Entropy.fromString(card);
+ console.log(e.binary + " " + result);
+ if (e.binaryStr !== result) {
+ return "card entropy not parsed correctly: " + result + " != " + e.binaryStr;
+ }
+ }
+ }
+ catch (e) {
+ return e.message;
+ }
+ return "PASS";