コード例 #1
0
  @Test
  public void testAsMap() {

    final RingBuffer<Integer> ring = new RingBufferSimple<Integer>(10);
    assertEquals(ring.length(), 10);

    ring.setHead(100, 100);

    for (int k = 101; k < 110; k++) {
      ring.set(k, k);
    }

    ring.set(102, null);
    ring.set(107, null);
    assertEquals(ring.count(), 8);

    final Map<Integer, Integer> map = ring.asMap();

    assertEquals(map.size(), ring.count());

    // SortedMap<Integer, Integer> map1 = new TreeMap<Integer,
    // Integer>(map);

    for (int k = 100; k < 110; k++) {
      final Integer ringItem = ring.get(k);
      final Integer mapItem = map.get(k);
      assertEquals(ringItem, mapItem);
    }
  }
コード例 #2
0
  @Test
  public void testAsList() {

    final RingBuffer<Integer> ring = new RingBufferSimple<Integer>(10);
    assertEquals(ring.length(), 10);

    ring.setHead(100, 100);

    for (int k = 100; k < 110; k++) {
      ring.set(k, k);
    }

    ring.set(102, null);
    ring.set(107, null);
    assertEquals(ring.count(), 8);

    final List<Integer> list = ring.asList();

    assertEquals(list.size(), ring.count());

    int index = 0;
    for (int k = 100; k < 110; k++) {
      final Integer ringItem = ring.get(k);
      if (ringItem == null) {
        continue;
      }
      final Integer listItem = list.get(index++);
      assertEquals(ringItem, listItem);
    }
  }
コード例 #3
0
  @Test
  public void testAsArray() {

    final RingBuffer<Integer> ring = new RingBufferSimple<Integer>(10);
    assertEquals(ring.length(), 10);

    ring.setHead(100, 100);

    for (int k = 100; k < 110; k++) {
      ring.set(k, k);
    }

    ring.set(102, null);
    ring.set(107, null);
    assertEquals(ring.count(), 8);

    final Integer[] clone1 = ring.asArray(Integer.class);
    final Integer[] clone2 = ring.asArray(Integer.class);

    assertFalse(clone1 == clone2);
    assertTrue(Arrays.equals(clone1, clone2));

    for (int k = 0; k < 10; k++) {
      assertEquals(ring.get(100 + k), clone1[k]);
      assertEquals(ring.get(100 + k), clone2[k]);
    }
  }
コード例 #4
0
  @Test
  public void testHead() {

    final RingBuffer<Integer> ring = new RingBufferSimple<Integer>(10);
    assertEquals(ring.length(), 10);

    ring.setHead(100, 100);
    assertEquals(ring.count(), 1);
    assertEquals(ring.get(100), (Integer) 100);

    for (int k = 101; k < 110; k++) {
      assertEquals(ring.get(k), null);
    }

    for (int k = 100; k < 110; k++) {
      ring.set(k, k);
    }

    assertEquals(ring.count(), 10);

    for (int k = 100; k < 110; k++) {
      assertEquals(ring.get(k), (Integer) k);
    }

    ring.setHead(105, 205);

    assertEquals(ring.count(), 5);
    assertEquals(ring.head(), 105);
    assertEquals(ring.tail(), 114);

    assertEquals(ring.get(105), (Integer) 205);

    for (int k = 106; k < 110; k++) {
      assertEquals(ring.get(k), (Integer) k);
    }

    for (int k = 110; k < 115; k++) {
      assertEquals(ring.get(k), (Integer) null);
    }

    ring.set(114, 114);

    assertEquals(ring.count(), 6);
    assertEquals(ring.get(114), (Integer) 114);
  }
コード例 #5
0
  @Test
  public void testyTail() {

    final RingBuffer<Integer> ring = new RingBufferSimple<Integer>(10);
    assertEquals(ring.length(), 10);

    ring.setTail(109, 109);
    assertEquals(ring.count(), 1);
    assertEquals(ring.get(109), (Integer) 109);

    for (int k = 100; k < 109; k++) {
      assertEquals(ring.get(k), null);
    }

    for (int k = 100; k < 110; k++) {
      ring.set(k, k);
    }

    assertEquals(ring.count(), 10);

    for (int k = 100; k < 110; k++) {
      assertEquals(ring.get(k), (Integer) k);
    }

    ring.setTail(104, 204);
    assertEquals(ring.count(), 5);
    assertEquals(ring.head(), 95);
    assertEquals(ring.tail(), 104);
    assertEquals(ring.get(104), (Integer) 204);

    for (int k = 100; k < 104; k++) {
      assertEquals(ring.get(k), (Integer) k);
    }

    for (int k = 95; k < 100; k++) {
      assertEquals(ring.get(k), (Integer) null);
    }

    ring.set(95, 95);
    assertEquals(ring.get(95), (Integer) 95);
    assertEquals(ring.count(), 6);
  }
コード例 #6
0
  @Test
  public void testRingArray1() {

    final RingBuffer<Integer> ring = new RingBufferSimple<Integer>(10);

    int ringMemSize;
    ringMemSize = JavaSize.of(ring);
    // System.err.println("ring mem size=" + ringMemSize);
    assertEquals(ringMemSize, 72);

    //

    int basis;

    for (int k = 0; k < 10; k++) {
      ring.set(k, new Integer(k));
    }

    basis = ring.head();
    // System.err.println("ring basis=" + basis);
    assertEquals(basis, 0);

    //

    for (int k = 0; k < 10; k++) {
      assertEquals(ring.get(k), (Integer) k);
    }

    //

    assertEquals(ring.head(), 0);
    assertEquals(ring.tail(), 9);
    assertEquals(ring.get(4), (Integer) 4);

    for (int k = 5; k < 10; k++) {
      // System.err.println("ring k=" + k);
      assertEquals(ring.get(k), (Integer) (k));
    }

    //

  }
コード例 #7
0
 @Test(expected = ArrayIndexOutOfBoundsException.class)
 public void testSetException2() {
   final RingBuffer<Integer> ring = new RingBufferSimple<Integer>(10);
   ring.setHead(100, 100);
   ring.set(110, 110);
 }