@Test public void testVectorShrink() { LNGVector<String> v1 = new LNGVector<>(); Assert.assertTrue(v1.empty()); for (int i = 0; i < 1000; i++) v1.push("s" + i); Assert.assertFalse(v1.empty()); for (int i = 500; i > 0; i--) { v1.shrinkTo(i); Assert.assertEquals("s" + (i - 1), v1.back()); } }
@Test public void testRelease() { LNGVector<String> v1 = new LNGVector<>(); Assert.assertTrue(v1.empty()); for (int i = 0; i < 1000; i++) { v1.push("s" + i); Assert.assertEquals(i + 1, v1.size()); Assert.assertEquals("s" + i, v1.back()); Assert.assertEquals("s" + i, v1.get(i)); } Assert.assertFalse(v1.empty()); v1.release(); Assert.assertTrue(v1.empty()); }
@Test public void legalUnsafePush() { LNGVector<String> v1 = new LNGVector<>(1000); Assert.assertTrue(v1.empty()); for (int i = 0; i < 1000; i++) { v1.unsafePush("s" + i); Assert.assertEquals(i + 1, v1.size()); Assert.assertEquals("s" + i, v1.back()); Assert.assertEquals("s" + i, v1.get(i)); } Assert.assertFalse(v1.empty()); v1.clear(); Assert.assertTrue(v1.empty()); }
@Test public void testRemoveElements() { LNGVector<String> v1 = new LNGVector<>(); Assert.assertTrue(v1.empty()); for (int i = 0; i < 1000; i++) v1.push("s" + i); Assert.assertFalse(v1.empty()); for (int i = 0; i < 9; i++) { v1.removeElements(100); Assert.assertEquals(1000 - (i + 1) * 100, v1.size()); Assert.assertEquals("s" + (1000 - (i + 1) * 100 - 1), v1.back()); } Assert.assertEquals(100, v1.size()); v1.removeElements(100); Assert.assertTrue(v1.empty()); }