/* * Licensed to GraphHopper GmbH under one or more contributor * license agreements. See the NOTICE file distributed with this work for * additional information regarding copyright ownership. * * GraphHopper GmbH licenses this file to you under the Apache License, * Version 2.0 (the "License"); you may not use this file except in * compliance with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package com.graphhopper.coll; import com.graphhopper.storage.DataAccess; import com.graphhopper.storage.RAMDirectory; import org.junit.Test; import static org.junit.Assert.assertEquals; /** * @author Peter Karich */ public class OSMIDMapTest { @Test public void testGet() { OSMIDMap map = new OSMIDMap(new RAMDirectory()); map.put(9, 0); map.put(10, -50); map.put(11, 2); map.put(12, 3); map.put(20, 6); map.put(21, 5); map.put(31, 2); assertEquals(7, map.getSize()); assertEquals(-1, map.get(8)); assertEquals(0, map.get(9)); assertEquals(-50, map.get(10)); assertEquals(2, map.get(11)); assertEquals(3, map.get(12)); assertEquals(-1, map.get(13)); assertEquals(-1, map.get(19)); assertEquals(6, map.get(20)); assertEquals(5, map.get(21)); assertEquals(2, map.get(31)); assertEquals(-1, map.get(32)); for (int i = 0; i < 50; i++) { map.put(i + 50, i + 7); } assertEquals(57, map.getSize()); } @Test public void testBinSearch() { DataAccess da = new RAMDirectory().find(""); da.create(100); da.setInt(0 * 4, 1); da.setInt(1 * 4, 0); da.setInt(2 * 4, 5); da.setInt(3 * 4, 0); da.setInt(4 * 4, 100); da.setInt(5 * 4, 0); da.setInt(6 * 4, 300); da.setInt(7 * 4, 0); da.setInt(8 * 4, 333); da.setInt(9 * 4, 0); assertEquals(2, OSMIDMap.binarySearch(da, 0, 5, 100)); assertEquals(3, OSMIDMap.binarySearch(da, 0, 5, 300)); assertEquals(~3, OSMIDMap.binarySearch(da, 0, 5, 200)); assertEquals(0, OSMIDMap.binarySearch(da, 0, 5, 1)); assertEquals(1, OSMIDMap.binarySearch(da, 0, 5, 5)); } @Test public void testGetLong() { OSMIDMap map = new OSMIDMap(new RAMDirectory()); map.put(12, 0); map.put(Long.MAX_VALUE / 10, 1); map.put(Long.MAX_VALUE / 9, 2); map.put(Long.MAX_VALUE / 7, 3); assertEquals(1, map.get(Long.MAX_VALUE / 10)); assertEquals(3, map.get(Long.MAX_VALUE / 7)); assertEquals(-1, map.get(13)); } @Test public void testGet2() { OSMIDMap map = new OSMIDMap(new RAMDirectory()); map.put(9, 0); map.put(10, 1); map.put(11, 2); map.put(12, 3); map.put(13, 4); map.put(14, 5); map.put(16, 6); map.put(18, 7); map.put(19, 8); assertEquals(9, map.getSize()); assertEquals(-1, map.get(8)); assertEquals(0, map.get(9)); assertEquals(1, map.get(10)); assertEquals(2, map.get(11)); assertEquals(3, map.get(12)); assertEquals(4, map.get(13)); assertEquals(5, map.get(14)); assertEquals(6, map.get(16)); assertEquals(-1, map.get(17)); assertEquals(7, map.get(18)); assertEquals(8, map.get(19)); } @Test public void testUpdateOfLowerKeys() { OSMIDMap map = new OSMIDMap(new RAMDirectory()); map.put(9, 0); map.put(10, 1); map.put(11, 2); map.put(9, 3); assertEquals(2, map.get(11)); assertEquals(3, map.get(9)); } }