public static void numbersTest() {
        Scanner scan = null;
        try {
            scan = new Scanner(new File("numbers.txt"));
        } catch (FileNotFoundException e) {
            throw new RuntimeException("unable to open numbers.txt");
        }

        DualMap<Integer, List<String>> testdm = new DualHashMap<Integer, List<String>>();

        while (scan.hasNextLine()) {
            int n = scan.nextInt();
            String s = scan.nextLine();
            Scanner scanline = new Scanner(s);
            List<String> list = new ArrayList<String>();
            while (scanline.hasNext()) {
                list.add(scanline.next());
            }
            scanline.close();
            testdm.put(n, list);
        }

        scan.close();

        Random random = new Random();
        // should print 10 random numbers as Lists of Strings
        for (int i = 0; i < 10; i++) {
            System.out.println(testdm.get(random.nextInt(32769)));
        }

        // should print 10 semi-random numbers as Integers
        for (int i = 0; i < 10; i++) {
            List<String> part1 = testdm.get(1 + random.nextInt(31));
            List<String> part2 = testdm.get(1 + random.nextInt(999));
            // Need to create a new list to avoid damaging the Lists
            // in the DualMap.
            List<String> list = new ArrayList<String>();
            for (String s : part1)
                list.add(s);
            list.add("thousand");
            for (String s : part2)
                list.add(s);
            System.out.print(testdm.reverseGet(list) + " ");
        }
        System.out.println();
    }