package org.mafagafogigante.dungeon.game; import org.mafagafogigante.dungeon.util.Percentage; import org.junit.Assert; import org.junit.Test; import java.util.ArrayList; import java.util.Collections; import java.util.List; public class RandomTest { @Test public void testRollWithDoubles() throws Exception { Assert.assertFalse(Random.roll(0.0)); Assert.assertTrue(Random.roll(1.0)); } @Test public void testRollWithPercentages() throws Exception { Assert.assertFalse(Random.roll(new Percentage(0.0))); Assert.assertTrue(Random.roll(new Percentage(1.0))); } @Test public void testSelect() throws Exception { try { Random.select(Collections.emptyList()); Assert.fail("expected an exception."); } catch (IllegalArgumentException expected) { // Dungeon Code Style does not require a comment on exceptions named expected in tests. } List<Integer> integerList = new ArrayList<>(); integerList.add(0); Assert.assertTrue(Random.select(integerList).equals(0)); } @Test public void testRandomIntegerRespectsMinimum() throws Exception { for (int i = 0; i < 1000; i++) { Assert.assertEquals(i, Random.nextInteger(i, i + 1)); } } }