/* *************************************************************************************** * 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.prqdrowindex; import com.espertech.esper.client.scopetest.EPAssertionUtil; import com.espertech.esper.spatial.quadtree.core.SupportQuadTreeUtil; import com.espertech.esper.spatial.quadtree.pointregion.PointRegionQuadTree; import java.util.Arrays; import java.util.Collection; import static junit.framework.TestCase.assertEquals; import static junit.framework.TestCase.fail; import static org.junit.Assert.assertTrue; public class SupportPointRegionQuadTreeRowIndexUtil { public final static SupportQuadTreeUtil.Querier<PointRegionQuadTree<Object>> POINTREGION_RI_QUERIER = (tree, x, y, width, height) -> PointRegionQuadTreeRowIndexQuery.queryRange(tree, x, y, width, height); public final static SupportQuadTreeUtil.AdderUnique<PointRegionQuadTree<Object>> POINTREGION_RI_ADDERUNIQUE = (tree, value) -> addUnique(tree, value.getX(), value.getY(), value.getId()); public final static SupportQuadTreeUtil.Remover<PointRegionQuadTree<Object>> POINTREGION_RI_REMOVER = (tree, value) -> remove(tree, value.getX(), value.getY(), value.getId()); public final static SupportQuadTreeUtil.AdderNonUnique<PointRegionQuadTree<Object>> POINTREGION_RI_ADDERNONUNIQUE = (tree, value) -> addNonUnique(tree, value.getX(), value.getY(), value.getId()); protected static void remove(PointRegionQuadTree<Object> quadTree, double x, double y, String value) { PointRegionQuadTreeRowIndexRemove.remove(x, y, value, quadTree); } protected static boolean addNonUnique(PointRegionQuadTree<Object> quadTree, double x, double y, String value) { return PointRegionQuadTreeRowIndexAdd.add(x, y, value, quadTree, false, "indexNameDummy"); } protected static boolean addUnique(PointRegionQuadTree<Object> quadTree, double x, double y, String value) { return PointRegionQuadTreeRowIndexAdd.add(x, y, value, quadTree, true, "indexNameDummy"); } protected static void assertFound(PointRegionQuadTree<Object> quadTree, double x, double y, double width, double height, String p1) { Object[] expected = p1.length() == 0 ? null : p1.split(","); assertFound(quadTree, x, y, width, height, expected); } protected static void assertFound(PointRegionQuadTree<Object> quadTree, double x, double y, double width, double height, Object[] ids) { Collection<Object> values = PointRegionQuadTreeRowIndexQuery.queryRange(quadTree, x, y, width, height); if (ids == null || ids.length == 0) { assertTrue(values == null); } else { if (values == null) { fail("Nothing returned, expected " + Arrays.asList(ids)); } EPAssertionUtil.assertEqualsAnyOrder(ids, values.toArray()); } } protected static void compare(double x, double y, String expected, XYPointMultiType point) { assertEquals(x, point.getX()); assertEquals(y, point.getY()); assertEquals(expected, point.getMultityped().toString()); } }