/* *************************************************************************************** * Copyright (C) 2006 EsperTech, Inc. All rights reserved. * * http://www.espertech.com/esper * * http://www.espertech.com * * ---------------------------------------------------------------------------------- * * The software in this package is published under the terms of the GPL license * * a copy of which has been included with this distribution in the license.txt file. * *************************************************************************************** */ package com.espertech.esper.spatial.quadtree.mxciffilterindex; import com.espertech.esper.spatial.quadtree.mxcif.MXCIFQuadTree; import com.espertech.esper.spatial.quadtree.mxcif.MXCIFQuadTreeFactory; import junit.framework.TestCase; import static com.espertech.esper.spatial.quadtree.mxciffilterindex.MXCIFQuadTreeFilterIndexDelete.delete; import static com.espertech.esper.spatial.quadtree.mxciffilterindex.MXCIFQuadTreeFilterIndexGet.get; import static com.espertech.esper.spatial.quadtree.mxciffilterindex.MXCIFQuadTreeFilterIndexSet.set; import static com.espertech.esper.spatial.quadtree.mxciffilterindex.SupportMXCIFQuadTreeFilterIndexUtil.assertCollect; import static com.espertech.esper.spatial.quadtree.mxciffilterindex.SupportMXCIFQuadTreeFilterIndexUtil.assertCollectAll; public class TestMXCIFQuadTreeFilterIndexSimple extends TestCase { private MXCIFQuadTree<Object> tree; public void tearDown() { tree = null; } public void testGetSetRemove() { tree = MXCIFQuadTreeFactory.make(0, 0, 100, 100); assertNull(get(10, 20, 30, 40, tree)); assertCollectAll(tree, ""); set(10, 20, 30, 40, "R0", tree); assertEquals("R0", get(10, 20, 30, 40, tree)); assertCollectAll(tree, "R0"); delete(10, 20, 30, 40, tree); assertNull(get(10, 20, 30, 40, tree)); assertCollectAll(tree, ""); } public void testPoints() { tree = MXCIFQuadTreeFactory.make(0, 0, 10, 10); set(8.0, 4.0, 1, 1, "R0", tree); assertCollectAll(tree, "R0"); set(8.0, 1.0, 1, 1, "R1", tree); assertCollectAll(tree, "R0,R1"); set(8.0, 2.0, 1, 1, "R2", tree); assertCollectAll(tree, "R0,R1,R2"); set(4.0, 4.0, 1, 1, "R3", tree); assertCollectAll(tree, "R0,R1,R2,R3"); set(1.0, 9.0, 1, 1, "R4", tree); assertCollectAll(tree, "R0,R1,R2,R3,R4"); set(8.0, 3.0, 1, 1, "R5", tree); assertCollectAll(tree, "R0,R1,R2,R3,R4,R5"); set(0.0, 6.0, 1, 1, "R6", tree); assertCollectAll(tree, "R0,R1,R2,R3,R4,R5,R6"); set(5.0, 1.0, 1, 1, "R7", tree); assertCollectAll(tree, "R0,R1,R2,R3,R4,R5,R6,R7"); set(5.0, 8.0, 1, 1, "R8", tree); assertCollectAll(tree, "R0,R1,R2,R3,R4,R5,R6,R7,R8"); set(7.0, 6.0, 1, 1, "R9", tree); assertCollectAll(tree, "R0,R1,R2,R3,R4,R5,R6,R7,R8,R9"); } public void testSetRemoveTwiceSamePoint() { tree = MXCIFQuadTreeFactory.make(0, 0, 100, 100); set(5, 8, 1, 2, "R1", tree); set(5, 8, 1, 2, "R2", tree); assertCollectAll(tree, "R2"); delete(5, 8, 1, 2, tree); assertCollectAll(tree, ""); delete(5, 8, 1, 2, tree); assertCollectAll(tree, ""); } public void testFewValues() { tree = MXCIFQuadTreeFactory.make(0, 0, 100, 100); set(73.32704983331149, 23.46990952575032, 1, 1, "R0", tree); set(53.09747562396894, 17.100976152185034, 1, 1, "R1", tree); set(56.75757294858788, 25.508506696809608, 1, 1, "R2", tree); set(83.66639067675291, 76.53772974832937, 1, 1, "R3", tree); set(51.01654641861326, 43.49009281983866, 1, 1, "R4", tree); double beginX = 50.45945198254618; double endX = 88.31594559038719; double beginY = 4.577595744501329; double endY = 22.93393078279351; assertCollect(tree, beginX, beginY, endX - beginX, endY - beginY, "R1"); assertCollectAll(tree, "R0,R1,R2,R3,R4"); assertEquals("R0", get(73.32704983331149, 23.46990952575032, 1, 1, tree)); assertEquals("R1", get(53.09747562396894, 17.100976152185034, 1, 1, tree)); assertEquals("R2", get(56.75757294858788, 25.508506696809608, 1, 1, tree)); assertEquals("R3", get(83.66639067675291, 76.53772974832937, 1, 1, tree)); assertEquals("R4", get(51.01654641861326, 43.49009281983866, 1, 1, tree)); } }