Exemplo n.º 1
0
 def test_equality(self):
     real = 1
     imaginary = 2
     for precision in [10**-2, 10**-5, 10**-10]:
         input_number = ComplexNumber(real, imaginary, precision=precision)
         for imaginary_offset in [0, 1, -1]:
             for real_offset in [0, 1, -1]:
                 if imaginary_offset == 0 and real_offset == 0:
                     continue
                 expected_in = ComplexNumber(
                     real + (0.9 * precision * real_offset),
                     imaginary + (0.9 * precision * imaginary_offset),
                     precision=precision)
                 expected_out = ComplexNumber(
                     real + (1.1 * precision * real_offset),
                     imaginary + (1.1 * precision * imaginary_offset),
                     precision=precision)
                 self.assertEqual(input_number, expected_in)
                 self.assertNotEqual(input_number, expected_out)
Exemplo n.º 2
0
 def test_divide_purely_real_numbers(self):
     input_number = ComplexNumber(1.0, 0.0)
     expected = ComplexNumber(0.5, 0.0)
     divider = ComplexNumber(2.0, 0.0)
     self.assertEqual(expected.real, input_number.div(divider).real)
     self.assertEqual(expected.imaginary,
                      input_number.div(divider).imaginary)
Exemplo n.º 3
0
 def test_divide_numbers_with_real_and_imaginary_part(self):
     input_number = ComplexNumber(1, 2)
     expected = ComplexNumber(0.44, 0.08)
     divider = ComplexNumber(3, 4)
     self.assertEqual(input_number.div(divider).real, expected.real)
     self.assertEqual(
         input_number.div(divider).imaginary, expected.imaginary)
Exemplo n.º 4
0
 def test_divide_purely_imaginary_numbers(self):
     input_number = ComplexNumber(0, 1)
     expected = ComplexNumber(0.5, 0)
     divider = ComplexNumber(0, 2)
     self.assertEqual(input_number.div(divider).real, expected.real)
     self.assertEqual(
         input_number.div(divider).imaginary, expected.imaginary)
Exemplo n.º 5
0
 def test_absolute_value_of_a_positive_purely_real_number(self):
     self.assertEqual(abs(ComplexNumber(5, 0)), 5)
Exemplo n.º 6
0
 def test_divide_purely_imaginary_numbers(self):
     self.assertAlmostEqual(
         ComplexNumber(0, 1) / ComplexNumber(0, 2), ComplexNumber(0.5, 0))
Exemplo n.º 7
0
 def test_multiply_numbers_with_real_and_imaginary_part(self):
     self.assertEqual(
         ComplexNumber(1, 2) * ComplexNumber(3, 4), ComplexNumber(-5, 10))
Exemplo n.º 8
0
 def test_multiply_purely_real_numbers(self):
     self.assertEqual(
         ComplexNumber(1, 0) * ComplexNumber(2, 0), ComplexNumber(2, 0))
Exemplo n.º 9
0
 def test_subtract_purely_imaginary_numbers(self):
     self.assertEqual(
         ComplexNumber(0, 1) - ComplexNumber(0, 2), ComplexNumber(0, -1))
Exemplo n.º 10
0
 def test_add_numbers_with_real_and_imaginary_part(self):
     self.assertEqual(
         ComplexNumber(1, 2) + ComplexNumber(3, 4), ComplexNumber(4, 6))
Exemplo n.º 11
0
 def test_exponential_of_a_purely_real_number(self):
     self.assertAlmostEqual(
         ComplexNumber(1, 0).exp(), ComplexNumber(math.e, 0))
Exemplo n.º 12
0
 def test_exponential_of_0(self):
     self.assertAlmostEqual(ComplexNumber(0, 0).exp(), ComplexNumber(1, 0))
Exemplo n.º 13
0
 def test_euler_s_identity_formula(self):
     self.assertAlmostEqual(
         ComplexNumber(0, math.pi).exp(), ComplexNumber(-1, 0))
Exemplo n.º 14
0
 def test_conjugate_a_number_with_real_and_imaginary_part(self):
     self.assertEqual(ComplexNumber(1, 1).conjugate(), ComplexNumber(1, -1))
 def test_exponential_of_0(self):
     input_number = ComplexNumber(0, 0)
     expected = ComplexNumber(1, 0)
     self.assertEqual(input_number.exp().real, expected.real)
     self.assertEqual(input_number.exp().imaginary, expected.imaginary)
Exemplo n.º 16
0
 def test_conjugate_a_number_with_real_and_imaginary_part(self):
     input_number = ComplexNumber(1, 1)
     expected = ComplexNumber(1, -1)
     self.assertEqual(input_number.conjugate().real, expected.real)
     self.assertEqual(input_number.conjugate().imaginary,
                      expected.imaginary)
