-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathtest-runner.py
110 lines (108 loc) · 6.09 KB
/
test-runner.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
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
import unittest
import importlib
class TestAssignmentFour(unittest.TestCase):
def test_01_Pet(self):
dog = asgmt.Pet('Dog', 'Bark')
self.assertEqual(dog.species, 'Dog')
self.assertEqual(dog.make_sound(), 'Bark')
kitty = asgmt.Pet('Cat', 'Meow')
self.assertEqual(kitty.species, 'Cat')
self.assertEqual(kitty.make_sound(), 'Meow')
def test_02_Hogwarts(self):
hogwarts = asgmt.Hogwarts()
self.assertEqual(hogwarts.location, 'Scotland')
self.assertEqual(hogwarts.founders, ['Godric Gryffindor', 'Salazar Slytherin', 'Rowena Ravenclaw', 'Helga Hufflepuff'])
self.assertEqual(hogwarts.houses, ['Gryffindor', 'Slytherin', 'Ravenclaw', 'Hufflepuff'])
def test_03_Gryffindor(self):
harry_potter = asgmt.Gryffindor("Harry Potter")
self.assertIsInstance(harry_potter.name, str)
self.assertIsInstance(harry_potter.traits, list)
self.assertIsInstance(harry_potter.colors, list)
self.assertEqual(harry_potter.cast_a_spell(), 'Expelliarmus!')
hermione_granger = asgmt.Gryffindor("Hermione Granger")
self.assertIsInstance(hermione_granger.name, str)
self.assertIsInstance(hermione_granger.traits, list)
self.assertIsInstance(hermione_granger.colors, list)
self.assertEqual(hermione_granger.cast_a_spell(), 'Expelliarmus!')
def test_04_StrCase(self):
luke = asgmt.StrCase('Luke Skywalker')
self.assertEqual(luke.upper_case(), 'LUKE SKYWALKER')
self.assertEqual(luke.lower_case(), 'luke skywalker')
self.assertEqual(luke.swap_case(), 'lUKE sKYWALKER')
anakin = asgmt.StrCase('Anakin Skywalker')
self.assertEqual(anakin.upper_case(), 'ANAKIN SKYWALKER')
self.assertEqual(anakin.lower_case(), 'anakin skywalker')
self.assertEqual(anakin.swap_case(), 'aNAKIN sKYWALKER')
def test_05_MethodCalculator(self):
method_calculator = asgmt.MethodCalculator(5, 6)
self.assertEqual(method_calculator.add(), 11)
self.assertEqual(method_calculator.subtract(), -1)
self.assertEqual(method_calculator.multiply(), 30)
self.assertGreaterEqual(method_calculator.divide(), 0.8)
method_calculator = asgmt.MethodCalculator(10, 10)
self.assertEqual(method_calculator.add(), 20)
self.assertEqual(method_calculator.subtract(), 0)
self.assertEqual(method_calculator.multiply(), 100)
self.assertGreaterEqual(method_calculator.divide(), 1)
def test_06_SymbolicCalculator(self):
symbolic_calculator = asgmt.SymbolicCalculator(10, 2)
self.assertGreaterEqual(symbolic_calculator.calculate('+'), 12)
self.assertGreaterEqual(symbolic_calculator.calculate('-'), 8)
self.assertGreaterEqual(symbolic_calculator.calculate('*'), 20)
self.assertGreaterEqual(symbolic_calculator.calculate('/'), 5.0)
self.assertGreaterEqual(symbolic_calculator.calculate('**'), 100)
symbolic_calculator = asgmt.SymbolicCalculator(10, 5)
self.assertGreaterEqual(symbolic_calculator.calculate('+'), 15)
self.assertGreaterEqual(symbolic_calculator.calculate('-'), 5)
self.assertGreaterEqual(symbolic_calculator.calculate('*'), 50)
self.assertGreaterEqual(symbolic_calculator.calculate('/'), 2.0)
self.assertGreaterEqual(symbolic_calculator.calculate('**'), 100000)
def test_07_Reversible(self):
reversible = asgmt.Reversible('Luke')
self.assertEqual(reversible.reverse(), 'ekuL')
reversible = asgmt.Reversible([2, 5, 3, 7, 11])
self.assertEqual(reversible.reverse(), [11, 7, 3, 5, 2])
reversible = asgmt.Reversible((11, 7, 3, 5, 2))
self.assertEqual(reversible.reverse(), (2, 5, 3, 7, 11))
reversible = asgmt.Reversible({0: 'Sunday', 6: 'Saturday'})
self.assertEqual(reversible.reverse(), {'Sunday': 0, 'Saturday': 6})
def test_08_SortList(self):
sort_list = asgmt.SortList([2, 5, 3, 7, 11])
self.assertEqual(sort_list.sort_desc(), [11, 7, 5, 3, 2])
self.assertEqual(sort_list.sort_asc(), [2, 3, 5, 7, 11])
sort_list = asgmt.SortList(['p', 'y', 't', 'h', 'o', 'n'])
self.assertEqual(sort_list.sort_desc(), ['y', 't', 'p', 'o', 'n', 'h'])
self.assertEqual(sort_list.sort_asc(), ['h', 'n', 'o', 'p', 't', 'y'])
sort_list = asgmt.SortList(['a', 'b', 'c'])
self.assertEqual(sort_list.sort_desc(), ['c', 'b', 'a'])
self.assertEqual(sort_list.sort_asc(), ['a', 'b', 'c'])
def test_09_WeekBuilder(self):
week_builder = asgmt.WeekBuilder(0, 1, 2)
self.assertEqual(week_builder.build(), {0: 'Sunday', 1: 'Monday', 2: 'Tuesday'})
week_builder = asgmt.WeekBuilder(5, 6)
self.assertEqual(week_builder.build(), {5: 'Friday', 6: 'Saturday'})
week_builder = asgmt.WeekBuilder(0, 6)
self.assertEqual(week_builder.build(), {0: 'Sunday', 6: 'Saturday'})
week_builder = asgmt.WeekBuilder(1, 3, 5)
self.assertEqual(week_builder.build(), {1: 'Monday', 3: 'Wednesday', 5: 'Friday'})
def test_10_IsInstance(self):
is_instance = asgmt.IsInstance()
self.assertTrue(is_instance.is_int(5566))
self.assertTrue(is_instance.is_float(3.14))
self.assertTrue(is_instance.is_str('5566'))
self.assertTrue(is_instance.is_bool(False))
self.assertTrue(is_instance.is_nonetype(None))
self.assertFalse(is_instance.is_int(55.66))
self.assertFalse(is_instance.is_float('3.14'))
self.assertFalse(is_instance.is_str(5566))
self.assertFalse(is_instance.is_bool('False'))
self.assertFalse(is_instance.is_nonetype('None'))
asgmt = importlib.import_module("asgmt")
suite = unittest.TestLoader().loadTestsFromTestCase(TestAssignmentFour)
runner = unittest.TextTestRunner(verbosity=2)
test_results = runner.run(suite)
number_of_failures = len(test_results.failures)
number_of_errors = len(test_results.errors)
number_of_test_runs = test_results.testsRun
number_of_successes = number_of_test_runs - (number_of_failures + number_of_errors)
print("You've got {} successes among {} questions.".format(number_of_successes, number_of_test_runs))