001 package calhoun.analysis.crf.test;
002
003 import calhoun.analysis.crf.solver.RecyclingBuffer;
004 import calhoun.util.AbstractTestCase;
005
006 public class RecyclingBufferTest extends AbstractTestCase {
007
008 public void testRecyclingBuffer() throws Exception {
009 RecyclingBuffer<Integer> i = new RecyclingBuffer<Integer>(new Integer[3]);
010 i.addFirst(3);
011 i.addFirst(2);
012 assertEquals(2, (int) i.get(0));
013 assertEquals(3, (int) i.get(1));
014 i.addFirst(1);
015 i.addFirst(0);
016 assertEquals(0, (int) i.get(0));
017 assertEquals(1, (int) i.get(1));
018 }
019
020 public void testRecyclingBufferWithArray() throws Exception {
021 Integer[][] vals = new Integer[3][1];
022 Integer[] val = new Integer[1];
023 RecyclingBuffer<Integer[]> i = new RecyclingBuffer<Integer[]>(vals);
024 val[0]=3;
025 val = i.addFirst(val);
026 val[0]=2;
027 val = i.addFirst(val);
028 assertEquals(2, i.get(0)[0].intValue());
029 assertEquals(3, i.get(1)[0].intValue());
030 val[0]=1;
031 val = i.addFirst(val);
032 val[0]=0;
033 val = i.addFirst(val);
034 assertEquals(0, i.get(0)[0].intValue());
035 assertEquals(1, i.get(1)[0].intValue());
036 val[0]=-1;
037 val = i.addFirst(val);
038 val[0]=-2;
039 val = i.addFirst(val);
040 assertEquals(-2, i.get(0)[0].intValue());
041 assertEquals(-1, i.get(1)[0].intValue());
042 }
043 }