Explorar o código

Minor corrections

olinox %!s(int64=8) %!d(string=hai) anos
pai
achega
a0a3b6f610
Modificáronse 2 ficheiros con 17 adicións e 1 borrados
  1. 14 0
      test.py
  2. 3 1
      xdice.py

+ 14 - 0
test.py

@@ -70,6 +70,9 @@ class Test(unittest.TestCase):
         self.assertEqual(d.sides, 6)
         self.assertEqual(d.amount, 6)
         self.assertEqual(d.__repr__(), "<Dice; sides=6; amount=6>")
+        d.drop_lowest = 1
+        d.drop_highest = 1
+        self.assertEqual(d.__repr__(), "<Dice; sides=6; amount=6; drop_lowest=1; drop_highest=1>")
 
         self.assertRaises(ValueError, setattr, d, "sides", -1)
         self.assertRaises(ValueError, setattr, d, "sides", "a")
@@ -77,12 +80,23 @@ class Test(unittest.TestCase):
         self.assertRaises(ValueError, setattr, d, "amount", -1)
         self.assertRaises(ValueError, setattr, d, "amount", "a")
         self.assertRaises(ValueError, setattr, d, "amount", None)
+        self.assertRaises(ValueError, setattr, d, "drop_lowest", -1)
+        self.assertRaises(ValueError, setattr, d, "drop_lowest", "a")
+        self.assertRaises(ValueError, setattr, d, "drop_lowest", None)
+        self.assertRaises(ValueError, setattr, d, "drop_highest", -1)
+        self.assertRaises(ValueError, setattr, d, "drop_highest", "a")
+        self.assertRaises(ValueError, setattr, d, "drop_highest", None)
 
         self.assertEqual(xdice.Dice(1, 6).roll(), 6)
+        self.assertEqual(xdice.Dice(1, 6, 1).roll(), 5)
+        self.assertEqual(xdice.Dice(1, 6, 0, 1).roll(), 5)
+        self.assertEqual(xdice.Dice(1, 6, 1, 1).roll(), 4)
+        self.assertEqual(xdice.Dice(1, 6, 3, 3).roll(), 0)
 
         self.assertEqual(xdice.Dice.parse("6d1").roll(), 6)
         self.assertRaises(ValueError, xdice.Dice.parse, "a1d6")
         self.assertEqual(xdice.Dice.parse("6d1h1").roll().name, "6d1h1")
+        self.assertEqual(xdice.Dice.parse("6 D 1h1").roll().name, "6d1h1")
 
     def test_score_object(self):
 

+ 3 - 1
xdice.py

@@ -151,7 +151,9 @@ class Dice():
 
     def __repr__(self):
         """ Return a string representation of the Dice """
-        return "<Dice; sides={}; amount={}>".format(self.sides, self.amount)
+        lowstr = "; drop_lowest={}".format(self.drop_lowest) if self.drop_lowest else ""
+        highstr = "; drop_highest={}".format(self.drop_highest) if self.drop_highest else ""
+        return "<Dice; sides={}; amount={}{}{}>".format(self.sides, self.amount, lowstr, highstr)
 
     def __eq__(self, d):
         """