import org.junit.Assert; import org.junit.BeforeClass; import org.junit.Test; import java.util.Iterator; import java.util.List; public class SimpleTest { private static Manhattan manhattan; @BeforeClass public static void init() { manhattan = new DynamischManhattan(); } @Test public void test1() { Kruispunt[][] rooster = new Kruispunt[][]{ {new Kruispunt(0,0),new Kruispunt(0,4)}, {new Kruispunt(5,0),new Kruispunt(8,6)} }; check(rooster, manhattan.bepaalRoute(rooster), 12); } @Test public void test2() { Kruispunt[][] rooster = new Kruispunt[][]{ {new Kruispunt(0,0),new Kruispunt(0,1),new Kruispunt(0,2)}, {new Kruispunt(2,0),new Kruispunt(9,4),new Kruispunt(5,3)} }; check(rooster, manhattan.bepaalRoute(rooster), 13); } @Test public void test3() { Kruispunt[][] rooster = new Kruispunt[][]{ {new Kruispunt(0,0),new Kruispunt(0,1),new Kruispunt(0,7)}, {new Kruispunt(22,0),new Kruispunt(20,20),new Kruispunt(50,1)}, {new Kruispunt(20,0),new Kruispunt(10,3),new Kruispunt(3,5)} }; check(rooster, manhattan.bepaalRoute(rooster), 61); } static void check(Kruispunt[][] rooster, List route, int optimaal){ int m = rooster.length; int n = rooster[0].length; Iterator iter = route.iterator(); Assert.assertSame("Je route start op het verkeerde kruispunt.", rooster[0][0], iter.next()); int i = 0, j = 0, attractions = 0; while (iter.hasNext()) { Kruispunt kruispunt = iter.next(); if (i + 1 < m && kruispunt == rooster[i + 1][j]) { i += 1; attractions += kruispunt.getAttractiesNoord(); } else if (j + 1 < n && kruispunt == rooster[i][j + 1]) { j += 1; attractions += kruispunt.getAttractiesWest(); } else { Assert.fail("Je route bestaat niet uit opeenvolgende kruispunten."); } } Assert.assertTrue("Je route eindigt op het verkeerde kruispunt.", i == m - 1 && j == n - 1); Assert.assertEquals("Het aantal attracties op je route is niet optimaal.", optimaal, attractions); } }