@Override public NameIndex create(long initBytes) { names.create(initBytes); return this; }
@Override public synchronized StorableProperties create(long size) { da.create(size); return this; }
@Override public TurnCostExtension create(long initBytes) { turnCosts.create(initBytes); return this; }
@Override public SubnetworkStorage create(long byteCount) { da.create(2000); da.ensureCapacity(byteCount); return this; }
private void initBuffer() { // avoid default big segment size and use one segment only: index.setSegmentSize(latSize * lonSize * 4); index.create(latSize * lonSize * 4); }
void create(long initSize) { nodes.create(initSize); edges.create(initSize); initSize = Math.min(initSize, 2000); wayGeometry.create(initSize); nameIndex.create(initSize); extStorage.create(initSize); initStorage(); // 0 stands for no separate geoRef maxGeoRef = 4; initNodeRefs(0, nodes.getCapacity()); }
public PillarInfo(boolean enabled3D, Directory dir) { this.enabled3D = enabled3D; this.dir = dir; this.da = dir.find("tmp_pillar_info").create(100); this.rowSizeInBytes = getDimension() * 4; }
public AbstractNodeContractor(CHGraph prepareGraph, Weighting weighting) { this.prepareGraph = prepareGraph; this.encoder = weighting.getFlagEncoder(); originalEdges = new GHDirectory("", DAType.RAM_INT).find(""); originalEdges.create(1000); }
@Test public void testNoErrorForDACreate() { Directory dir = createDir(); da = dir.find("testing"); da.create(100); da.flush(); } }
@Test public void testRenameFlush() { DataAccess da = createDataAccess(name); da.create(100); da.setInt(17 * 4, 17); da.flush(); assertTrue(new File(directory + name).exists()); da.rename(name + "wow"); assertFalse(new File(directory + name).exists()); assertTrue(new File(directory + name + "wow").exists()); assertEquals(17, da.getInt(17 * 4)); da.close(); da = createDataAccess(name + "wow"); assertTrue(da.loadExisting()); assertEquals(17, da.getInt(17 * 4)); da.close(); }
@Test public void testRenameNoFlush() { DataAccess da = createDataAccess(name); da.create(100); da.setInt(17 * 4, 17); try { da.rename(name + "wow"); assertTrue(false); } catch (Exception ex) { } da.close(); }
@Test public void testEnsureCapacity() { DataAccess da = createDataAccess(name); da.create(128); da.setInt(31 * 4, 200); assertEquals(200, da.getInt(31 * 4)); da.ensureCapacity(2 * 128); assertEquals(200, da.getInt(31 * 4)); // now it shouldn't fail da.setInt(32 * 4, 220); assertEquals(220, da.getInt(32 * 4)); da.close(); // ensure some bigger area da = createDataAccess(name); da.create(200 * 4); da.ensureCapacity(600 * 4); da.close(); }
@Test public void testInMemIndex3() { LocationIndexTree index = createIndexNoPrepare(createTestGraph(encodingManager), 10000); index.prepareAlgo(); LocationIndexTree.InMemConstructionIndex inMemIndex = index.getPrepareInMemIndex(); assertEquals(IntArrayList.from(new int[]{64, 4}), index.getEntries()); assertEquals(33, inMemIndex.getEntriesOf(0).size()); assertEquals(69, inMemIndex.getEntriesOf(1).size()); assertEquals(0, inMemIndex.getEntriesOf(2).size()); index.dataAccess.create(1024); inMemIndex.store(inMemIndex.root, LocationIndexTree.START_POINTER); assertEquals(1 << 20, index.getCapacity()); QueryResult res = index.findClosest(-.5, -.5, EdgeFilter.ALL_EDGES); assertEquals(1, res.getClosestNode()); }
@Test public void testLoadClose() { DataAccess da = createDataAccess(name); da.create(300); da.setInt(2 * 4, 321); da.flush(); da.close(); da = createDataAccess(name); assertTrue(da.loadExisting()); assertEquals(321, da.getInt(2 * 4)); da.close(); }
@Test public void textMixRAM2MMAP() { DataAccess da = new RAMDataAccess(name, directory, true, defaultOrder); assertFalse(da.loadExisting()); da.create(100); da.setInt(7 * 4, 123); da.flush(); da.close(); da = createDataAccess(name); assertTrue(da.loadExisting()); assertEquals(123, da.getInt(7 * 4)); da.close(); }
@Test public void textMixMMAP2RAM() { DataAccess da = createDataAccess(name); assertFalse(da.loadExisting()); da.create(100); da.setInt(7 * 4, 123); // TODO "memory mapped flush" is expensive and not required. only writing the header is required. da.flush(); da.close(); da = new RAMDataAccess(name, directory, true, defaultOrder); assertTrue(da.loadExisting()); assertEquals(123, da.getInt(7 * 4)); 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(); }
@Test public void testHeader() { DataAccess da = createDataAccess(name); da.create(300); da.setHeader(7 * 4, 123); assertEquals(123, da.getHeader(7 * 4)); da.setHeader(10 * 4, Integer.MAX_VALUE / 3); assertEquals(Integer.MAX_VALUE / 3, da.getHeader(10 * 4)); da.setHeader(11 * 4, Helper.degreeToInt(123.321)); assertEquals(123.321, Helper.intToDegree(da.getHeader(11 * 4)), 1e-4); da.flush(); da.close(); da = createDataAccess(name); assertTrue(da.loadExisting()); assertEquals(123, da.getHeader(7 * 4)); da.close(); }