/* * To change this template, choose Tools | Templates * and open the template in the editor. */ package mountainrangepvp.core.terrain; import com.badlogic.gdx.math.Vector2; import mountainrangepvp.core.HeightMap; import mountainrangepvp.core.Terrain; import mountainrangepvp.core.Terrain.Slice; import org.junit.Test; import static org.junit.Assert.*; /** * @author lachlan */ public class TerrainTest { @Test public void testPositiveOriginSlice() { Terrain terrain = new Terrain(new TestGenerator()); Slice result = terrain.sliceAt(0, 200); assertEquals(10, result.get(5)); assertEquals(11, result.get(105)); } @Test public void testPositiveBlock2Slice() { Terrain terrain = new Terrain(new TestGenerator()); Slice result = terrain.sliceAt(1024, 200); assertEquals(12, result.get(5)); assertEquals(13, result.get(105)); } @Test public void testNegativeOriginSlice() { Terrain terrain = new Terrain(new TestGenerator()); Slice result = terrain.sliceAt(-200, 200); assertEquals(6, result.get(5)); assertEquals(7, result.get(105)); } @Test public void testNegativeBlock2Slice() { Terrain terrain = new Terrain(new TestGenerator()); Slice result = terrain.sliceAt(-400, 200); assertEquals(8, result.get(5)); assertEquals(9, result.get(105)); } @Test public void testCollideLine() { Terrain terrain = new Terrain(new TestGenerator()); // Test should be collision Vector2 p1 = new Vector2(1000, 5); Vector2 p2 = new Vector2(1030, 5); assertTrue("didn't collide forwards", terrain.collideLine(p1, p2)); assertTrue("didn't collide backwards", terrain.collideLine(p2, p1)); // Test should not be collision p1 = new Vector2(1000, 14); p2 = new Vector2(1030, 14); assertFalse("collided forwards", terrain.collideLine(p1, p2)); assertFalse("collided backwards", terrain.collideLine(p2, p1)); } @Test public void testCollideLineNegative() { Terrain terrain = new Terrain(new TestGenerator()); // Test should be collision Vector2 p1 = new Vector2(-400, 5); Vector2 p2 = new Vector2(-380, 5); assertTrue("didn't collide forwards", terrain.collideLine(p1, p2)); assertTrue("didn't collide backwards", terrain.collideLine(p2, p1)); // Test should not be collision p1 = new Vector2(-400, 14); p2 = new Vector2(-380, 14); assertFalse("collided forwards", terrain.collideLine(p1, p2)); assertFalse("collided backwards", terrain.collideLine(p2, p1)); } @Test public void testHighestPoint() { Terrain terrain = new Terrain(new TestGenerator()); assertEquals(0, terrain.getHighestPointBetween(0, 5)); assertEquals(10, terrain.getHighestPointBetween(0, 6)); assertEquals(11, terrain.getHighestPointBetween(0, 106)); assertEquals(11, terrain.getHighestPointBetween(105, 106)); assertEquals(6, terrain.getHighestPointBetween(-196, -100)); } private class TestGenerator extends HeightMap { @Override public int getSample(int x) { switch (x) { case -195: return 6; case -95: return 7; case -395: return 8; case -295: return 9; case 5: return 10; case 105: return 11; case 1029: return 12; case 1129: return 13; default: return 0; } } @Override public int getSeed() { return 0; } } }