Skip to content

Commit ede22d4

Browse files
trangtttNathan Parsons
authored andcommitted
complex-numbers: check test version and update (exercism#1057)
* complex-numbers: check test version and update * Swap the order of expected and actual value in assertEqual
1 parent 760aac2 commit ede22d4

1 file changed

Lines changed: 81 additions & 66 deletions

File tree

exercises/complex-numbers/complex_numbers_test.py

Lines changed: 81 additions & 66 deletions
Original file line numberDiff line numberDiff line change
@@ -5,151 +5,166 @@
55
from complex_numbers import ComplexNumber
66

77

8-
class ComplexNumbersTest(unittest.TestCase):
9-
10-
def test_real_part_of_a_purely_real_number(self):
11-
input_number = ComplexNumber(1, 0)
12-
self.assertEqual(input_number.real, 1)
13-
14-
def test_real_part_of_a_purely_imaginary_number(self):
15-
input_number = ComplexNumber(0, 1)
16-
self.assertEqual(input_number.real, 0)
17-
18-
def test_real_part_of_a_number_with_real_and_imaginary_part(self):
19-
input_number = ComplexNumber(1, 2)
20-
self.assertEqual(input_number.real, 1)
8+
# Tests adapted from `problem-specifications//canonical-data.json` @ v1.0.0
219

22-
def test_imaginary_part_of_a_purely_real_number(self):
23-
input_number = ComplexNumber(1, 0)
24-
self.assertEqual(input_number.imaginary, 0)
2510

26-
def test_imaginary_part_of_a_purely_imaginary_number(self):
27-
input_number = ComplexNumber(0, 1)
28-
self.assertEqual(input_number.imaginary, 1)
29-
30-
def test_maginary_part_of_a_number_with_real_and_imaginary_part(self):
31-
input_number = ComplexNumber(1, 2)
32-
self.assertEqual(input_number.imaginary, 2)
11+
class ComplexNumbersTest(unittest.TestCase):
3312

3413
def test_add_purely_real_numbers(self):
3514
first_input = ComplexNumber(1, 0)
36-
second_input = ComplexNumber(3, 0)
37-
self.assertEqual(first_input.add(second_input).real, 4)
15+
second_input = ComplexNumber(2, 0)
16+
self.assertEqual(first_input.add(second_input).real, 3)
3817
self.assertEqual(first_input.add(second_input).imaginary, 0)
3918

4019
def test_add_purely_imaginary_numbers(self):
4120
first_input = ComplexNumber(0, 1)
42-
second_input = ComplexNumber(0, 3)
21+
second_input = ComplexNumber(0, 2)
4322
self.assertEqual(first_input.add(second_input).real, 0)
44-
self.assertEqual(first_input.add(second_input).imaginary, 4)
23+
self.assertEqual(first_input.add(second_input).imaginary, 3)
4524

4625
def test_add_numbers_with_real_and_imaginary_part(self):
4726
first_input = ComplexNumber(1, 2)
48-
second_input = ComplexNumber(4, 6)
49-
self.assertEqual(first_input.add(second_input).real, 5)
50-
self.assertEqual(first_input.add(second_input).imaginary, 8)
27+
second_input = ComplexNumber(3, 4)
28+
self.assertEqual(first_input.add(second_input).real, 4)
29+
self.assertEqual(first_input.add(second_input).imaginary, 6)
5130

5231
def test_subtract_purely_real_numbers(self):
5332
first_input = ComplexNumber(1, 0)
54-
second_input = ComplexNumber(-1, 0)
55-
self.assertEqual(first_input.sub(second_input).real, 2)
33+
second_input = ComplexNumber(2, 0)
34+
self.assertEqual(first_input.sub(second_input).real, -1)
5635
self.assertEqual(first_input.sub(second_input).imaginary, 0)
5736

37+
def test_subtract_purely_imaginary_numbers(self):
38+
first_input = ComplexNumber(0, 1)
39+
second_input = ComplexNumber(0, 2)
40+
self.assertEqual(first_input.sub(second_input).real, 0)
41+
self.assertEqual(first_input.sub(second_input).imaginary, -1)
42+
5843
def test_subtract_numbers_with_real_and_imaginary_part(self):
5944
first_input = ComplexNumber(1, 2)
60-
second_input = ComplexNumber(-2, -2)
61-
self.assertEqual(first_input.sub(second_input).real, 3)
62-
self.assertEqual(first_input.sub(second_input).imaginary, 4)
45+
second_input = ComplexNumber(3, 4)
46+
self.assertEqual(first_input.sub(second_input).real, -2)
47+
self.assertEqual(first_input.sub(second_input).imaginary, -2)
6348

6449
def test_multiply_purely_real_numbers(self):
6550
first_input = ComplexNumber(1, 0)
6651
second_input = ComplexNumber(2, 0)
6752
self.assertEqual(first_input.mul(second_input).real, 2)
6853
self.assertEqual(first_input.mul(second_input).imaginary, 0)
6954

55+
def test_multiply_purely_imaginary_numbers(self):
56+
first_input = ComplexNumber(0, 1)
57+
second_input = ComplexNumber(0, 2)
58+
self.assertEqual(first_input.mul(second_input).real, -2)
59+
self.assertEqual(first_input.mul(second_input).imaginary, 0)
60+
7061
def test_multiply_numbers_with_real_and_imaginary_part(self):
7162
first_input = ComplexNumber(1, 2)
72-
second_input = ComplexNumber(-5, 10)
73-
self.assertEqual(first_input.mul(second_input).real, -25)
74-
self.assertEqual(first_input.mul(second_input).imaginary, 0)
63+
second_input = ComplexNumber(3, 4)
64+
self.assertEqual(first_input.mul(second_input).real, -5)
65+
self.assertEqual(first_input.mul(second_input).imaginary, 10)
7566

7667
def test_divide_purely_real_numbers(self):
7768
input_number = ComplexNumber(1.0, 0.0)
7869
expected = ComplexNumber(0.5, 0.0)
7970
divider = ComplexNumber(2.0, 0.0)
80-
self.assertEqual(expected.real, input_number.div(divider).real)
81-
self.assertEqual(expected.imaginary,
82-
input_number.div(divider).imaginary)
71+
self.assertEqual(input_number.div(divider).real, expected.real)
72+
self.assertEqual(input_number.div(divider).imaginary,
73+
expected.imaginary)
8374

8475
def test_divide_purely_imaginary_numbers(self):
8576
input_number = ComplexNumber(0, 1)
8677
expected = ComplexNumber(0.5, 0)
8778
divider = ComplexNumber(0, 2)
88-
self.assertEqual(expected.real, input_number.div(divider).real)
89-
self.assertEqual(expected.imaginary,
90-
input_number.div(divider).imaginary)
79+
self.assertEqual(input_number.div(divider).real, expected.real)
80+
self.assertEqual(input_number.div(divider).imaginary,
81+
expected.imaginary)
9182

9283
def test_divide_numbers_with_real_and_imaginary_part(self):
9384
input_number = ComplexNumber(1, 2)
9485
expected = ComplexNumber(0.44, 0.08)
9586
divider = ComplexNumber(3, 4)
96-
self.assertEqual(expected.real, input_number.div(divider).real)
97-
self.assertEqual(expected.imaginary,
98-
input_number.div(divider).imaginary)
87+
self.assertEqual(input_number.div(divider).real, expected.real)
88+
self.assertEqual(input_number.div(divider).imaginary,
89+
expected.imaginary)
9990

10091
def test_absolute_value_of_a_positive_purely_real_number(self):
10192
self.assertEqual(ComplexNumber(5, 0).abs(), 5)
10293

10394
def test_absolute_value_of_a_negative_purely_real_number(self):
10495
self.assertEqual(ComplexNumber(-5, 0).abs(), 5)
10596

106-
def test_absolute_value_of_imaginary_number_negative_imaginary_part(self):
107-
self.assertEqual(ComplexNumber(0, -5).abs(), 5)
108-
10997
def test_absolute_value_of_imaginary_number_positive_imaginary_part(self):
11098
self.assertEqual(ComplexNumber(0, 5).abs(), 5)
11199

100+
def test_absolute_value_of_imaginary_number_negative_imaginary_part(self):
101+
self.assertEqual(ComplexNumber(0, -5).abs(), 5)
102+
112103
def test_absolute_value_of_a_number_with_real_and_imaginary_part(self):
113104
self.assertEqual(ComplexNumber(3, 4).abs(), 5)
114105

115106
def test_conjugate_a_purely_real_number(self):
116107
input_number = ComplexNumber(5, 0)
117108
expected = ComplexNumber(5, 0)
118-
self.assertEqual(expected.real, input_number.conjugate().real)
119-
self.assertEqual(expected.imaginary,
120-
input_number.conjugate().imaginary)
109+
self.assertEqual(input_number.conjugate().real, expected.real)
110+
self.assertEqual(input_number.conjugate().imaginary,
111+
expected.imaginary)
121112

122113
def test_conjugate_a_purely_imaginary_number(self):
123114
input_number = ComplexNumber(0, 5)
124115
expected = ComplexNumber(0, -5)
125-
self.assertEqual(expected.real, input_number.conjugate().real)
126-
self.assertEqual(expected.imaginary,
127-
input_number.conjugate().imaginary)
116+
self.assertEqual(input_number.conjugate().real, expected.real)
117+
self.assertEqual(input_number.conjugate().imaginary,
118+
expected.imaginary)
128119

129-
def conjugate_a_number_with_real_and_imaginary_part(self):
120+
def test_conjugate_a_number_with_real_and_imaginary_part(self):
130121
input_number = ComplexNumber(1, 1)
131122
expected = ComplexNumber(1, -1)
132-
self.assertEqual(expected.real, input_number.conjugate().real)
133-
self.assertEqual(expected.imaginary,
134-
input_number.conjugate().imaginary)
123+
self.assertEqual(input_number.conjugate().real, expected.real)
124+
self.assertEqual(input_number.conjugate().imaginary,
125+
expected.imaginary)
126+
127+
def test_real_part_of_a_purely_real_number(self):
128+
input_number = ComplexNumber(1, 0)
129+
self.assertEqual(input_number.real, 1)
130+
131+
def test_real_part_of_a_purely_imaginary_number(self):
132+
input_number = ComplexNumber(0, 1)
133+
self.assertEqual(input_number.real, 0)
134+
135+
def test_real_part_of_a_number_with_real_and_imaginary_part(self):
136+
input_number = ComplexNumber(1, 2)
137+
self.assertEqual(input_number.real, 1)
138+
139+
def test_imaginary_part_of_a_purely_real_number(self):
140+
input_number = ComplexNumber(1, 0)
141+
self.assertEqual(input_number.imaginary, 0)
142+
143+
def test_imaginary_part_of_a_purely_imaginary_number(self):
144+
input_number = ComplexNumber(0, 1)
145+
self.assertEqual(input_number.imaginary, 1)
146+
147+
def test_imaginary_part_of_a_number_with_real_and_imaginary_part(self):
148+
input_number = ComplexNumber(1, 2)
149+
self.assertEqual(input_number.imaginary, 2)
135150

136151
def test_eulers_identity_formula(self):
137152
input_number = ComplexNumber(0, math.pi)
138153
expected = ComplexNumber(-1, 0)
139-
self.assertEqual(expected.real, input_number.exp().real)
140-
self.assertEqual(expected.imaginary, input_number.exp().imaginary)
154+
self.assertEqual(input_number.exp().real, expected.real)
155+
self.assertEqual(input_number.exp().imaginary, expected.imaginary)
141156

142157
def test_exponential_of_0(self):
143158
input_number = ComplexNumber(0, 0)
144159
expected = ComplexNumber(1, 0)
145-
self.assertEqual(expected.real, input_number.exp().real)
146-
self.assertEqual(expected.imaginary, input_number.exp().imaginary)
160+
self.assertEqual(input_number.exp().real, expected.real)
161+
self.assertEqual(input_number.exp().imaginary, expected.imaginary)
147162

148163
def test_exponential_of_a_purely_real_number(self):
149164
input_number = ComplexNumber(1, 0)
150165
expected = ComplexNumber(math.e, 0)
151-
self.assertEqual(expected.real, input_number.exp().real)
152-
self.assertEqual(expected.imaginary, input_number.exp().imaginary)
166+
self.assertEqual(input_number.exp().real, expected.real)
167+
self.assertEqual(input_number.exp().imaginary, expected.imaginary)
153168

154169

155170
if __name__ == '__main__':

0 commit comments

Comments
 (0)