-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathtest_galaxy_lib.py
63 lines (53 loc) · 2.2 KB
/
test_galaxy_lib.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
54
55
56
57
58
59
60
61
62
63
#!/usr/env/python
# Test class for galaxy_lib for Galaxy
# Author: [email protected]
# Version: 0.1
# Modules
import unittest
import galaxy_lib
from planets import Planet
# Variables
planet_list = []
# Classes
# See http://pythontesting.net/framework/unittest/unittest-introduction/
class TestGalaxy_Lib(unittest.TestCase):
def setUp(self):
planet_list.append(Planet('A', 'Foo', 1, 1, 10))
planet_list.append(Planet('B', 'Bar', 5, 2, 7))
planet_list.append(Planet('C', 'FooBar', -1, -2, 5))
def test_Distance(self):
self.assertEqual(galaxy_lib.Distance(0, 2, 2, 1), 2.23606797749979)
def test_PlanetDistance(self):
self.assertEqual(galaxy_lib.PlanetDistance(planet_list, 'A', 'B'),
4.123105625617661)
self.assertEqual(galaxy_lib.PlanetDistance(planet_list, 'A', 'B', True), 5)
self.assertEqual(galaxy_lib.PlanetDistance(planet_list, 'A', 'C'),
3.605551275463989)
# Invalid planet
self.assertEqual(galaxy_lib.PlanetDistance(planet_list, 'A', 'D'), None)
self.assertEqual(galaxy_lib.PlanetDistance(planet_list, 'D', 'B', True),
None)
def test_GetPlanetByName(self):
self.assertEqual(galaxy_lib.GetPlanetByName(planet_list, 'A').owner, 'Foo')
self.assertEqual(galaxy_lib.GetPlanetByName(planet_list, 'B').output, 7)
self.assertEqual(galaxy_lib.GetPlanetByName(planet_list, 'D'), None)
def test_CreateFleet(self):
# Generate some ships on planet A
Planet.BuildShips(galaxy_lib.GetPlanetByName(planet_list, 'A'))
# Not enough ships
self.assertEqual(galaxy_lib.CreateFleet(planet_list, 'A', 20, 'B'), None)
# Invalid origin
self.assertEqual(galaxy_lib.CreateFleet(planet_list, 'D', 20, 'B'), None)
# Invalud destination
self.assertEqual(galaxy_lib.CreateFleet(planet_list, 'A', 5, 'D'), None)
# Success Test
fleet = galaxy_lib.CreateFleet(planet_list, 'A', 5, 'B')
# Check planet
self.assertEqual(galaxy_lib.GetPlanetByName(planet_list, 'A').ships, 5)
# Check fleet
self.assertEqual(fleet.ships, 5)
self.assertEqual(fleet.owner, 'Foo')
self.assertEqual(fleet.destination, 'B')
self.assertEqual(fleet.travel_time, 5)
if __name__ == "__main__":
unittest.main()