/
tests.py
53 lines (46 loc) · 1.93 KB
/
tests.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
from unittest import TestCase, main
from rummy import TILES, valid_set, valid_run, strs_to_tiles
class TestTiles(TestCase):
def test_len(self):
self.assertEqual(len(TILES), 13*4*2 + 2)
class TestValid(TestCase):
def test_valid_set(self):
self.assertTrue(valid_set(
strs_to_tiles('1Ba', '1Oa', '1Ra')))
self.assertTrue(valid_set(
strs_to_tiles('1Ba', '1Oa', '1Ra', '1Ua')))
self.assertTrue(valid_set(
strs_to_tiles('1Ba', '1Oa', 'JJa')))
self.assertTrue(valid_set(
strs_to_tiles('1Ba', '1Oa', 'JJa', 'JJb')))
self.assertFalse(valid_set(
strs_to_tiles('1Ba', '1Oa')))
self.assertFalse(valid_set(
strs_to_tiles('1Ba', '1Oa', '1Ra', '1Bb')))
self.assertFalse(valid_set(
strs_to_tiles('1Ba', '1Oa', '2Ra')))
def test_valid_run(self):
self.assertTrue(valid_run(
strs_to_tiles('1Ba', '2Ba', '3Ba')))
self.assertTrue(valid_run(
strs_to_tiles('2Ba', '1Ba', '3Ba')))
self.assertTrue(valid_run(
strs_to_tiles('1Ba', '2Ba', 'JJa', '4Ba')))
self.assertTrue(valid_run(
strs_to_tiles('1Ba', '2Ba', 'JJa', 'JJb', '5Ba')))
self.assertTrue(valid_run(
strs_to_tiles('JJa', 'JJb', *('{n}Ba'.format(n=n) for n in range(2, 13)))))
self.assertFalse(valid_run(
strs_to_tiles('1Ba', '2Ba')))
self.assertFalse(valid_run(
strs_to_tiles('1Ua', '2Ba', '3Oa')))
self.assertFalse(valid_run(
strs_to_tiles('1Ba', '2Ba', '3Ba', '3Bb')))
self.assertFalse(valid_run(
strs_to_tiles('1Ba', '2Ba', '4Ba', '5Ba')))
self.assertFalse(valid_run(
strs_to_tiles('1Ba', '2Ba', 'JJa', '5Ba')))
self.assertFalse(valid_run(
strs_to_tiles('JJa', 'JJb', *('{n}Ba'.format(n=n) for n in range(1, 14)))))
if __name__ == '__main__':
main()