package edu.umd.hooka;
import java.io.DataInputStream;
import java.io.DataOutputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import junit.framework.TestCase;
public class VocabularyWritableTest extends TestCase {
VocabularyWritable v;
int hello;
int goodbye;
int bar;
protected void setUp() throws Exception {
super.setUp();
v = new VocabularyWritable();
hello = v.addOrGet("hello");
goodbye = v.addOrGet("Goodbye");
bar = v.addOrGet("bar");
}
public void testSize() {
assertEquals(v.size(), 4);
v.addOrGet("foo");
assertEquals(v.size(), 5);
}
public void testAddOrGet() {
String baz = "baz";
int i = v.addOrGet(baz);
assertEquals(v.get(i), baz);
String h = "h";
String ello = h + "ello";
assertEquals(v.addOrGet(ello), hello);
}
public void testGetString() {
String a = "Good";
String b = a + "bye";
assertEquals(v.get(b), goodbye);
}
public void testGetInt() {
assertEquals(v.get(bar), "bar");
}
public void testReadFields() {
try {
File temp = File.createTempFile("phrpr", null);
temp.deleteOnExit();
DataOutputStream dos = new DataOutputStream(
new FileOutputStream(temp));
v.write(dos);
dos.close();
System.err.println("Size of voc on disk: " + dos.size());
DataInputStream dis = new DataInputStream(
new FileInputStream(temp));
VocabularyWritable vw = new VocabularyWritable();
vw.readFields(dis);
assertEquals(v.get(bar), vw.get(bar));
dis.close();
} catch (IOException e) {
e.printStackTrace();
fail("Caught "+e);
}
}
}