Lines Matching refs:complex

13 # These tests ensure that complex math does the right thing
26 if isinstance(a, complex):
27 if isinstance(b, complex):
34 if isinstance(b, complex):
81 """Compute complex z=x*y, and check that z/x==y and z/y==x."""
96 simple_complex = [complex(x, y) for x in simple_real for y in simple_real]
101 # A naive complex division algorithm (such as in 2.0) is very prone to
103 self.check_div(complex(1e200, 1e200), 1+0j)
104 self.check_div(complex(1e-200, 1e-200), 1+0j)
108 self.check_div(complex(random(), random()),
109 complex(random(), random()))
111 self.assertAlmostEqual(complex.__truediv__(2+0j, 1+1j), 1-1j)
114 z = complex(0, 0) / complex(denom_real, denom_imag)
141 self.assertIs(complex.__eq__(1+1j, 1<<10000), False)
142 self.assertIs(complex.__lt__(1+1j, None), NotImplemented)
143 self.assertIs(complex.__eq__(1+1j, 1+1j), True)
144 self.assertIs(complex.__eq__(1+1j, 2+2j), False)
145 self.assertIs(complex.__ne__(1+1j, 1+1j), False)
146 self.assertIs(complex.__ne__(1+1j, 2+2j), True)
149 self.assertIs(complex.__eq__(f+0j, f), True)
150 self.assertIs(complex.__ne__(f+0j, f), False)
151 self.assertIs(complex.__eq__(complex(f, f), f), False)
152 self.assertIs(complex.__ne__(complex(f, f), f), True)
153 self.assertIs(complex.__lt__(1+1j, 2+2j), NotImplemented)
154 self.assertIs(complex.__le__(1+1j, 2+2j), NotImplemented)
155 self.assertIs(complex.__gt__(1+1j, 2+2j), NotImplemented)
156 self.assertIs(complex.__ge__(1+1j, 2+2j), NotImplemented)
170 z = complex(i, imag)
171 self.assertIs(complex.__eq__(z, i), is_equal(delta))
172 self.assertIs(complex.__ne__(z, i), not is_equal(delta))
184 # % is no longer supported on complex numbers
233 self.fail("should fail 0.0 to negative or complex power")
240 self.fail("should fail 0.0 to negative or complex power")
262 c = complex(real, imag)
276 complex(5.0, 12.0),
277 complex(5.0e100, 12.0e100),
278 complex(-4.0, INF),
279 complex(INF, 0.0),
294 complex_pow = value**complex(exponent)
302 self.assertTrue(complex(random() + 1e-6, random() + 1e-6))
303 self.assertTrue(not complex(0.0, 0.0))
306 self.assertClose(complex(5.3, 9.8).conjugate(), 5.3-9.8j)
312 self.assertEqual(complex(NS(1+10j)), 1+10j)
313 self.assertRaises(TypeError, complex, NS(None))
314 self.assertRaises(TypeError, complex, {})
315 self.assertRaises(TypeError, complex, NS(1.5))
316 self.assertRaises(TypeError, complex, NS(1))
318 self.assertAlmostEqual(complex("1+10j"), 1+10j)
319 self.assertAlmostEqual(complex(10), 10+0j)
320 self.assertAlmostEqual(complex(10.0), 10+0j)
321 self.assertAlmostEqual(complex(10), 10+0j)
322 self.assertAlmostEqual(complex(10+0j), 10+0j)
323 self.assertAlmostEqual(complex(1,10), 1+10j)
324 self.assertAlmostEqual(complex(1,10), 1+10j)
325 self.assertAlmostEqual(complex(1,10.0), 1+10j)
326 self.assertAlmostEqual(complex(1,10), 1+10j)
327 self.assertAlmostEqual(complex(1,10), 1+10j)
328 self.assertAlmostEqual(complex(1,10.0), 1+10j)
329 self.assertAlmostEqual(complex(1.0,10), 1+10j)
330 self.assertAlmostEqual(complex(1.0,10), 1+10j)
331 self.assertAlmostEqual(complex(1.0,10.0), 1+10j)
332 self.assertAlmostEqual(complex(3.14+0j), 3.14+0j)
333 self.assertAlmostEqual(complex(3.14), 3.14+0j)
334 self.assertAlmostEqual(complex(314), 314.0+0j)
335 self.assertAlmostEqual(complex(314), 314.0+0j)
336 self.assertAlmostEqual(complex(3.14+0j, 0j), 3.14+0j)
337 self.assertAlmostEqual(complex(3.14, 0.0), 3.14+0j)
338 self.assertAlmostEqual(complex(314, 0), 314.0+0j)
339 self.assertAlmostEqual(complex(314, 0), 314.0+0j)
340 self.assertAlmostEqual(complex(0j, 3.14j), -3.14+0j)
341 self.assertAlmostEqual(complex(0.0, 3.14j), -3.14+0j)
342 self.assertAlmostEqual(complex(0j, 3.14), 3.14j)
343 self.assertAlmostEqual(complex(0.0, 3.14), 3.14j)
344 self.assertAlmostEqual(complex("1"), 1+0j)
345 self.assertAlmostEqual(complex("1j"), 1j)
346 self.assertAlmostEqual(complex(), 0)
347 self.assertAlmostEqual(complex("-1"), -1)
348 self.assertAlmostEqual(complex("+1"), +1)
349 self.assertAlmostEqual(complex("(1+2j)"), 1+2j)
350 self.assertAlmostEqual(complex("(1.3+2.2j)"), 1.3+2.2j)
351 self.assertAlmostEqual(complex("3.14+1J"), 3.14+1j)
352 self.assertAlmostEqual(complex(" ( +3.14-6J )"), 3.14-6j)
353 self.assertAlmostEqual(complex(" ( +3.14-J )"), 3.14-1j)
354 self.assertAlmostEqual(complex(" ( +3.14+j )"), 3.14+1j)
355 self.assertAlmostEqual(complex("J"), 1j)
356 self.assertAlmostEqual(complex("( j )"), 1j)
357 self.assertAlmostEqual(complex("+J"), 1j)
358 self.assertAlmostEqual(complex("( -j)"), -1j)
359 self.assertAlmostEqual(complex('1e-500'), 0.0 + 0.0j)
360 self.assertAlmostEqual(complex('-1e-500j'), 0.0 - 0.0j)
361 self.assertAlmostEqual(complex('-1e-500+1e-500j'), -0.0 + 0.0j)
363 class complex2(complex): pass
364 self.assertAlmostEqual(complex(complex2(1+1j)), 1+1j)
365 self.assertAlmostEqual(complex(real=17, imag=23), 17+23j)
366 self.assertAlmostEqual(complex(real=17+23j), 17+23j)
367 self.assertAlmostEqual(complex(real=17+23j, imag=23), 17+46j)
368 self.assertAlmostEqual(complex(real=1+2j, imag=3+4j), -3+5j)
377 self.assertEqual(split_zeros(complex(1., 0.).imag), split_zeros(0.))
378 self.assertEqual(split_zeros(complex(1., -0.).imag), split_zeros(-0.))
379 self.assertEqual(split_zeros(complex(0., 1.).real), split_zeros(0.))
380 self.assertEqual(split_zeros(complex(-0., 1.).real), split_zeros(-0.))
383 self.assertTrue(complex(c) is c)
386 self.assertRaises(TypeError, complex, "1", "1")
387 self.assertRaises(TypeError, complex, 1, "1")
389 # SF bug 543840: complex(string) accepts strings with \0
391 self.assertRaises(ValueError, complex, '1+1j\0j')
396 self.assertRaises(ValueError, complex, "")
397 self.assertRaises(TypeError, complex, None)
398 self.assertRaisesRegex(TypeError, "not 'NoneType'", complex, None)
399 self.assertRaises(ValueError, complex, "\0")
400 self.assertRaises(ValueError, complex, "3\09")
401 self.assertRaises(TypeError, complex, "1", "2")
402 self.assertRaises(TypeError, complex, "1", 42)
403 self.assertRaises(TypeError, complex, 1, "2")
404 self.assertRaises(ValueError, complex, "1+")
405 self.assertRaises(ValueError, complex, "1+1j+1j")
406 self.assertRaises(ValueError, complex, "--")
407 self.assertRaises(ValueError, complex, "(1+2j")
408 self.assertRaises(ValueError, complex, "1+2j)")
409 self.assertRaises(ValueError, complex, "1+(2j)")
410 self.assertRaises(ValueError, complex, "(1+2j)123")
411 self.assertRaises(ValueError, complex, "x")
412 self.assertRaises(ValueError, complex, "1j+2")
413 self.assertRaises(ValueError, complex, "1e1ej")
414 self.assertRaises(ValueError, complex, "1e++1ej")
415 self.assertRaises(ValueError, complex, ")1+2j(")
419 complex, {1:2}, 1)
423 complex, 1, {1:2})
425 self.assertRaises(ValueError, complex, "1..1j")
426 self.assertRaises(ValueError, complex, "1.11.1j")
427 self.assertRaises(ValueError, complex, "1e1.1j")
429 # check that complex accepts long unicode strings
430 self.assertEqual(type(complex("1"*500)), complex)
432 self.assertEqual(complex('\N{EM SPACE}(\N{EN SPACE}1+1j ) '), 1+1j)
435 self.assertRaises(ValueError, complex, '\u3053\u3093\u306b\u3061\u306f')
444 self.assertRaises(EvilExc, complex, evilcomplex())
452 self.assertAlmostEqual(complex(float2(42.)), 42)
453 self.assertAlmostEqual(complex(real=float2(17.), imag=float2(23.)), 17+23j)
454 self.assertRaises(TypeError, complex, float2(None))
462 self.assertAlmostEqual(complex(MyIndex(42)), 42.0+0.0j)
463 self.assertAlmostEqual(complex(123, MyIndex(42)), 123.0+42.0j)
464 self.assertRaises(OverflowError, complex, MyIndex(2**2000))
465 self.assertRaises(OverflowError, complex, 123, MyIndex(2**2000))
471 self.assertRaises(TypeError, complex, MyInt())
472 self.assertRaises(TypeError, complex, 123, MyInt())
474 class complex0(complex):
475 """Test usage of __complex__() when inheriting from 'complex'"""
479 class complex1(complex):
482 return complex.__new__(self, 2*value)
486 class complex2(complex):
488 complex is returned"""
492 self.assertEqual(complex(complex0(1j)), 42j)
494 self.assertEqual(complex(complex1(1j)), 2j)
495 self.assertRaises(TypeError, complex, complex2(1j))
500 self.assertEqual(type(z.__complex__()), complex)
502 class complex_subclass(complex):
507 self.assertEqual(type(z.__complex__()), complex)
511 class complex2(complex):
516 z = complex(x, y)
523 z = complex(complex2(x, y))
524 self.assertIs(type(z), complex)
527 z = complex2(complex(x, y))
536 self.assertEqual(complex(lit), eval(lit))
537 self.assertEqual(complex(lit), complex(lit.replace('_', '')))
542 self.assertRaises(ValueError, complex, lit)
546 self.assertEqual(hash(x), hash(complex(x, 0)))
548 self.assertEqual(hash(x), hash(complex(x, 0.)))
551 nums = [complex(x/3., y/7.) for x in range(-9,9) for y in range(-9,9)]
565 test(complex(1., INF), "(1+infj)")
566 test(complex(1., -INF), "(1-infj)")
567 test(complex(INF, 1), "(inf+1j)")
568 test(complex(-INF, INF), "(-inf+infj)")
569 test(complex(NAN, 1), "(nan+1j)")
570 test(complex(1, NAN), "(1+nanj)")
571 test(complex(NAN, NAN), "(nan+nanj)")
573 test(complex(0, INF), "infj")
574 test(complex(0, -INF), "-infj")
575 test(complex(0, NAN), "nanj")
577 self.assertEqual(1-6j,complex(repr(1-6j)))
578 self.assertEqual(1+6j,complex(repr(1+6j)))
579 self.assertEqual(-6j,complex(repr(-6j)))
580 self.assertEqual(6j,complex(repr(6j)))
588 test(complex(0., 1.), "1j")
589 test(complex(-0., 1.), "(-0+1j)")
590 test(complex(0., -1.), "-1j")
591 test(complex(-0., -1.), "(-0-1j)")
593 test(complex(0., 0.), "0j")
594 test(complex(0., -0.), "-0j")
595 test(complex(-0., 0.), "(-0+0j)")
596 test(complex(-0., -0.), "(-0-0j)")
606 self.assertEqual(complex(0, INF).__getnewargs__(), (0.0, INF))
607 self.assertEqual(complex(INF, 0).__getnewargs__(), (INF, 0.0))
634 self.assertEqual(complex("1e500"), complex(INF, 0.0))
635 self.assertEqual(complex("-1e500j"), complex(0.0, -INF))
636 self.assertEqual(complex("-1e500+1.8e308j"), complex(-INF, INF))
643 # complex(repr(z)) should recover z exactly, even for complex
647 z = complex(x, y)
648 roundtrip = complex(repr(z))
655 infj, nanj = complex(0.0, inf), complex(0.0, nan)
658 z = complex(x, y)
684 z = complex(0.0, 3.0)
689 z = complex(-0.0, 2.0)
770 self.assertEqual(format(complex(NAN, NAN), 'f'), 'nan+nanj')
771 self.assertEqual(format(complex(1, NAN), 'f'), '1.000000+nanj')
772 self.assertEqual(format(complex(NAN, 1), 'f'), 'nan+1.000000j')
773 self.assertEqual(format(complex(NAN, -1), 'f'), 'nan-1.000000j')
774 self.assertEqual(format(complex(NAN, NAN), 'F'), 'NAN+NANj')
775 self.assertEqual(format(complex(1, NAN), 'F'), '1.000000+NANj')
776 self.assertEqual(format(complex(NAN, 1), 'F'), 'NAN+1.000000j')
777 self.assertEqual(format(complex(NAN, -1), 'F'), 'NAN-1.000000j')
778 self.assertEqual(format(complex(INF, INF), 'f'), 'inf+infj')
779 self.assertEqual(format(complex(1, INF), 'f'), '1.000000+infj')
780 self.assertEqual(format(complex(INF, 1), 'f'), 'inf+1.000000j')
781 self.assertEqual(format(complex(INF, -1), 'f'), 'inf-1.000000j')
782 self.assertEqual(format(complex(INF, INF), 'F'), 'INF+INFj')
783 self.assertEqual(format(complex(1, INF), 'F'), '1.000000+INFj')
784 self.assertEqual(format(complex(INF, 1), 'F'), 'INF+1.000000j')
785 self.assertEqual(format(complex(INF, -1), 'F'), 'INF-1.000000j')