}
@Test
public void testGazStoreTrie3() throws IOException {
System.out.println("GazStoreTrie3: *******************************");
GazStoreTrie3 gs = new GazStoreTrie3();
FeatureMap fm1 = Factory.newFeatureMap();
fm1.put("feature1","value1");
int info1 = gs.addListInfo("Type1", "TheFile", fm1);
String[] kv1 = new String[2];
kv1[0] = "key1of1";
kv1[1] = "value1of1";
gs.addLookup("entry", info1, kv1);
String[] kv2 = new String[4];
kv2[0] = "KEY1of2";
kv2[1] = "VALUE1of2";
kv2[2] = "KEY2of2";
kv2[3] = "VALUE2of2";
gs.addLookup("as", info1, kv2);
State init = gs.getInitialState();
System.out.println("Initial State: "+init);
State s1 = init.next('a');
System.out.println("State after a: "+s1);
System.out.println("isFinal: "+s1.isFinal());
State s2 = s1.next('s');
System.out.println("State after s: "+s2);
System.out.println("isFinal: "+s2.isFinal());
Iterator<Lookup> lookupIter = gs.getLookups(s2);
System.out.println("Have lookups: "+lookupIter.hasNext());
while(lookupIter.hasNext()) {
Lookup l = lookupIter.next();
System.out.println("Have a lookup"+l);
}
File someFile = new File("tmp.gazbin");
try {
gs.save(someFile);
} catch (FileNotFoundException e) {
e.printStackTrace();
assertTrue("could not save trie", false);
return;
}
GazStoreTrie3 gs2 = new GazStoreTrie3();
try {
gs2 = (GazStoreTrie3)gs2.load(someFile);
} catch (FileNotFoundException e) {
e.printStackTrace();
assertTrue("could not load trie",false);
return;
}
State init_2 = gs2.getInitialState();
System.out.println("Initial State: "+init_2);
State s1_2 = init_2.next('a');
System.out.println("State after a: "+s1_2);
System.out.println("isFinal: "+s1_2.isFinal());
State s2_2 = s1_2.next('s');
System.out.println("State after s: "+s2_2);
System.out.println("isFinal: "+s2_2.isFinal());
Iterator<Lookup> lookupIter_2 = gs2.getLookups(s2_2);
System.out.println("Have lookups: "+lookupIter_2.hasNext());
while(lookupIter_2.hasNext()) {
Lookup l = lookupIter_2.next();
System.out.println("Have a lookup"+l);
}