changeset 519:e80ca31361e7

Ensure the old roller is passing all tests it used to
author digitalxero
date Mon, 15 Mar 2010 19:24:35 -0600
parents 4a9b26a1cd4b
children d011d222b4fc
files orpg/tests/test_dieroller.py
diffstat 1 files changed, 30 insertions(+), 7 deletions(-) [+]
line wrap: on
line diff
--- a/orpg/tests/test_dieroller.py	Mon Mar 15 18:54:09 2010 -0600
+++ b/orpg/tests/test_dieroller.py	Mon Mar 15 19:24:35 2010 -0600
@@ -24,20 +24,43 @@
                  max_roll=6) for x in xrange(100)],
             [dict(roll='4d6.takeHighest(3).minroll(3)', min_roll=3,
                  num_results=3, max_roll=6) for x in xrange(100)]],
+        'test_old_roll': [
+            [dict(roll='1d20', min_roll=1, max_roll=20) for x in xrange(100)],
+            [dict(roll='1d20.minroll(5)', min_roll=5,
+                 max_roll=20) for x in xrange(100)],
+            [dict(roll='4d6.each(5)', min_roll=1, max_roll=6,
+                 num_results=4, extra=5) for x in xrange(100)],
+            [dict(roll='4d6.takeHighest(3)', min_roll=1, num_results=3,
+                 max_roll=6) for x in xrange(100)],
+            [dict(roll='(1+2+1)d6.takeHighest(3)', min_roll=1, num_results=3,
+                 max_roll=6) for x in xrange(100)],
+            [dict(roll='4d6.takeHighest(3).minroll(3)', min_roll=3,
+                 num_results=3, max_roll=6) for x in xrange(100)]],
     }
 
     def test_roll(self, roll, min_roll, max_roll, num_results=1, extra=None):
         from orpg.dieroller import roller_manager
         r = roller_manager.process_roll(roll)
-        r = r.split('-->')
-        print r
-        r = r[1].split('=')
-        print r
-        r = r[1][1:].strip()
-        print r
+        r = r.split('-->')[1].split('=')[1][1:].strip()
         results = eval(r)
 
         assert isinstance(results, list)
         assert len(results) == num_results
         for r in results:
-            assert r >= min_roll and r <= max_roll
\ No newline at end of file
+            assert r >= min_roll and r <= max_roll
+
+    def test_old_roll(self, roll, min_roll, max_roll, num_results=1, extra=None):
+        from orpg.dieroller import roller_manager
+        roller_manager.roller = 'old_std'
+        r = roller_manager.process_roll(roll)
+        r = r[3].split('=')[0].strip()
+        results = eval(r)
+
+        assert isinstance(results, list)
+        assert len(results) == num_results
+        for r in results:
+            if extra is not None:
+                assert r[0] >= min_roll and r[0] <= max_roll
+                assert r[1] == extra
+            else:
+                assert r >= min_roll and r <= max_roll
\ No newline at end of file