summaryrefslogtreecommitdiff
path: root/dice/src/test/java/bjc/dicelang
diff options
context:
space:
mode:
Diffstat (limited to 'dice/src/test/java/bjc/dicelang')
-rw-r--r--dice/src/test/java/bjc/dicelang/neodice/DiePoolTest.java33
-rw-r--r--dice/src/test/java/bjc/dicelang/neodice/DieTest.java45
2 files changed, 78 insertions, 0 deletions
diff --git a/dice/src/test/java/bjc/dicelang/neodice/DiePoolTest.java b/dice/src/test/java/bjc/dicelang/neodice/DiePoolTest.java
new file mode 100644
index 0000000..1a217d3
--- /dev/null
+++ b/dice/src/test/java/bjc/dicelang/neodice/DiePoolTest.java
@@ -0,0 +1,33 @@
+package bjc.dicelang.neodice;
+
+import static org.junit.Assert.*;
+
+import java.util.*;
+
+import org.junit.*;
+
+@SuppressWarnings("javadoc")
+public class DiePoolTest {
+ private static final Random rng = new Random();
+
+ @Test
+ public void containedOneDieYieldsOneDie() {
+ Die oneSidedDie = DieFactory.polyhedral(1);
+ DiePool pool = DiePoolFactory.containing(oneSidedDie);
+
+ assertArrayEquals(
+ "A contained pool created with one die, yields that die",
+ new Die[] {oneSidedDie}, pool.contained());
+ }
+
+ @Test
+ public void containedOneDieRollsOneDie() {
+ Die oneSidedDie = DieFactory.polyhedral(1);
+ DiePool pool = DiePoolFactory.containing(oneSidedDie);
+
+ for (int i = 0; i < 10; i++) {
+ assertArrayEquals("One-die pools roll one die",
+ new int[] {1}, pool.roll(rng));
+ }
+ }
+}
diff --git a/dice/src/test/java/bjc/dicelang/neodice/DieTest.java b/dice/src/test/java/bjc/dicelang/neodice/DieTest.java
new file mode 100644
index 0000000..fc69f99
--- /dev/null
+++ b/dice/src/test/java/bjc/dicelang/neodice/DieTest.java
@@ -0,0 +1,45 @@
+package bjc.dicelang.neodice;
+
+import static org.junit.Assert.*;
+
+import java.util.*;
+
+import org.junit.*;
+
+@SuppressWarnings("javadoc")
+public class DieTest {
+ private final static Random rng = new Random();
+
+ @Test
+ public void onesidedDiceReturnOne() {
+ Die die = DieFactory.polyhedral(1);
+
+ for (int i = 0; i < 10; i++) {
+ assertEquals("One-sided dice always return 1", 1, die.roll(rng));
+ }
+ }
+
+ @Test
+ public void polyhedralDiceStayInRange() {
+ Die die = DieFactory.polyhedral(6);
+
+ for (int i = 0; i < 50; i++) {
+ int result = die.roll(rng);
+
+ boolean inRange = result <= 6 && result >= 1;
+
+ assertTrue("Six-sided dice always return a value from 1 to 6", inRange);
+ }
+ }
+
+ public void polyhedralDiceEqualityFunctionsProperly() {
+ Die dieA1 = DieFactory.polyhedral(1);
+ Die dieA2 = DieFactory.polyhedral(1);
+ Die dieB1 = DieFactory.polyhedral(2);
+
+ assertEquals("Polyhedral dice with the same number of sides are equal",
+ dieA1, dieA2);
+ assertNotEquals("Polyhedral dice with a diffeent number of sides aren't equal",
+ dieA1, dieB1);
+ }
+}