@Test public void testTrimTo() { DataAccess da = createDataAccess(name); da.setSegmentSize(128); da.create(128 * 11); da.setInt(1 * 4, 10); da.setInt(27 * 4, 200); da.setInt(31 * 4, 301); da.setInt(32 * 4, 302); da.setInt(337 * 4, 4000); // now 11 segments: (337 + 1) * 4 = 1352 assertEquals(11, da.getSegments()); assertEquals(11 * 128, da.getCapacity()); // now 3 segments da.trimTo(128 * 2 + 1); assertEquals(3, da.getSegments()); // now 2 segments da.trimTo(128 * 2); assertEquals(2, da.getSegments()); assertEquals(301, da.getInt(31 * 4)); assertEquals(302, da.getInt(32 * 4)); // now only one segment da.trimTo(128 * 1); assertEquals(1, da.getSegments()); assertEquals(301, da.getInt(31 * 4)); // at least one segment da.trimTo(0); assertEquals(1, da.getSegments()); da.close(); }
@Test public void testSegments() { DataAccess da = createDataAccess(name); da.setSegmentSize(128); da.create(10); assertEquals(1, da.getSegments()); da.ensureCapacity(500); int olds = da.getSegments(); assertTrue(olds > 3); da.setInt(400, 321); da.flush(); da.close(); da = createDataAccess(name); assertTrue(da.loadExisting()); assertEquals(olds, da.getSegments()); assertEquals(321, da.getInt(400)); da.close(); }