/*****************************  HashTest.java  ********************************/

import AlgoTools.IO;

/** Testet die Hash-Tabelle mit String-Objekten. Verwendet werden: 
 *  Objekte der Klasse String als Eintraege in der HashTable
 *  und ein Objekt der Klasse GeHashing als Instanz des Interface Menge
 */
public class HashTest {

    public static void main(String[] argv) {

        int groesse = IO.readInt("Bitte Groesse der Tabelle angeben: ");
        GeHashing h = new GeHashing(groesse);
        String s;

        IO.println("Gelegenheit fuer INSERT:");
        s = IO.readString("Bitte String (RETURN beendet): ");
        while (s.length()>0) {
            if (h.insert(s)) 
                 IO.println(s + " eingefuegt");
            else IO.println(s + " konnte nicht eingefuegt werden");
            IO.print(h);
            s = IO.readString("Bitte String: ");
        }

        IO.println("Gelegenheit fuer LOOKUP:");
        s = IO.readString("Bitte String (RETURN beendet): ");
        while (s.length()>0) {
            Comparable c = h.lookup(s);
            if (c != null)  IO.println(c + " wurde gefunden");
            else            IO.println(s + " wurde nicht gefunden");
            IO.print(h);
            s = IO.readString("Bitte String: ");
        }

        IO.println("Gelegenheit fuer DELETE:");
        s = IO.readString("Bitte String (RETURN beendet): ");
        while (s.length()>0) {
            if (h.delete(s)) 
                 IO.println(s + " wurde geloescht");
            else IO.println(s + " wurde nicht geloescht");
            IO.print(h);
            s = IO.readString("Bitte String: ");
        }
    }
}
