mtg/test.py

32 lines
1.4 KiB
Python
Raw Normal View History

2010-06-16 18:42:22 +00:00
import unittest
from mtg import *
class TestManaMath(unittest.TestCase):
def test_add_mana(self):
self.assertEquals('RR', str(Mana('r') + Mana('r')))
def test_subtract_mana(self):
self.assertEquals('R', str(Mana('rr') - Mana('r')))
def test_subtract_mana_insufficient(self):
self.assertRaises(Exception, lambda: Mana('r') - Mana('rr'))
self.assertRaises(Exception, lambda: Mana('r') - Mana('g'))
class TestManaCostMath(unittest.TestCase):
def test_add_manacost(self):
self.assertEquals('3R', str(ManaCost('2R') + ManaCost('1')))
def test_subtract_manacost(self):
self.assertEquals('1G', str(ManaCost('4GR') - ManaCost('3R')))
def test_subtract_manacost_from_mana(self):
result = Mana('UUBWWR') - ManaCost('1RW')
# Can't check the exact string, since there's no way of knowing which
# colors will be used for the additional mana requirement
self.assertEquals(3, result.converted())
self.assertEquals(0, result.mana['R'])
self.assertEquals(1, result.mana['W'])
def test_subtract_manacost_from_mana_insufficient_addtl(self):
self.assertRaises(Exception, lambda: Mana('RRW') - ManaCost('3R'))
2010-06-16 18:42:22 +00:00
def test_subtract_manacost_from_mana_insufficient_color(self):
self.assertRaises(Exception, lambda: Mana('RRW') - ManaCost('2U'))
2010-06-16 18:42:22 +00:00
if __name__ == '__main__':
unittest.main()