tests.rs (3421B)
1 macro_rules! create_test { 2 ( 3 $wordlist_name: ident, 4 $test_name: ident, 5 $expected_indices: expr, 6 $expected_values: expr, 7 ) => { 8 #[test] 9 fn $test_name() { 10 use diceware_wordlists::$wordlist_name; 11 12 let wanted: Vec<&str> = $expected_values.into_iter().collect(); 13 14 let got: Vec<&str> = $expected_indices 15 .into_iter() 16 .map(|i| $wordlist_name[i]) 17 .collect(); 18 19 assert_eq!(got, wanted); 20 } 21 }; 22 } 23 24 create_test!( 25 BEALE_WORDLIST, 26 beale_test, 27 vec![ 28 0, 29 BEALE_WORDLIST.len() - 1, 30 490, 31 811, 32 970, 33 1187, 34 1726, 35 2158, 36 2492, 37 3005, 38 3713, 39 4143, 40 4289, 41 ], 42 vec![ 43 "a", "@", "balls", "boor", "bunts", "cherub", "dime", "ezra", "fuzzy", "hire", "leeway", 44 "mills", "ms", 45 ], 46 ); 47 48 create_test!( 49 REINHOLD_WORDLIST, 50 reinhold_test, 51 vec![ 52 0, 53 REINHOLD_WORDLIST.len() - 1, 54 490, 55 811, 56 970, 57 1187, 58 1726, 59 2158, 60 2492, 61 3005, 62 3713, 63 4143, 64 4289, 65 ], 66 vec![ 67 "a", "@", "balk", "bony", "bum", "charm", "dice", "excess", "fuchs", "hg", "le", "mercy", 68 "morsel", 69 ], 70 ); 71 72 create_test!( 73 MINILOCK_WORDLIST, 74 minilock_test, 75 vec![ 76 0, 77 MINILOCK_WORDLIST.len() - 1, 78 7625, 79 9287, 80 18137, 81 26351, 82 27726, 83 32096, 84 37667, 85 38151, 86 46685, 87 47351, 88 52997, 89 ], 90 vec![ 91 "aardvark", 92 "zulus", 93 "censer", 94 "colonels", 95 "exonerate", 96 "infringe", 97 "jaunts", 98 "miserliness", 99 "platitudes", 100 "pontoon", 101 "skua", 102 "snuggles", 103 "tributes", 104 ], 105 ); 106 107 create_test!( 108 EFF_LONG_WORDLIST, 109 eff_long_test, 110 vec![ 111 0, 112 EFF_LONG_WORDLIST.len() - 1, 113 490, 114 811, 115 970, 116 1187, 117 1726, 118 2158, 119 2492, 120 3005, 121 3713, 122 4143, 123 4289, 124 ], 125 vec![ 126 "abacus", 127 "zoom", 128 "barbecue", 129 "candle", 130 "charbroil", 131 "commodity", 132 "deserving", 133 "eleven", 134 "fame", 135 "grew", 136 "limpness", 137 "nifty", 138 "outer", 139 ], 140 ); 141 create_test!( 142 EFF_SHORT_WORDLIST_1, 143 eff_short_1_test, 144 vec![ 145 0, 146 EFF_SHORT_WORDLIST_1.len() - 1, 147 201, 148 250, 149 371, 150 400, 151 565, 152 606, 153 826, 154 890, 155 909, 156 922, 157 966, 158 ], 159 vec![ 160 "acid", "zoom", "clerk", "crook", "elbow", "faced", "hut", "kilt", "putt", "rover", 161 "sandy", "scary", "shove", 162 ], 163 ); 164 create_test!( 165 EFF_SHORT_WORDLIST_2_0, 166 eff_short_2_0_test, 167 vec![ 168 0, 169 EFF_SHORT_WORDLIST_2_0.len() - 1, 170 201, 171 250, 172 371, 173 400, 174 565, 175 606, 176 826, 177 890, 178 909, 179 922, 180 966, 181 ], 182 vec![ 183 "aardvark", 184 "zucchini", 185 "circle", 186 "cytoplasm", 187 "enforcer", 188 "etiquette", 189 "hybrid", 190 "jamboree", 191 "omnivorous", 192 "plywood", 193 "pry", 194 "puzzle", 195 "riches", 196 ], 197 );