From 84f0803068ba50bcba67de42634a4bf3d0e9e170 Mon Sep 17 00:00:00 2001 From: Ben Culkin Date: Sat, 14 Nov 2020 22:07:50 -0500 Subject: Begin new dice implementation For various reasons, I'm not happy with the other implementations. Here's hoping that this one is better --- .../test/java/bjc/dicelang/neodice/DieTest.java | 45 ++++++++++++++++++++++ 1 file changed, 45 insertions(+) create mode 100644 dice/src/test/java/bjc/dicelang/neodice/DieTest.java (limited to 'dice/src/test/java/bjc/dicelang/neodice/DieTest.java') 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); + } +} -- cgit v1.2.3