rusty-diceware

Commandline diceware, with or without dice, written in Rustlang.
git clone https://kaka.farm/~git/rusty-diceware
Log | Files | Refs | README | LICENSE

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 );