@Test public void addW() { CircularQueue<A> alg = new CircularQueue<A>(A.class,3); assertEquals(3,alg.data.length); alg.addW(new A(1)); assertEquals(1,alg.data[0].value); assertEquals(1,alg.size); alg.addW(new A(2)); assertEquals(1,alg.data[0].value); assertEquals(2,alg.data[1].value); assertEquals(2,alg.size); // see if it over writes alg.addW(new A(3)); alg.addW(new A(4)); assertEquals(4,alg.data[0].value); assertEquals(2,alg.data[1].value); assertEquals(3,alg.data[2].value); assertEquals(3,alg.size); assertEquals(1,alg.start); // wrap around case alg.start = 1; alg.size = 2; alg.data = new A[3]; alg.addW(new A(10)); assertEquals(10,alg.data[0].value); assertEquals(3,alg.size); }