public void testStep() {
        out.println("step");

        final int MAXEXP = 5;
        final int STEPS = 15;
        instance = new TabuIndex<String, String>(MAXEXP);

        String[] tgts = new String[MAXEXP];
        String[] srcs = new String[MAXEXP];

        for (int exp = 0; exp < MAXEXP; ++exp) {
            srcs[exp] = exp + "_src";
            tgts[exp] = exp + "_tgt";
            instance.setTabu(srcs[exp], tgts[exp], exp);
        }

        for (int step = 0; step < STEPS; ++step) {
            out.print("step " + step + ":  ");
            for (int i = 0; i < MAXEXP; ++i) {
                if (i < step) {
                    assertFalse(instance.isTabu(srcs[i], tgts[i]));
                    out.print("!");
                }
                else {
                    assertTrue(instance.isTabu(srcs[i], tgts[i]));
                    out.print(" ");
                }
                out.print(i+ " ");
            }
            instance.step();
            out.println();
        }
    }