
    /hhY                        S SK JrJrJr  S SKJr  S SKJrJr  S SKJ	r	  S SK
r
S SKrS SKrS SKJrJrJrJr  S SKrS SKr\" S5      r\" S5      rS V Vs/ s H  n S  H  n\" X5      PM     M     snn r\S	4\S
4\\4S
\4S	\4S\4S\4\* \4\* S
4\* S	4\* S4\* S4\* \* 4S\* 4S\* 4S	\* 4S
\* 4\\* 4\S4\S44 V Vs/ s H  u  p\" X5      PM     snn r\\* 4\S4\S4\S	4\S
4\\4\* \4S\4S\4S	\4S
\4\\44 V Vs/ s H  u  p\" X5      PM     snn r " S S\\
R4                  5      r " S S\	R8                  5      r\S:X  a  \
R<                  " 5         ggs  snn f s  snn f s  snn f )    )requires_IEEE_754cpython_onlyimport_helper)ComplexesAreIdenticalMixin)parse_testfile	test_fileN)phasepolarrectpiinfnan)               r   ffffff@r   ffffffc            
          \ rS rSrS V VVVs/ s H  n[	        [
        U5      PM     snnnn r\R                  S 5        \R                  S 5        S rS r	  SS jr
S	 rS
 rS rS rS r\S 5       rS rS r\S 5       rS rS r\S 5       rS rS rS rS rS r\S 5       r\S 5       r\S 5       r Sr!gs  snnnn f )
CMathTests5   )acosacoshasinasinhatanatanhcoscoshexploglog10sinsinhsqrttantanhc                 0    [         R                  " U S5      $ )Ny     @        cmathr   xs    8/opt/python-3.13.8/usr/lib/python3.13/test/test_cmath.py<lambda>CMathTests.<lambda><   s    UYYq*%=    c                 0    [         R                  " SU 5      $ )Ny      ,@      ;r'   r)   s    r+   r,   r-   =   s    UYYw%:r.   c                 *    [        [        SS9U l        g )Nzutf-8)encoding)openr   test_valuesselfs    r+   setUpCMathTests.setUp?   s    	G<r.   c                 8    U R                   R                  5         g N)r3   closer4   s    r+   tearDownCMathTests.tearDownB   s     r.   Nc                    [         R                  " U5      (       aE  [         R                  " U5      (       a  gU R                  U=(       d    SR                  U5      5        [         R                  " U5      (       a/  X:X  a  gU R                  U=(       d    SR                  X5      5        U(       d`  U(       dY  [         R
                  " SU5      [         R
                  " SU5      :w  a)  U R                  U=(       d    SR                  X5      5         [        X!-
  5      nU[        XC[        U5      -  5      ::  a  g U R                  U=(       d    SR                  X5      5        g! [         a     N6f = f)aS  Fail if the two floating-point numbers are not almost equal.

Determine whether floating-point values a and b are equal to within
a (small) rounding error.  The default values for rel_err and
abs_err are chosen to be suitable for platforms where a float is
represented by an IEEE 754 double.  They allow an error of between
9 and 19 ulps.
Nz{!r} should be nanz>finite result where infinity expected: expected {!r}, got {!r}      ?z,zero has wrong sign: expected {!r}, got {!r}z({!r} and {!r} are not sufficiently close)	mathisnanfailformatisinfcopysignabsmaxOverflowError)r5   abrel_errabs_errmsgabsolute_errors          r+   rAssertAlmostEqualCMathTests.rAssertAlmostEqualE   s"    ::a==zz!}}IIc;188;<::a==vIIc = 006q> }}R#t}}R';;		# 2 "%%+VA\3
	 XN WA.>!?? @		# J<CCAI	K  		s   E' '
E43E4c           	         SnSnU R                  [        R                  USSR                  [        R                  U5      S9  U R                  [        R                  USSR                  [        R                  U5      S9  g )NgiW
@g-DT!	@	   zcmath.pi is {}; should be {})placesrL   zcmath.e is {}; should be {})assertAlmostEqualr(   r   rB   e)r5   
e_expectedpi_expecteds      r+   test_constantsCMathTests.test_constantsw   sp    +
,uxxQ.55ehhL 	 	Nuww
1-44UWWjI 	 	Kr.   c                 h   U R                  [        R                  R                  [        R                  5        U R                  [        R                  R
                  S5        U R                  [        R                  R                  S5        U R                  [        R                  R
                  [        R                  5        U R                  [        R                  " [        R                  R                  5      5        U R                  [        R                  R
                  S5        U R                  [        R                  R                  S5        U R                  [        R                  " [        R                  R
                  5      5        U R                  [        R                  " S[        R                  R                  5      S5        U R                  [        R                  " S[        R                  R
                  5      S5        U R                  [        R                  " S[        R                  R                  5      S5        U R                  [        R                  " S[        R                  R
                  5      S5        U R                  [        [        R                  5      S5        U R                  [        [        R                  5      S5        U R                  [        [        R                  5      S5        U R                  [        [        R                  5      S5        g )Nr   r>   r   infjr   nanj)assertEqualr(   r   realr?   imagrZ   
assertTruer@   r   r[   rD   reprr4   s    r+   test_infinity_and_nan_constants*CMathTests.test_infinity_and_nan_constants   s   2-#.$((3

599>>23-#.

5::??34r599>>:B?r599>>:B?r5::??;R@r5::??;R@ 	eii%0ejj)62eii%0ejj)62r.   c           
      H  ^^^ SmSmSSSSS [        5       [        /n " S S5      n " S	 S
[        5      m " U4S jS5      n " S S[         5      n " S S5      n " S S5      n " UU4S jS5      n " U4S jS5      nU R                   GH  n	U R	                  U	" U" T5      5      U	" T5      5        U R	                  U	" U" 5       5      U	" T5      5        U R	                  U	" U" 5       5      U	" T5      5        U R	                  U	" U" 5       5      U	" [        U" 5       5      5      5        U R                  [        X" 5       5        U R                  [        X" 5       5        U H  n
U R                  [        X" U
5      5        M!     U R                  TX" 5       5        GM     g )Nyz@7Ă??g]ֆznot complex             @c                        \ rS rSrS rS rSrg).CMathTests.test_user_object.<locals>.MyComplex   c                     Xl         g r9   value)r5   rl   s     r+   __init__7CMathTests.test_user_object.<locals>.MyComplex.__init__   s    "
r.   c                     U R                   $ r9   rk   r4   s    r+   __complex__:CMathTests.test_user_object.<locals>.MyComplex.__complex__   s    zz!r.   rk   N)__name__
__module____qualname____firstlineno__rm   rp   __static_attributes__ r.   r+   	MyComplexrh      s    #"r.   rx   c                       \ rS rSrSrg)2CMathTests.test_user_object.<locals>.SomeException   rw   Nrr   rs   rt   ru   rv   rw   r.   r+   SomeExceptionrz          r.   r}   c                   "   > \ rS rSrU 4S jrSrg)7CMathTests.test_user_object.<locals>.MyComplexException   c                    > Ter9   rw   )r5   r}   s    r+   rp   CCMathTests.test_user_object.<locals>.MyComplexException.__complex__   s	    ##r.   rw   N)rr   rs   rt   ru   rp   rv   )r}   s   r+   MyComplexExceptionr      s    $ $r.   r   c                       \ rS rSrSrg);CMathTests.test_user_object.<locals>.NeitherComplexNorFloat   rw   Nr|   rw   r.   r+   NeitherComplexNorFloatr      r~   r.   r   c                        \ rS rSrS rS rSrg)*CMathTests.test_user_object.<locals>.Index   c                     gN   rw   r4   s    r+   __int__2CMathTests.test_user_object.<locals>.Index.__int__       ar.   c                     gr   rw   r4   s    r+   	__index__4CMathTests.test_user_object.<locals>.Index.__index__   s    r.   rw   N)rr   rs   rt   ru   r   r   rv   rw   r.   r+   Indexr      s    ')r.   r   c                       \ rS rSrS rSrg)*CMathTests.test_user_object.<locals>.MyInt   c                     gr   rw   r4   s    r+   r   2CMathTests.test_user_object.<locals>.MyInt.__int__   r   r.   rw   N)rr   rs   rt   ru   r   rv   rw   r.   r+   MyIntr      s    'r.   r   c                   .   > \ rS rSrU4S jrU 4S jrSrg)4CMathTests.test_user_object.<locals>.FloatAndComplex   c                    > T$ r9   rw   r5   flt_args    r+   	__float__>CMathTests.test_user_object.<locals>.FloatAndComplex.__float__       r.   c                    > T$ r9   rw   )r5   cx_args    r+   rp   @CMathTests.test_user_object.<locals>.FloatAndComplex.__complex__   s    r.   rw   N)rr   rs   rt   ru   r   rp   rv   )r   r   s   r+   FloatAndComplexr      s     r.   r   c                   "   > \ rS rSrU 4S jrSrg).CMathTests.test_user_object.<locals>.JustFloat   c                    > T$ r9   rw   r   s    r+   r   8CMathTests.test_user_object.<locals>.JustFloat.__float__   r   r.   rw   N)rr   rs   rt   ru   r   rv   )r   s   r+   	JustFloatr      s     r.   r   )objectNotImplemented	Exceptiontest_functionsr\   intassertRaises	TypeError)r5   non_complexesrx   r   r   r   r   r   r   fbad_complexr}   r   r   s              @@@r+   test_user_objectCMathTests.test_user_object   si    , '1b$>3	" 	"	I 		$ 	$
	V 		* 	*	( 	(
	 	
	 	 $$AQy011V9=Q011V9=Qy{^QwZ8QuwZ3uw<9 i,B,DEiEG4,!!)Q	+0FG  - mQ0B0DE! %r.   c           	          U R                    H8  nS H/  nU R                  U" U5      U" UR                  5       5      5        M1     M:     U R                    H"  nS H  nU R                  [        X5        M     M$     g )N)r   rf   )rH   long_string01j )r   r\   r   r   r   )r5   r   args      r+   test_input_typeCMathTests.test_input_type   si     $$A  33==?);<  %
 $$A:!!)Q4 ; %r.   c                    / SQnX Vs/ s H  o"* PM     sn-   / SQ-   nUS/-   U Vs/ s H  nSU-  PM
     sn-   nS/U-   nS/U-   U Vs/ s H  o"* PM     sn-   nUUUUUUUUUUUUUS.nUR                  5        Ht  u  p[        [        U5      n
[        [        U5      nU	 HI  nU" U5      nU R	                  U
" U5      UR
                  5        U R                  SUR                  5        MK     Mv     S Hn  nU He  n[        R                  " X5      nU R	                  [        R                  " X5      UR
                  5        U R                  SUR                  5        Mg     Mp     g s  snf s  snf s  snf )N)g{Gz?g?g?      ?g?gGz?)r   r>         r>   r   )r   r   r   r   r   r   r   r    r!   r"   r#   r$   r%   )r   rf   g      $@)	itemsgetattrr?   r(   rN   r]   r\   r^   r   )r5   r3   r*   unit_intervalpositivenonnegative	real_liner   fnvaluesfloat_fn
complex_fnvzbases                  r+   test_cmath_matches_math"CMathTests.test_cmath_matches_math   s   
 7 $;&?;ar;&?? "%{(C{!A{(CCdXo D8O8&<8ar8&<<	 #"   )..0JBtR(H +JqM''QVV<  QVV,  1 #DIIa&''(9166B  QVV,  #E '@ )D '=s   E)E.E3c                 \   S1nS n[         R                  S:X  aA  [        R                  " 5       S   n [        [	        [
        UR                  S5      5      5      nS nS n[        [        5       GH  u  pgppn[        X5      n[        X5      nUb  US:  a  Xa;   a  M/  US:X  a  UnOUS	:X  a  UnO[        [        U5      nS
U;   d  SU;   a*   U" U5      nU R                  SR                  XgX5      5        SU;   a*   U" U5      nU R                  SR                  XgX5      5        U" U5      nSU;   aR  [        [!        UR"                  5      UR$                  5      n[        [!        UR"                  5      UR$                  5      nSU;   aR  [        UR"                  [!        UR$                  5      5      n[        UR"                  [!        UR$                  5      5      nUS;   a  SnOSnSR                  XgXUR"                  UR$                  UR"                  UR$                  5      nU R'                  UR"                  UR"                  UUS9  U R'                  UR$                  UR$                  US9  GM     g ! [         a     GN+f = f! [         a     GM(  f = f! [         a     GM:  f = f)Ntan0064darwinr   .c                 X    [         R                  " U R                  U R                  5      $ )zUWrapped version of rect that accepts a complex number instead of
two float arguments.)r(   r   r]   r^   r   s    r+   rect_complex5CMathTests.test_specific_values.<locals>.rect_complex%  s     ::affaff--r.   c                 $    [        [        U 5      6 $ )zMWrapped version of polar that returns a complex number instead of
two floats.)complexr
   r   s    r+   polar_complex6CMathTests.test_specific_values.<locals>.polar_complex*  s     E!H%%r.   )
   re   r   r
   zdivide-by-zeroinvalidz9ValueError not raised in test {}: {}(complex({!r}, {!r}))overflowz<OverflowError not raised in test {}: {}(complex({!r}, {!r}))zignore-real-signzignore-imag-sign)r   r    V瞯<
       z{}: {}(complex({!r}, {!r}))
Expected: complex({!r}, {!r})
Received: complex({!r}, {!r})
Received value insufficiently close to expected value.)rK   rL   )rL   )sysplatformmac_vertuplemapr   split
ValueErrorr   r   r   r   r(   rA   rB   rG   rE   r]   r^   rN   )r5   SKIP_ON_TIGERosx_versionversion_txtr   r   idr   araiereiflagsr   expectedfunctionactualreal_abs_errerror_messages                      r+   test_specific_valuesCMathTests.test_specific_values  s    #<<8#"**,Q/K#C[->->s-C$DE	.
	&
 .<I-F)BBBE"/CrH &;+@&V|'w("5"-5(I,>P%c]F II 88>rr8NP U"P%c]F II 88>rr8NP c]F!U* V[[!16;;?"3x}}#5x}}E!U* c&++.>?"8==#hmm2DE %%$%I &]]HMM[[&++/  ##HMM6;;0<,9 $ ; ##HMM6;;,9 $ ;y .G  > "  % s5   (I9 J
>J9
JJ

JJ
J+*J+c                   ^ ^ UU 4S jnU" SS5        U" SS5        U" SS[         45        U" SS[         S	-  45        U" S
S[         * S	-  45        [        S5      nU" [        US5      US45        U" [        U* S5      U[         45        U" [        SU5      U[         S	-  45        U" [        SU* 5      U[         * S	-  45        U" [        X35      U[         S-  45        U" [        X3* 5      U[         * S-  45        U" [        U* U5      US[         -  S-  45        U" [        U* U* 5      US[         -  S-  45        [        S5      nU" [        US5      XD45        U" [        SU5      XD45        U" [        XD5      XD45        U" [        X45      X445        U" [        U* U5      X445        U" [        XC5      X445        U" [        XC* 5      X445        g )Nc                 `   > T" U 5      n[        X5       H  u  p4TR                  X45        M     g r9   )ziprN   )r   r   gotrT   gfuncr5   s        r+   check%CMathTests.check_polar.<locals>.checko  s+    s)CH*''- +r.   r   )r   r   rd   )r>   r   r>                 ?r   y             g      @r   r      re      r   )r   floatr   )r5   r  r  r   r   s   ``   r+   check_polarCMathTests.check_polarn  s   	. 	aab2r(b2rAv,cBa=!Elgc1oRy)gsdAb	*gaoR!V}-ga#rcAg/gc#rAv/gc4 3a.1gsdC 3B
"34gsdSD!Cb1#56Elgc1oz*gaoz*gc#,gc#,gsdC 3*-gc#,gc4 3*-r.   c                 .    U R                  [        5        g r9   )r  r
   r4   s    r+   
test_polarCMathTests.test_polar  s    r.   c                 `   ^ [         R                  " S5      mU4S jnU R                  U5        g )N	_testcapic                    > TR                  S5         [        U 5      TR                  S5        $ ! TR                  S5        f = f)N   r   )	set_errnor
   )r   r  s    r+   polar_with_errno_set9CMathTests.test_polar_errno.<locals>.polar_with_errno_set  s:    #'Qx##A&	##A&s	   
0 A)r   import_moduler  )r5   r  r  s     @r+   test_polar_errnoCMathTests.test_polar_errno  s+     "//<		' 	-.r.   c                 
   U R                  [        S5      S5        U R                  [        S5      S5        U R                  [        S5      [        5        U R                  [        S5      [        5        U R                  [        S5      [        * 5        U R                  [        S5      [        S-  5        U R                  [        S	5      [        * S-  5        U R                  [        [	        SS5      5      S5        U R                  [        [	        SS
5      5      S
5        U R                  [        [	        S
S5      5      [        5        U R                  [        [	        S
S
5      5      [        * 5        U R                  [        [	        [
        * S
5      5      [        * 5        U R                  [        [	        [
        * S5      5      [        * 5        U R                  [        [	        [
        * [
        * 5      5      S[        -  5        U R                  [        [	        S[
        * 5      5      [        * S-  5        U R                  [        [	        S
[
        * 5      5      [        * S-  5        U R                  [        [	        S[
        * 5      5      [        * S-  5        U R                  [        [	        S[
        * 5      5      [        * S-  5        U R                  [        [	        [
        [
        * 5      5      [        * S-  5        U R                  [        [	        [
        S5      5      S
5        U R                  [        [	        [
        S
5      5      S
5        U R                  [        [	        [
        S5      5      S5        U R                  [        [	        [
        S5      5      S5        U R                  [        [	        [
        [
        5      5      [        S-  5        U R                  [        [	        S[
        5      5      [        S-  5        U R                  [        [	        S[
        5      5      [        S-  5        U R                  [        [	        S
[
        5      5      [        S-  5        U R                  [        [	        S[
        5      5      [        S-  5        U R                  [        [	        [
        * [
        5      5      S[        -  5        U R                  [        [	        [
        * S5      5      [        5        U R                  [        [	        [
        * S5      5      [        5        [         H1  nU R                  [        R                  " [        U5      5      5        M3     g )Nr   r   r>   r   y      Yny      Ynr  r   y             r   r   g      r   r  g      ?)
rS   r	   r   r\   r   INFcomplex_nansr_   r?   r@   r5   r   s     r+   
test_phaseCMathTests.test_phase  s   uQx,uRy"-uSz2.u[126u[1B37uRy"Q$/uSzB3q51 	wsC0137wsD12D9wtS12B7wtT23bS9 	uWcT4%89B3?uWcT4%89B3?uWcTC4%8958DuWTC4%89B3q5AuWTC4%89B3q5AuWS3$%782#a%@uWS3$%782#a%@uWS3$%782#a%@wsD12D9wsD12D9wsC0137wsC0137uWS#%67A>uWS#%67A>uWS#%67A>uWT3%78"Q$?uWT3%78"Q$?uWcT3%78$r'BuWcT3%78"=uWcT3%78"= AOODJJuQx01 r.   c           
      x   [          H  nU R                  [        U5      S5        M      [         H"  nU R                  [        U5      [        5        M$     U R                  [        [        [        [        * 5      5      [        5        U R                  [        R                  " [        [        [        S5      5      5      5        U R                  [        R                  " [        [        [        S5      5      5      5        U R                  [        R                  " [        [        [        S5      5      5      5        U R                  [        R                  " [        [        [        S5      5      5      5        U R                  [        [        [        [        5      5      [        5        U R                  [        [        [        * [        5      5      [        5        U R                  [        R                  " [        [        S[        5      5      5      5        U R                  [        R                  " [        [        S[        5      5      5      5        U R                  [        R                  " [        [        S[        5      5      5      5        U R                  [        R                  " [        [        S[        5      5      5      5        U R                  [        [        [        [        5      5      [        5        U R                  [        R                  " [        [        [        [        5      5      5      5        g )Nr   r   r   r   )
complex_zerosr\   rE   complex_infinitiesr  r   NANr_   r?   r@   r  s     r+   test_absCMathTests.test_abs  s   ASVS)  $ASVS) $ 	WS3$/0#6

3wsD'9#:;<

3wsD'9#:;<

3wsC'8#9:;

3wsC'8#9:;WS#./5WcT3/0#6

3wtS'9#:;<

3wtS'9#:;<

3wsC'8#9:;

3wsC'8#9:;WS#./5

3wsC'8#9:;r.   c                 N    U R                  [        [        [        SS5      5        g )NgU)r   rG   rE   r   r4   s    r+   test_abs_overflowsCMathTests.test_abs_overflows  s     	-ggw.GHr.   c                     Sn[        UR                  US   -
  5      U:  d  [        UR                  US   -
  5      U:  a  U R                  X45        g g )NgHz>r   rd   )rE   r]   r^   rA   )r5   rH   rI   epss       r+   assertCEqualCMathTests.assertCEqual  sL    qvv!}#s166AaD='9C'?IIqf (@r.   c                 D   U R                  [        SS5      S5        U R                  [        SS5      S5        U R                  [        S[        * 5      S5        U R                  [        S[        S-  5      S5        U R                  [        S[        * S-  5      S5        g )	Nr   )r   r   rd   )r>   r   )r   r   r   )r   r>   )r   r   )r+  r   r   r4   s    r+   	test_rectCMathTests.test_rect  s|    $q!*f-$q!*g.$q2#,1$q"Q$-1$q2#a%.(3r.   c           	      4   [        S5      SSSS[        S5      [        S5      /nU Hn  nU He  n[        X#5      nU R                  [        R                  " U5      [
        R                  " U5      =(       a    [
        R                  " U5      5        Mg     Mp     g )Nz-infr   r   r   r   r   r   )r
  r   r\   r(   isfiniter?   )r5   	real_valsr*   yr   s        r+   test_isfiniteCMathTests.test_isfinite  sv    6]D$#uU|U5\;	AAM  !2"&--"2"Gt}}Q7GI  r.   c                 R   U R                  [        R                  " S5      5        U R                  [        R                  " S5      5        U R                  [        R                  " [        5      5        U R	                  [        R                  " [
        5      5        U R	                  [        R                  " [        [
        S5      5      5        U R	                  [        R                  " [        S[
        5      5      5        U R	                  [        R                  " [        [
        [
        5      5      5        U R	                  [        R                  " [        [
        [        5      5      5        U R	                  [        R                  " [        [        [
        5      5      5        g Nrd   r  r   )assertFalser(   r@   r  r_   r#  r   r4   s    r+   
test_isnanCMathTests.test_isnan      Q(R)S)*C()GCO45GAsO45GC$567GC$567GC$567r.   c                 R   U R                  [        R                  " S5      5        U R                  [        R                  " S5      5        U R                  [        R                  " [        5      5        U R	                  [        R                  " [
        5      5        U R	                  [        R                  " [        [
        S5      5      5        U R	                  [        R                  " [        S[
        5      5      5        U R	                  [        R                  " [        [
        [
        5      5      5        U R	                  [        R                  " [        [        [
        5      5      5        U R	                  [        R                  " [        [
        [        5      5      5        g r7  )r8  r(   rC   r#  r_   r  r   r4   s    r+   
test_isinfCMathTests.test_isinf   r;  r.   c                 j    [          H)  nU R                  [        R                  " U5      U5        M+     g r9   )r!  assertComplexesAreIdenticalr(   r%   r  s     r+   testTanhSignCMathTests.testTanhSign  $    A,,UZZ]A> r.   c                 j    [          H)  nU R                  [        R                  " U5      U5        M+     g r9   )r!  r@  r(   r   r  s     r+   testAtanSignCMathTests.testAtanSign  rC  r.   c                 j    [          H)  nU R                  [        R                  " U5      U5        M+     g r9   )r!  r@  r(   r   r  s     r+   testAtanhSignCMathTests.testAtanhSign  s$    A,,U[[^Q? r.   )r3   )r   r   N)"rr   rs   rt   ru   r   r(   r   appendr6   r;   rN   rW   ra   r   r   r   r   r   r  r  r   r  r  r$  r'  r+  r.  r4  r9  r=  rA  rE  rH  rv   ).0fnamer   r(   s   0000r+   r   r   5   s6   :# $ :#geU+ :# $N
 =>:;=! CI#0KdK3,DFL
5.-` T; T;l.8  	/ 	/'2R<2 I I
4I	8	8 ? ? ? ? @ @G$s   B<
r   c                   D    \ rS rSr\R
                  rS rS rS rS r	Sr
g)IsCloseTestsi  c                    U R                  [        5         U R                  SSSS9  S S S 5        U R                  [        5         U R                  SSSS9  S S S 5        U R                  [        5         U R                  SSSSS9  S S S 5        g ! , (       d  f       Nn= f! , (       d  f       NP= f! , (       d  f       g = f)Nr  rel_tolabs_tol)rQ  rS  )r   r   iscloser4   s    r+   test_reject_complex_tolerances+IsCloseTests.test_reject_complex_tolerances"  s    y)LLRL, * y)LLRL, * y)LLRRL8 *) *) *) *)s#   BB!4B2
B!
B/2
C c                 L    / SQnU R                  USS9  U R                  USS9  g )N))      ?      ?y    ?      ?)rX  y      ?    ?)y            ?y          ?)y      ?      y      ?g-q=rP  gvIh%<=)assertAllCloseassertAllNotClose)r5   complex_exampless     r+   test_complex_values IsCloseTests.test_complex_values,  s4     	,e</?r.   c                     / SQnU R                  USS9  U R                  USS9  U R                  SSSS9  U R                  SSSS9  g )	N))y        MbP?r   )MbP?r   )MbP?MbP?r   )yMbPMbP?r   )MbP?MbPr   )yMbPMbPr   g~jtX?rR  gMb@?ra  r`  gMb`?r_  )rY  rZ  assertIsCloseassertIsNotClose)r5   near_zero_exampless     r+   test_complex_near_zero#IsCloseTests.test_complex_near_zero7  s^      	.@17C<uElL%Hr.   c                 B   U R                  [        [        S-  5        U R                  [        S-  [        5        U R                  [        [        * 5        U R                  [        * [        5        U R                  S[        5        U R                  S[        S-  5        g )Nr  r   )rc  r  r4   s    r+   test_complex_special!IsCloseTests.test_complex_specialG  sr    c3r6*c"fc*cC4(sdC(a%aR(r.   rw   N)rr   rs   rt   ru   r(   rT  rU  r\  re  rh  rv   rw   r.   r+   rN  rN    s!    mmG9	@I )r.   rN  __main__)test.supportr   r   r   test.support.testcaser   test.test_mathr   r   	test_mathunittestr(   r?   r	   r
   r   r   r   r   r
  r  r#  r   r!  r"  r  TestCaser   rN  rr   main)r*   r3  s   00r+   <module>rr     s   G G < 4 "   ( (  
 ElEl(3I1[[I	c
	c
	c
	c
	c
	s	s
s
s
s
t
t
t	t	t	sd	sd	sd	d	d)1
  1
gam 1
  . 
sd	d	d	c
	c
	c

s	s	s	c
	c
	c
+
  +
$! +
 g@+X->-> g@T.)9)) .)b zMMO C J,s   E E&E,