package edu.umd.hooka.alignment.hmm; import java.io.*; import org.junit.Test; import junit.framework.TestCase; public class ATableTest extends TestCase { @Test public void testNormalize() { ATable at = new ATable(true, 1, 10); at.add(1, 'a', 99, 1.0f); at.add(-1, 'a', 99, 0.5f); at.add(0, 'a', 99, 0.5f); at.normalize(); assertEquals(0.25f, at.get(0, 'a'), 0.01f); assertEquals(0.5f, at.get(1, 'a'), 0.01f); } @Test public void testReadFields() { try { File temp = File.createTempFile("ttable", null); temp.deleteOnExit(); DataOutputStream dos = new DataOutputStream( new FileOutputStream(temp)); ATable at = new ATable(true, 1, 10); at.add(1, 'a', 99, 1.0f); at.add(-1, 'a', 99, 0.5f); at.add(0, 'a', 99, 0.5f); at.normalize(); assertEquals(0.25f, at.get(0, 'a'), 0.01f); assertEquals(0.5f, at.get(1, 'a'), 0.01f); System.err.println(at); at.write(dos); dos.close(); System.err.println("Size of at on disk: " + dos.size()); DataInputStream dis = new DataInputStream( new FileInputStream(temp)); ATable at2 = new ATable(); at2.readFields(dis); System.err.println(at2); dis.close(); } catch (IOException e) { e.printStackTrace(); fail("Caught "+e); } } @Test public void testDistribution() { ATable at = new ATable(true, 1, 100); at.normalize(); System.out.println(at); } @Test public void testNonHomogeneous() { ATable at = new ATable(false, 10, 10); at.normalize(); System.out.println(at); } }