From 975bb8643792e1fa8a10859a2b311792116317c7 Mon Sep 17 00:00:00 2001
From: arnaudlabourel <arnaud.labourel@univ-amu.fr>
Date: Tue, 9 Nov 2021 11:35:13 +0100
Subject: [PATCH] Added tests for RandomConstrainedWangTileGenerator

---
 ...andomConstrainedWangTileGeneratorTest.java | 41 +++++++++++++++++++
 1 file changed, 41 insertions(+)
 create mode 100644 src/test/java/model/RandomConstrainedWangTileGeneratorTest.java

diff --git a/src/test/java/model/RandomConstrainedWangTileGeneratorTest.java b/src/test/java/model/RandomConstrainedWangTileGeneratorTest.java
new file mode 100644
index 0000000..1510a23
--- /dev/null
+++ b/src/test/java/model/RandomConstrainedWangTileGeneratorTest.java
@@ -0,0 +1,41 @@
+package model;
+
+import javafx.scene.paint.Color;
+import org.junit.jupiter.api.Test;
+
+import java.util.List;
+import java.util.Random;
+
+import static org.assertj.core.api.Assertions.assertThat;
+
+public class RandomConstrainedWangTileGeneratorTest {
+  @Test
+  void testNextTile(){
+    Side redSide = new ColoredSide(Color.RED);
+    Side blueSide = new ColoredSide(Color.BLUE);
+
+    Tile blueTile = new UniformTile(blueSide);
+    Tile redTile = new UniformTile(redSide);
+
+    Square square = new ArraySquare();
+    Square northNeighbor = new ArraySquare();
+    Square westNeighbor = new ArraySquare();
+
+    northNeighbor.put(redTile);
+    westNeighbor.put(blueTile);
+
+    square.setNeighbor(northNeighbor, CardinalDirection.NORTH);
+    square.setNeighbor(westNeighbor, CardinalDirection.WEST);
+
+    TileGenerator tileGenerator = new RandomConstrainedWangTileGenerator(List.of(Color.BLUE, Color.RED),
+            new Random(0));
+
+    for(int index = 0; index < 10; index++){
+      Tile tile = tileGenerator.nextTile(square);
+      assertThat(tile.side(CardinalDirection.NORTH)).isEqualTo(redSide);
+      assertThat(tile.side(CardinalDirection.WEST)).isEqualTo(blueSide);
+      assertThat(tile.side(CardinalDirection.EAST)).isIn(List.of(redSide, blueSide));
+      assertThat(tile.side(CardinalDirection.SOUTH)).isIn(List.of(redSide, blueSide));
+    }
+  }
+}
-- 
GitLab