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    }