From 4ce97bca0ee08d52972cb4918caaf6e76b142646 Mon Sep 17 00:00:00 2001 From: TomyLobo Date: Fri, 28 Feb 2014 00:42:47 +0100 Subject: [PATCH] Added a unit test for ProtectedRegion.intersectsEdges. --- .../{ => regions}/RegionIntersectTest.java | 29 ++++++++++++++++--- 1 file changed, 25 insertions(+), 4 deletions(-) rename src/test/java/com/sk89q/worldguard/protection/{ => regions}/RegionIntersectTest.java (69%) diff --git a/src/test/java/com/sk89q/worldguard/protection/RegionIntersectTest.java b/src/test/java/com/sk89q/worldguard/protection/regions/RegionIntersectTest.java similarity index 69% rename from src/test/java/com/sk89q/worldguard/protection/RegionIntersectTest.java rename to src/test/java/com/sk89q/worldguard/protection/regions/RegionIntersectTest.java index 7de0e303..5869bad4 100644 --- a/src/test/java/com/sk89q/worldguard/protection/RegionIntersectTest.java +++ b/src/test/java/com/sk89q/worldguard/protection/regions/RegionIntersectTest.java @@ -1,14 +1,12 @@ -package com.sk89q.worldguard.protection; +package com.sk89q.worldguard.protection.regions; import com.sk89q.worldedit.BlockVector; import com.sk89q.worldedit.BlockVector2D; -import com.sk89q.worldguard.protection.regions.ProtectedCuboidRegion; -import com.sk89q.worldguard.protection.regions.ProtectedPolygonalRegion; -import com.sk89q.worldguard.protection.regions.ProtectedRegion; import org.junit.Test; import static org.junit.Assert.*; import java.util.ArrayList; +import java.util.Arrays; import java.util.List; public class RegionIntersectTest { @@ -79,4 +77,27 @@ private void assertIntersection(ProtectedRegion region1, ProtectedRegion region2 assertEquals("Check for '" + region2.getId() + "' region failed.", expected, actual); } + + private static final BlockVector2D[] polygon = { + new BlockVector2D(1, 0), + new BlockVector2D(4, 3), + new BlockVector2D(4, -3), + }; + + @Test + public void testIntersection() throws Exception { + final ProtectedCuboidRegion cuboidRegion = new ProtectedCuboidRegion("cuboidRegion", new BlockVector(-3, -3, -3), new BlockVector(3, 3, 3)); + for (int angle = 0; angle < 360; angle += 90) { + final BlockVector2D[] rotatedPolygon = new BlockVector2D[polygon.length]; + for (int i = 0; i < polygon.length; i++) { + final BlockVector2D vertex = polygon[i]; + rotatedPolygon[i] = vertex.transform2D(angle, 0, 0, 0, 0).toBlockVector2D(); + } + + final ProtectedPolygonalRegion polygonalRegion = new ProtectedPolygonalRegion("polygonalRegion", Arrays.asList(rotatedPolygon), -3, 3); + + assertTrue(String.format("%s does not intersect (cuboid.intersectsEdges(polygonal)", Arrays.asList(rotatedPolygon)), cuboidRegion.intersectsEdges(polygonalRegion)); + assertTrue(String.format("%s does not intersect (polygonal.intersectsEdges(cuboid)", Arrays.asList(rotatedPolygon)), polygonalRegion.intersectsEdges(cuboidRegion)); + } + } }