import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertTrue; import java.util.ArrayList; import org.junit.Assert; import org.junit.Test; import de.blau.android.exception.OsmException; import de.blau.android.osm.BoundingBox; public class BoundingBoxTest { @Test public void boundingBox(){ try { BoundingBox existingBox = new BoundingBox(-10.0,-10.0,10.0,10.0); ArrayList<BoundingBox> existing = new ArrayList<BoundingBox>(); existing.add(existingBox); BoundingBox newBox = new BoundingBox(0.0,0.0,20.0,20.0); ArrayList<BoundingBox>result = BoundingBox.newBoxes(existing, newBox); assertEquals(2, result.size()); newBox = new BoundingBox(0.0,0.0,5.0,20.0); result = BoundingBox.newBoxes(existing, newBox); assertEquals(1, result.size()); newBox = new BoundingBox(0.0,0.0,5.0,10.0); result = BoundingBox.newBoxes(existing, newBox); assertEquals(0, result.size()); newBox = new BoundingBox(-15.0,-15.0,15.0,15.0); result = BoundingBox.newBoxes(existing, newBox); assertEquals(4, result.size()); newBox = new BoundingBox(20.0,20.0,25.0,25.0); result = BoundingBox.newBoxes(existing, newBox); assertEquals(1, result.size()); // new bounding box ops newBox = new BoundingBox(20.0,20.0,25.0,25.0); BoundingBox node = new BoundingBox((int)(30*1E7),(int)(30*1E7)); newBox.union(node); assertEquals((int)(20*1E7),newBox.getLeft()); assertEquals((int)(20*1E7),newBox.getBottom()); assertEquals((int)(30*1E7),newBox.getTop()); assertEquals((int)(30*1E7),newBox.getRight()); node = new BoundingBox((int)(15*1E7),(int)(15*1E7)); newBox.union(node); assertEquals((int)(15*1E7),newBox.getLeft()); assertEquals((int)(15*1E7),newBox.getBottom()); assertEquals((int)(30*1E7),newBox.getTop()); assertEquals((int)(30*1E7),newBox.getRight()); BoundingBox newBox2 = new BoundingBox(10.0,10.0,25.0,25.0); assertTrue(newBox2.intersects(newBox)); newBox2 = new BoundingBox(25.0,25.0,40.0,40.0); assertTrue(newBox2.intersects(newBox)); newBox2 = new BoundingBox(10.0,25.0,20.0,40.0); assertTrue(newBox2.intersects(newBox)); assertTrue(BoundingBox.intersects(newBox2,newBox)); newBox2 = new BoundingBox(10.0,10.0,12.0,12.0); assertTrue(!newBox2.intersects(newBox)); assertTrue(!BoundingBox.intersects(newBox2,newBox)); // assertTrue(BoundingBox.intersects(node,newBox)); } catch (OsmException e) { Assert.fail(e.getMessage()); } } }