annotate gamelib/tests/test_lab.py @ 20:718d1ec382f7

Deserialise lab data.
author Jeremy Thurgood <firxen@gmail.com>
date Sun, 06 May 2012 18:12:51 +0200
parents 10d3db1f1e08
children bdc6bfc34ef2
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
8
967480d228b6 Some not-really-tests.
Jeremy Thurgood <firxen@gmail.com>
parents:
diff changeset
1 from unittest import TestCase
967480d228b6 Some not-really-tests.
Jeremy Thurgood <firxen@gmail.com>
parents:
diff changeset
2
967480d228b6 Some not-really-tests.
Jeremy Thurgood <firxen@gmail.com>
parents:
diff changeset
3 from gamelib.lab import Lab
14
9d61abb3cfaf Better subclass handling.
Jeremy Thurgood <firxen@gmail.com>
parents: 8
diff changeset
4 from gamelib import research, products
8
967480d228b6 Some not-really-tests.
Jeremy Thurgood <firxen@gmail.com>
parents:
diff changeset
5
967480d228b6 Some not-really-tests.
Jeremy Thurgood <firxen@gmail.com>
parents:
diff changeset
6
967480d228b6 Some not-really-tests.
Jeremy Thurgood <firxen@gmail.com>
parents:
diff changeset
7 class TestLab(TestCase):
20
718d1ec382f7 Deserialise lab data.
Jeremy Thurgood <firxen@gmail.com>
parents: 17
diff changeset
8 def test_new_lab(self):
718d1ec382f7 Deserialise lab data.
Jeremy Thurgood <firxen@gmail.com>
parents: 17
diff changeset
9 all_sciences = set()
718d1ec382f7 Deserialise lab data.
Jeremy Thurgood <firxen@gmail.com>
parents: 17
diff changeset
10 for _ in range(10):
718d1ec382f7 Deserialise lab data.
Jeremy Thurgood <firxen@gmail.com>
parents: 17
diff changeset
11 lab = Lab()
718d1ec382f7 Deserialise lab data.
Jeremy Thurgood <firxen@gmail.com>
parents: 17
diff changeset
12 research_areas = [r for r in lab.science
718d1ec382f7 Deserialise lab data.
Jeremy Thurgood <firxen@gmail.com>
parents: 17
diff changeset
13 if isinstance(r, research.ResearchArea)]
718d1ec382f7 Deserialise lab data.
Jeremy Thurgood <firxen@gmail.com>
parents: 17
diff changeset
14 self.assertEqual(3, len(research_areas))
718d1ec382f7 Deserialise lab data.
Jeremy Thurgood <firxen@gmail.com>
parents: 17
diff changeset
15 for science in research_areas:
718d1ec382f7 Deserialise lab data.
Jeremy Thurgood <firxen@gmail.com>
parents: 17
diff changeset
16 all_sciences.add(type(science))
718d1ec382f7 Deserialise lab data.
Jeremy Thurgood <firxen@gmail.com>
parents: 17
diff changeset
17 self.assertTrue(len(all_sciences) > 3)
14
9d61abb3cfaf Better subclass handling.
Jeremy Thurgood <firxen@gmail.com>
parents: 8
diff changeset
18
8
967480d228b6 Some not-really-tests.
Jeremy Thurgood <firxen@gmail.com>
parents:
diff changeset
19 def test_find_new_products(self):
20
718d1ec382f7 Deserialise lab data.
Jeremy Thurgood <firxen@gmail.com>
parents: 17
diff changeset
20 lab = Lab({
718d1ec382f7 Deserialise lab data.
Jeremy Thurgood <firxen@gmail.com>
parents: 17
diff changeset
21 'science': {
718d1ec382f7 Deserialise lab data.
Jeremy Thurgood <firxen@gmail.com>
parents: 17
diff changeset
22 'research.Tesla': 3,
718d1ec382f7 Deserialise lab data.
Jeremy Thurgood <firxen@gmail.com>
parents: 17
diff changeset
23 }
718d1ec382f7 Deserialise lab data.
Jeremy Thurgood <firxen@gmail.com>
parents: 17
diff changeset
24 })
718d1ec382f7 Deserialise lab data.
Jeremy Thurgood <firxen@gmail.com>
parents: 17
diff changeset
25 new_products = lab.find_new_products(None)
17
10d3db1f1e08 Set up initial research and rework breakthroughs.
Jeremy Thurgood <firxen@gmail.com>
parents: 14
diff changeset
26 self.assertTrue(products.TeslaTank in new_products)
14
9d61abb3cfaf Better subclass handling.
Jeremy Thurgood <firxen@gmail.com>
parents: 8
diff changeset
27 self.assertTrue(products.DoomsdayVirus not in new_products)
8
967480d228b6 Some not-really-tests.
Jeremy Thurgood <firxen@gmail.com>
parents:
diff changeset
28
967480d228b6 Some not-really-tests.
Jeremy Thurgood <firxen@gmail.com>
parents:
diff changeset
29 def test_find_new_research(self):
20
718d1ec382f7 Deserialise lab data.
Jeremy Thurgood <firxen@gmail.com>
parents: 17
diff changeset
30 lab = Lab({
718d1ec382f7 Deserialise lab data.
Jeremy Thurgood <firxen@gmail.com>
parents: 17
diff changeset
31 'science': {
718d1ec382f7 Deserialise lab data.
Jeremy Thurgood <firxen@gmail.com>
parents: 17
diff changeset
32 'research.Robotics': 1,
718d1ec382f7 Deserialise lab data.
Jeremy Thurgood <firxen@gmail.com>
parents: 17
diff changeset
33 'research.Rocketry': 2,
718d1ec382f7 Deserialise lab data.
Jeremy Thurgood <firxen@gmail.com>
parents: 17
diff changeset
34 }
718d1ec382f7 Deserialise lab data.
Jeremy Thurgood <firxen@gmail.com>
parents: 17
diff changeset
35 })
718d1ec382f7 Deserialise lab data.
Jeremy Thurgood <firxen@gmail.com>
parents: 17
diff changeset
36 new_research = lab.find_new_research()
17
10d3db1f1e08 Set up initial research and rework breakthroughs.
Jeremy Thurgood <firxen@gmail.com>
parents: 14
diff changeset
37 self.assertTrue(research.Space in new_research)
10d3db1f1e08 Set up initial research and rework breakthroughs.
Jeremy Thurgood <firxen@gmail.com>
parents: 14
diff changeset
38 self.assertTrue(research.ArtificialIntelligence not in new_research)