Exemplo n.º 17
0
 def test_exponential_of_a_purely_real_number(self):
     input_number = ComplexNumber(1, 0)
     expected = ComplexNumber(math.e, 0)
     actual = input_number.exp()
     self.assertAlmostEqual(actual.real, expected.real)
     self.assertAlmostEqual(actual.imaginary, expected.imaginary)
Exemplo n.º 18
0
 def test_real_part_of_a_purely_real_number(self):
     self.assertEqual(ComplexNumber(1, 0).real, 1)
Exemplo n.º 19
0
 def test_add_purely_imaginary_numbers(self):
     self.assertEqual(
         ComplexNumber(0, 1) + ComplexNumber(0, 2), ComplexNumber(0, 3))
Exemplo n.º 20
0
 def test_exponential_of_a_number_with_real_and_imaginary_part(self):
     self.assertAlmostEqual(
         ComplexNumber(math.log(2), math.pi).exp(), ComplexNumber(-2, 0))
Exemplo n.º 21
0
 def test_subtract_purely_real_numbers(self):
     self.assertEqual(
         ComplexNumber(1, 0) - ComplexNumber(2, 0), ComplexNumber(-1, 0))
Exemplo n.º 22
0
 def test_equality_of_complex_numbers(self):
     self.assertEqual(ComplexNumber(1, 2), ComplexNumber(1, 2))
Exemplo n.º 23
0
 def test_subtract_numbers_with_real_and_imaginary_part(self):
     self.assertEqual(
         ComplexNumber(1, 2) - ComplexNumber(3, 4), ComplexNumber(-2, -2))
Exemplo n.º 24
0
 def test_inequality_of_real_part(self):
     self.assertNotEqual(ComplexNumber(1, 2), ComplexNumber(2, 2))
Exemplo n.º 25
0
 def test_multiply_purely_imaginary_numbers(self):
     self.assertEqual(
         ComplexNumber(0, 1) * ComplexNumber(0, 2), ComplexNumber(-2, 0))
Exemplo n.º 26
0
 def test_inequality_of_imaginary_part(self):
     self.assertNotEqual(ComplexNumber(1, 2), ComplexNumber(1, 1))
Exemplo n.º 27
0
 def test_divide_purely_real_numbers(self):
     self.assertAlmostEqual(
         ComplexNumber(1, 0) / ComplexNumber(2, 0), ComplexNumber(0.5, 0))
Exemplo n.º 28
0
 def test_imaginary_part_of_a_purely_real_number(self):
     self.assertEqual(ComplexNumber(1, 0).imaginary, 0)
Exemplo n.º 29
0
 def test_divide_numbers_with_real_and_imaginary_part(self):
     self.assertAlmostEqual(
         ComplexNumber(1, 2) / ComplexNumber(3, 4),
         ComplexNumber(0.44, 0.08))
Exemplo n.º 30
0
 def test_imaginary_part_of_a_purely_imaginary_number(self):
     self.assertEqual(ComplexNumber(0, 1).imaginary, 1)
Exemplo n.º 31
0
 def test_conjugate_a_purely_imaginary_number(self):
     input_number = ComplexNumber(0, 5)
     expected = ComplexNumber(0, -5)
     self.assertEqual(input_number.conjugate().real, expected.real)
     self.assertEqual(input_number.conjugate().imaginary,
                      expected.imaginary)
Exemplo n.º 32
0
 def test_imaginary_part_of_a_number_with_real_and_imaginary_part(self):
     self.assertEqual(ComplexNumber(1, 2).imaginary, 2)
Exemplo n.º 33
0
 def test_eulers_identity_formula(self):
     input_number = ComplexNumber(0, math.pi)
     expected = ComplexNumber(-1, 0)
     actual = input_number.exp()
     self.assertAlmostEqual(actual.real, expected.real)
     self.assertAlmostEqual(actual.imaginary, expected.imaginary)
Exemplo n.º 34
0
 def test_imaginary_unit(self):
     self.assertEqual(
         ComplexNumber(0, 1) * ComplexNumber(0, 1), ComplexNumber(-1, 0))
Exemplo n.º 35
0
 def test_exponential_of_a_number_with_real_and_imaginary_part(self):
     input_number = ComplexNumber(math.log(2), math.pi)
     expected = ComplexNumber(-2, 0)
     actual = input_number.exp()
     self.assertAlmostEqual(actual.real, expected.real)
     self.assertAlmostEqual(actual.imaginary, expected.imaginary)
Exemplo n.º 36
0
 def test_add_purely_real_numbers(self):
     self.assertEqual(
         ComplexNumber(1, 0) + ComplexNumber(2, 0), ComplexNumber(3, 0))