def test_DieSet_distribution_neg1d6(self):
     dieset_neg1d6 = dice.DieSet("-1d6")
     self.assertEqual(dieset_neg1d6.distribution, [(-6, 0.16667),
                                                   (-5, 0.16667),
                                                   (-4, 0.16667),
                                                   (-3, 0.16667),
                                                   (-2, 0.16667),
                                                   (-1, 0.16667)])
 def test_DieSet_minroll_1d6(self):
     dieset_1d6 = dice.DieSet("1d6")
     self.assertEqual(dieset_1d6.minroll, 1)
 def test_dstring_tokenize_xdx_plus_xdx(self):
     self.assertEqual(
         dice.dstring_parse("1d10+1d8"),
         [dice.DieSet("1d10"), dice.DieSet("1d8")])
 def test_DieSet_probability_range_1d6_5to7(self):
     dieset_1d6 = dice.DieSet("1d6")
     with self.assertRaisesRegex(ValueError,
                                 "Argument '7' not in valid range 1 - 6"):
         dieset_1d6.probability_range(5, 7)
 def test_DieSet_probability_range_1d6_5to1(self):
     dieset_neg1d6 = dice.DieSet("1d6")
     self.assertEqual(dieset_neg1d6.probability_range(5, 1), 0.83335)
 def test_DieSet_probability_range_2d4_4to6(self):
     dieset_2d4 = dice.DieSet("2d4")
     self.assertEqual(dieset_2d4.probability_range(4, 6), 0.625)
 def test_DieSet_probability_range_1d6_4to5(self):
     dieset_1d6 = dice.DieSet("1d6")
     self.assertEqual(dieset_1d6.probability_range(4, 5), 0.33334)
 def test_DieSet_probability_neg1d6_neg3(self):
     dieset_neg1d6 = dice.DieSet("-1d6")
     self.assertEqual(dieset_neg1d6.probability(-3), 0.16667)
 def test_DieSet_distribution_1d6(self):
     dieset_1d6 = dice.DieSet("1d6")
     self.assertEqual(dieset_1d6.distribution, [(1, 0.16667), (2, 0.16667),
                                                (3, 0.16667), (4, 0.16667),
                                                (5, 0.16667), (6, 0.16667)])
 def test_DieSet_rollrange_neg1d6(self):
     dieset_neg1d6 = dice.DieSet("-1d6")
     self.assertEqual(dieset_neg1d6.rollrange, 6)
 def test_DieSet_rollrange_6d1(self):
     dieset_6d1 = dice.DieSet("6d1")
     self.assertEqual(dieset_6d1.rollrange, 1)
 def test_DieSet_rollrange_2d4(self):
     dieset_2d4 = dice.DieSet("2d4")
     self.assertEqual(dieset_2d4.rollrange, 7)
 def test_DieSet_minroll_neg1d6(self):
     dieset_neg1d6 = dice.DieSet("-1d6")
     self.assertEqual(dieset_neg1d6.minroll, -6)
 def test_DieSet_minroll_6d1(self):
     dieset_6d1 = dice.DieSet("6d1")
     self.assertEqual(dieset_6d1.minroll, 6)
 def test_DieSet_minroll_2d4(self):
     dieset_2d4 = dice.DieSet("2d4")
     self.assertEqual(dieset_2d4.minroll, 2)
 def test_DieSet_probability_2d4_6(self):
     dieset_2d4 = dice.DieSet("2d4")
     self.assertEqual(dieset_2d4.probability(6), 0.1875)
 def test_DieSet_probability_6d1_5(self):
     dieset_6d1 = dice.DieSet("6d1")
     self.assertEqual(dieset_6d1.probability(5), 0)
 def test_DieSet_distribution_2d4(self):
     dieset_2d4 = dice.DieSet("2d4")
     self.assertEqual(dieset_2d4.distribution, [(2, 0.0625), (3, 0.125),
                                                (4, 0.1875), (5, 0.25),
                                                (6, 0.1875), (7, 0.125),
                                                (8, 0.0625)])
 def test_DieSet_probability_range_1d6_1to3(self):
     dieset_1d6 = dice.DieSet("1d6")
     self.assertEqual(dieset_1d6.probability_range(1, 3), 0.50001)
 def test_DieSet_distribution_6d1(self):
     dieset_6d1 = dice.DieSet("6d1")
     self.assertEqual(dieset_6d1.distribution, [(6, 1)])
 def test_DieSet_probability_range_2d4_2to4(self):
     dieset_2d4 = dice.DieSet("2d4")
     self.assertEqual(dieset_2d4.probability_range(2, 4), 0.375)
 def test_DieSet_distribution_3d3(self):
     dieset_3d3 = dice.DieSet("3d3")
     self.assertEqual(dieset_3d3.distribution, [(3, 0.03704), (4, 0.11111),
                                                (5, 0.22222), (6, 0.25926),
                                                (7, 0.22222), (8, 0.11111),
                                                (9, 0.03704)])
 def test_DieSet_probability_range_neg1d6_neg4toneg3(self):
     dieset_neg1d6 = dice.DieSet("-1d6")
     self.assertEqual(dieset_neg1d6.probability_range(-4, -3), 0.33334)
 def test_DieSet_probability_1d6_1(self):
     dieset_1d6 = dice.DieSet("1d6")
     self.assertEqual(dieset_1d6.probability(1), 0.16667)
 def test_DieSet_probability_range_6d1_5to6(self):
     dieset_6d1 = dice.DieSet("6d1")
     with self.assertRaisesRegex(ValueError,
                                 "Argument '5' not in valid range 6 - 6"):
         dieset_6d1.probability_range(5, 6)
 def test_DieSet_probability_1d6_7(self):
     dieset_1d6 = dice.DieSet("1d6")
     self.assertEqual(dieset_1d6.probability(7), 0)
 def test_dstring_parse_xdx(self):
     self.assertEqual(dice.dstring_parse("1d6"), [dice.DieSet("1d6")])
 def test_DieSet_probability_2d4_2(self):
     dieset_2d4 = dice.DieSet("2d4")
     self.assertEqual(dieset_2d4.probability(2), 0.0625)
 def test_dstring_tokenize_xdx_minus_xdx_minus_xdx(self):
     self.assertEqual(
         dice.dstring_parse("1d4-1d6-1d8"),
         [dice.DieSet("1d4"),
          dice.DieSet("-1d6"),
          dice.DieSet("-1d8")])
 def test_DieSet_roll_neg1d6(self):
     dieset_neg1d6 = dice.DieSet("-1d6")
     for _ in range(1000):
         self.assertTrue(-6 <= dieset_neg1d6.roll() <= -1)