Ejemplo n.º 1
0
  /**
   * Ensures that the bag resizes correctly when out of capacity, that it does not resize when
   * queried for non-existing elements, and that it does not resize when the default value is set.
   */
  @Test
  public void testCapacity() {
    IntBag bag;

    bag = new IntBag();
    assertEquals(0, bag.getCapacity());
    bag.set(0, 1);
    assertEquals(1, bag.getCapacity());
    bag.set(1, 2);
    assertEquals(2, bag.getCapacity());
    bag.set(2, 3);
    assertEquals(4, bag.getCapacity());
    bag.set(3, 4);
    assertEquals(4, bag.getCapacity());
    bag.set(4, 5);
    assertEquals(8, bag.getCapacity());
    bag.set(8, 6);
    assertEquals(16, bag.getCapacity());
    bag.set(35, 7);
    assertEquals(64, bag.getCapacity());

    bag = new IntBag();
    for (int i = 0; i < 32; i++) {
      bag.get((1 << i) - 1);
      assertEquals(0, bag.getCapacity());
    }
    bag.get(Integer.MAX_VALUE);
    assertEquals(0, bag.getCapacity());

    bag = new IntBag();
    for (int i = 0; i < 31; i++) {
      bag.set((1 << i) - 1, 0);
      assertEquals(0, bag.getCapacity());
    }
    bag.set(Integer.MAX_VALUE, 0);
    assertEquals(0, bag.getCapacity());
  }