
    /hh.                     ^   S SK r S SKrS SKJr  S SKJr  S SKJrJr  S SK	J	r	  S SK
JrJr  S SKr\" S5      r\" S5      r\R"                  R$                  rS	r " S
 S5      r " S S5      r " S S\5      r " S S5      r " S S\\ R4                  5      r\S:X  a  \ R:                  " 5         gg)    N)support)ComplexesAreIdenticalMixin)VALID_UNDERSCORE_LITERALSINVALID_UNDERSCORE_LITERALS)random)isnancopysigninfnan))      ?      ?                )r           )r   r   )      ?r   )   r   c                        \ rS rSrS rS rSrg)	WithIndex   c                     Xl         g Nvalueselfr   s     :/opt/python-3.13.8/usr/lib/python3.13/test/test_complex.py__init__WithIndex.__init__       
    c                     U R                   $ r   r   r   s    r   	__index__WithIndex.__index__       zzr   r   N)__name__
__module____qualname____firstlineno__r   r!   __static_attributes__ r   r   r   r          r   r   c                        \ rS rSrS rS rSrg)	WithFloat!   c                     Xl         g r   r   r   s     r   r   WithFloat.__init__"   r   r   c                     U R                   $ r   r   r    s    r   	__float__WithFloat.__float__$   r#   r   r   N)r$   r%   r&   r'   r   r1   r(   r)   r   r   r,   r,   !   r*   r   r,   c                       \ rS rSrSrg)ComplexSubclass'   r)   Nr$   r%   r&   r'   r(   r)   r   r   r4   r4   '   s    r   r4   c                        \ rS rSrS rS rSrg)WithComplex*   c                     Xl         g r   r   r   s     r   r   WithComplex.__init__+   r   r   c                     U R                   $ r   r   r    s    r   __complex__WithComplex.__complex__-   r#   r   r   N)r$   r%   r&   r'   r   r=   r(   r)   r   r   r8   r8   *   r*   r   r8   c                      \ rS rSrS rS+S jrS+S jrS rS rS r	S r
S	 rS
 rS rS rS rS rS rS rS rS rS rS rS rS rS rS r\R8                  S 5       rS rS rS r S r!S r"S r#\R8                  S  5       r$S! r%S" r&S# r'\R8                  S$ 5       r(\R8                  S% 5       r)\R8                  S& 5       r*\R8                  S' 5       r+S( r,S)r-g*),ComplexTest0   c                    [        U[        5      (       a  [        U[        5      (       ai  [        R                  R	                  XR
                  UR
                  5        [        R                  R	                  XR                  UR                  5        g [        R                  R	                  XR
                  U5        [        R                  R	                  XR                  S5        g [        U[        5      (       aV  [        R                  R	                  XUR
                  5        [        R                  R	                  U SUR                  5        g [        R                  R	                  XU5        g )Nr   )
isinstancecomplexunittestTestCaseassertAlmostEqualrealimagr   abs      r   rG   ComplexTest.assertAlmostEqual2   s    a!!!W%%!!33D&&!&&I!!33D&&!&&I!!33D&&!D!!33D&&"E!W%%!!33DQVVD!!33D"affE!!33DQ?r   c                     [        U5      [        U5      :  a  X!p!US:X  a  [        U5      U:  $ US:X  a  [        U5      U:  $ U R                  [        X-
  U-  5      U:  5        g)z+Return true iff floats x and y "are close".r   N)abs
assertTruer   xyepss       r   assertCloseAbsComplexTest.assertCloseAbsA   s]     q6CF?q6q6C<6q6C<QS!Gs*+r   c                     U R                  UR                  UR                  U5        U R                  UR                  UR                  U5        g)z.Return true iff complexes x and y "are close".N)rU   rH   rI   rQ   s       r   assertCloseComplexTest.assertCloseM   s6    AFFAFFC0AFFAFFC0r   c                    X-  nUS:w  a7  X1-  nU R                  XB5        UR                  U5      nU R                  XB5        US:w  a8  X2-  nU R                  XA5        UR                  U5      nU R                  XA5        gg)z8Compute complex z=x*y, and check that z/x==y and z/y==x.r   N)rX   __truediv__)r   rR   rS   zqs        r   	check_divComplexTest.check_divR   s~    E6AQ"a AQ"6AQ"a AQ"	 r   c           	         [        SS5       Vs/ s H  n[        U5      PM     nnU VVs/ s H  o2  H  n[        X45      PM     M     nnnU H  nU H  nU R                  X45        M     M     U R                  [        SS5      S5        U R                  [        SS5      S5        [        S5       HI  nU R                  [        [	        5       [	        5       5      [        [	        5       [	        5       5      5        MK     U R                  [        R                  SS5      S	5        U R                  [        [        R                  S
S 5        U R                  [        [        R                  S S
5        S[        4[        S4[        [        44 He  u  pg[        SS5      [        Xg5      -  nU R                  [        UR                  5      5        U R                  [        UR                  5      5        Mg     g s  snf s  snnf )N   gZbti      ?        N~hd          @        r   y      ?                    ?r   )rangefloatrD   r^   r   rG   r[   assertRaises	TypeErroroperatortruedivNANrP   r   rH   rI   )	r   isimple_realrR   rS   simple_complex
denom_real
denom_imagr\   s	            r   test_truedivComplexTest.test_truediv`   s|   ).r16AuQx61<RAk'!-k-RA#q$ $   	wue,d3wvv.5 sANN768VX6"68VX68  	w224>E)X%5%5r4@)X%5%5tR@()3x#qC:&F"J1
 ??AOOE!&&M*OOE!&&M* 'G) 7Rs
   G6G;c                     [          H'  u  pU R                  [        5         X-    S S S 5        M)     g ! , (       d  f       M;  = fr   )ZERO_DIVISIONrj   ZeroDivisionErrorrJ   s      r   test_truediv_zero_division&ComplexTest.test_truediv_zero_divisionz   s1    !DA""#45 65 "55	   3
A	c                    U R                  [        5         SS-    S S S 5        U R                  [        5         SS-    S S S 5        U R                  [        5         SS-    S S S 5        U R                  [        5         SS-    S S S 5        U R                  [        5         SS-    S S S 5        g ! , (       d  f       N= f! , (       d  f       N= f! , (       d  f       Nw= f! , (       d  f       Ne= f! , (       d  f       g = fNr   rc   r   r   rj   rk   r    s    r   test_floordivComplexTest.test_floordiv   s    y)t *y)cM *y)aK *y)DM *y)$K *) *))))))))):   B1CC?C$"C51
B?
C
C!$
C25
Dc                     [          H'  u  pU R                  [        5         X-    S S S 5        M)     g ! , (       d  f       M;  = fr   rw   rj   rk   rJ   s      r   test_floordiv_zero_division'ComplexTest.test_floordiv_zero_division   s0    !DA""9- .- "--r{   c           	         U R                  [        R                  SSS-  5      S5        U R                  [        R                  SS 5      [        5        U R                  [        R                  SS 5      [        5        U R                  [        R                  SS5      S5        U R                  [        R                  SS5      S5        U R                  [        R                  SS5      S5        U R                  [        R                  SS5      S5        [        SS5       H  nUS-  nU R                  [        R                  US	-   U5      S5        U R                  [        R                  US	-   U5      S5        U R                  [        R                  [        X"5      U5      S5        U R                  [        R                  [        X"5      U5      S5        M     U R                  [        R                  SS5      [        5        U R                  [        R                  SS5      [        5        U R                  [        R                  SS5      [        5        U R                  [        R                  SS5      [        5        U R                  [        [        R                  SS5        U R                  [        [        R                  SS5        U R                  [        [        R                  SS5        U R                  [        [        R                   SS5        U R                  [        R"                  " SS5      S5        U R                  [        R"                  " SS5      S5        U R                  [        R$                  " SS5      S5        U R                  [        R$                  " SS5      S5        U R                  [        R"                  " SS
5      S5        g )Nr   r   i'  FTy       @       @re   g      Y@r          @)assertIsrD   __eq____lt__NotImplemented__ne__rh   __le____gt____ge__rj   rk   rl   ltlegtgeeqne)r   ro   fs      r   test_richcompareComplexTest.test_richcompare   s   gnnT1e84e<gnnT40.AgnnT40.AgnnT40$7gnnT40%8gnnT40%8gnnT40$7q#AE	AMM'..2q148MM'..2q159MM'..:EBMM'..:DA  	gnnT40.AgnnT40.AgnnT40.AgnnT40.A)X[[$=)X[[$=)X[[$=)X[[$=hkk$-t4hkk$-u5hkk$-u5hkk$-t4hkk$,e4r   c           	         ^ ^ SU 4S jjn[        SS5       HJ  nSU-   nSU-  mU" SU-  [        SS5      U4S j5        U" SU-  [        SS5      S [        U5      5        ML     U" S	[        S
S5      S 5        g )Nc                    > U Hm  nX-   n[        XS5      nTR                  [         R                  Xe5      U" U5      5        TR                  [         R                  Xe5      U" U5      (       + 5        Mo     g r   )rD   r   r   r   )ndeltasis_equalrI   deltaro   r\   r   s          r   check6ComplexTest.test_richcompare_boundaries.<locals>.check   sW    IA$gnnQ2HUODgnnQ24GH	  r   r   
   4      e   c                    > U T-  S:H  $ )Nr   r)   )r   mults    r   <lambda>9ComplexTest.test_richcompare_boundaries.<locals>.<lambda>   s    9Jr   c                     g)NFr)   r   s    r   r   r      s    r   l          ir   c                     g)NTr)   r   s    r   r   r      s    Tr   )r   )rh   ri   )r   r   ro   powr   s   `   @r   test_richcompare_boundaries'ComplexTest.test_richcompare_boundaries   sv    	I q"Aq&C6D!s(E!SM+JK!s(E!SM+>aI	 
 	guT1~'9:r   c                    U R                  S[        S5      -   [        SS5      5        U R                  S[        S5      -   [        SS5      5        U R                  [        [
        R                  SSS-  5        U R                  [        [
        R                  SS 5        U R                  [        [
        R                  S S5        g Nrg   r   r     )assertEqualintrD   rj   OverflowErrorrl   addrk   r    s    r   test_addComplexTest.test_add   s    c"gwr1~6c"gwr1~6-r2t8D)X\\2t<)X\\4<r   c                    U R                  S[        S5      -
  [        SS5      5        U R                  S[        S5      -
  [        SS5      5        U R                  [        [
        R                  SSS-  5        U R                  [        [
        R                  SS 5        U R                  [        [
        R                  S S5        g r   )r   r   rD   rj   r   rl   subrk   r    s    r   test_subComplexTest.test_sub   s    c"gwr1~6c"gwq!}5-r2t8D)X\\2t<)X\\4<r   c                    U R                  S[        S5      -  [        SS5      5        U R                  S[        S5      -  [        SS5      5        U R                  [        [
        R                  SSS-  5        U R                  [        [
        R                  SS 5        U R                  [        [
        R                  S S5        g )Nrg      r   r   r   r   )r   r   rD   rj   r   rl   mulrk   r    s    r   test_mulComplexTest.test_mul   s    c"gwq"~6c"gwq"~6-r2t8D)X\\2t<)X\\4<r   c                    U R                  [        5         SS-    S S S 5        U R                  [        5         SS-    S S S 5        U R                  [        5         SS-    S S S 5        U R                  [        5         SS-    S S S 5        U R                  [        5         SS-    S S S 5        g ! , (       d  f       N= f! , (       d  f       N= f! , (       d  f       Nw= f! , (       d  f       Ne= f! , (       d  f       g = fr}   r~   r    s    r   test_modComplexTest.test_mod   s    y)dO *y)SL *y)QJ *y)4L *y)J *) *)))))))))r   c                     [          H'  u  pU R                  [        5         X-    S S S 5        M)     g ! , (       d  f       M;  = fr   r   rJ   s      r   test_mod_zero_division"ComplexTest.test_mod_zero_division   s0    !DA""9- .- "--r{   c                    U R                  [        [        SS5        U R                  [        [        SS5        U R                  [        [        SS5        U R                  [        [        SS5        U R                  [        [        SS5        g r}   )rj   rk   divmodr    s    r   test_divmodComplexTest.test_divmod   sf    )VT48)VT37)VT15)VS$7)VQ5r   c                 X    [          H   u  pU R                  [        [        X5        M"     g r   )rw   rj   rk   r   rJ   s      r   test_divmod_zero_division%ComplexTest.test_divmod_zero_division   s     !DAi6 "r   c                 r   U R                  [        SS5      S5        U R                  [        SS5      S5        U R                  [        SS5      S5        U R                  [        SS5      S5        U R                  [        SS5      S5        U R                  [        [        SS	5        U R                  [        [        SS
5        U R                  [        S	S5      S5        U R                  [        S	S5      S5        U R                  [
        [        SSS5        U R                  [        [        SS5        U R                  [        [        S	S 5        U R                  [        [        S S	5        U R                  [        S	S5      S5        SnU R                  US-  S5        U R                  US-  S-   S5        U R                  SS5        U R                  SS5         SU-    U R                  S5         SS-    U R                  S5        U R                  US-  US-  5        U R                  US-  US-  5        U R                  US-  US-  5        U R                  SS5        SnU R                  [
        [        XS5        [        R                  [        R                  S-   [        R                  S-
  [        R                  * [        R                  * S-   [        R                  * S-   4nU H9  nU H0  nU R                  XES9   [        XE5      n Xd-     Xf-    S S S 5        M2     M;     Su  pxU R                  [        5         Xx-    S S S 5        g ! [         a     GNmf = f! [         a     GNgf = f! [         a     Njf = f! [         a     Nuf = f! , (       d  f       M  = f! , (       d  f       g = f)Nr   r   r   rf   r   y     @@        r   r   rg   iy                 r   yZbti      ?      ?y;f?;f?yp=
ף
@Q@rc   z,should fail 0.0 to negative or complex powery      @       i   iyffffff@ffffff@rH   rI   )y              "@y            )rG   r   r   rj   rx   
ValueErrorr   rk   failsysmaxsizesubTestrD   )	r   rK   rL   valuesrH   rI   crR   rS   s	            r   test_powComplexTest.test_pow   s>   s44s44T7+S1Qs+R,+S$;+S$>s2r{D1s2s|Q/*c4t<-hA)S"d3)S$3s2s|-STb!$ba(1%!$	F!G IIDE	F4L IIDE 	c18,dAI.c18,A&*c13 ++s{{1}ckk!m;;,QQ@D\\t\7+A	 87   }-D .-Y ! 		 ! 		8 )  )  87 .-sx   M 5M% NM6NN(
M"!M"%
M32M36
N	 NN	N
N	NN	N
N%(
N6c           	      2   [        SS5      [        SS5      [        S[        5      [        [        S5      /n/ SQnU H  nU H  nU R                  X4S9    X4-  n U[	        U5      -  n U[        U5      -  nU R                  [        U5      [        U5      5        U R                  [        U5      [        U5      5        S S S 5        M     M     g ! [         a    S	n Nf = f! [         a    S	n Nf = f! [         a    S	n Nf = f! , (       d  f       M  = f)
Ng      @g      (@g\nTg;%_nTg      r   )ira   r   r   r   r            )r   exponentoverflow)rD   INFr   r   ri   r   str)r   r   	exponentsr   r   int_pow	float_powcomplex_pows           r   %test_pow_with_small_integer_exponents1ComplexTest.test_pow_with_small_integer_exponents7  s    CGX&D#C	
 =	E%\\\A-"'//$)5?$:	1&+WX->&> $$S^S\B$$S%5s7|D BA & 
 ) -",- ) /$.	/ ) 1&01 BAsm   DCC#*C58ADC 	DC 	 D#C2	/D1C2	2D5D	DD	D
Dc                     [        S5       H4  nU R                  [        [        5       S-   [        5       S-   5      5        M6     U R                  [        SS5      (       + 5        U R                  S5        g )Nre   gư>r   rg   )rh   rP   rD   r   )r   ro   s     r   test_boolcontextComplexTest.test_boolcontextS  sQ    sAOOGFHtOVX_EF GC--.r   c                 X    U R                  [        SS5      R                  5       S5        g )Ng333333@g#@y333333@#)rX   rD   	conjugater    s    r   test_conjugateComplexTest.test_conjugateY  s"    c*446Ar   c           	        ^ ^ U 4S jnU" [        5       SS5        U" [        S5      SS5        U" [        S5      SS5        U" [        S5      SS5        U" [        S5      SS5        U" [        [        S5      5      SS5        U" [        [        S5      5      SS5        U" [        S	S5      S
S5        U" [        S	S5      S
S5        U" [        S	S5      S
S5        U" [        S
S5      S
S5        U" [        SS5      SS5        U" [        S
S5      S
S5        U" [        SS5      SS5        U" [        SS5      SS5        U" [        [        S5      S5      SS5        U" [        [        S5      S5      SS5        U" [        SS5      SS5        U" [        SS5      SS5        U" [        SS5      SS5        U" [        S[        S5      5      SS5        T R                  [        S5         [        S[        S5      5        S S S 5        U" [        SS5      SS5        U" [        SS5      SS5        U" [        SS5      SS5        U" [        SS5      SS5        U" [        SS5      SS5        U" [        SS9SS5        U" [        SS9SS5        U" [        SS9SS5        U" [        SS9SS5        U" [        SSS9SS5        U" [        SSS9SS5        S H0  nS H'  nU" [        X#5      X#5        U" [        X25      X25        M)     M2     [        SS5      nT R                  [        U5      U5        [        U5      nT R                  XT5        T R                  [        U5      [        5        AAT R                  [        S[         0 5        T R                  [        S[         S 5        T R                  [        S[         S	S0S5        T R                  [        S[         SS5        T R                  [        S[         SS	S05        T R                  [        S[         SS5        T R                  [        [         [        S5      5        T R                  [        [         [        S	5      5        T R                  [        [         [        S 5      5        T R                  [        [         [        S5      [        5       5        T R                  [        [         [        S5      [        5       5        T R                  [        [         [        S	5      [        5       5        T R                  [        [         [        S 5      [        5       5         " S S[        5      m " U4S  jS!5      nT R                  T[         U" 5       5        U" [        [        S5      5      SS5        U" [        [        S5      S5      SS5        U" [        S[        S5      5      SS5        T R                  [        [         [        S"5      5        T R                  [        [         [        S"5      S5        T R                  [        [         S[        S"5      5        T R                  [        [         [        S 5      5        T R                  [        [         [        S 5      S5        T R                  [        [         S[        S 5      5        U" [        [        S"5      5      S#S5        U" [        [        S"5      S5      S#S5        U" [        S[        S"5      5      SS#5        T R                  [        [         [        SS$-  5      5        T R                  [        [         [        SS$-  5      S5        T R                  [        [         S[        SS$-  5      5        T R                  [        [         [        S 5      5        T R                  [        [         [        S 5      S5        T R                  [        [         S[        S 5      5         " S% S&5      nT R                  [        [         U" 5       5        T R                  [        [         U" 5       S5        T R                  [        [         SU" 5       5         " S' S([         5      n " S) S*[         5      n	 " S+ S,[         5      n
U" [        U" S-5      5      SS#5        T R                  [        5         U" [        U	" S-5      5      SS.5        S S S 5        T R                  [        [         U
" S-5      5        g ! , (       d  f       GN= f! , (       d  f       NB= f)/Nc                    > TR                  [        U 5      [        5        TR                  U R                  U5        TR                  U R
                  U5        g r   r   typerD   assertFloatsAreIdenticalrH   rI   r\   rR   rS   r   s      r   r   +ComplexTest.test_constructor.<locals>.check]  =    MM$q'7+))!&&!4))!&&!4r   r   r   g      $@      @y      @        y      @      ?r   r   r   r   y              @r   z3second argument must be a number, not 'WithComplex'g      )rH   y      @      ?      ?)rI   r   )r         r          z7first argument must be a string or a number, not 'dict'z;first argument must be a string or a number, not 'NoneType'r   z*can't take second arg if first is a string1z,second argument must be a number, not 'dict'zsecond arg can't be a stringc                       \ rS rSrSrg)-ComplexTest.test_constructor.<locals>.EvilExci  r)   Nr6   r)   r   r   EvilExcr    s    r   r  c                   "   > \ rS rSrU 4S jrSrg)1ComplexTest.test_constructor.<locals>.evilcomplexi  c                    > Ter   r)   )r   r  s    r   r=   =ComplexTest.test_constructor.<locals>.evilcomplex.__complex__  s    r   r)   N)r$   r%   r&   r'   r=   r(   )r  s   r   evilcomplexr    s     r   r
  r9   g      E@i  c                       \ rS rSrS rSrg)+ComplexTest.test_constructor.<locals>.MyInti  c                     g)Nr9   r)   r    s    r   __int__3ComplexTest.test_constructor.<locals>.MyInt.__int__  s    r   r)   N)r$   r%   r&   r'   r  r(   r)   r   r   MyIntr    s    r   r  c                       \ rS rSrSrS rSrg).ComplexTest.test_constructor.<locals>.complex0i  z:Test usage of __complex__() when inheriting from 'complex'c                     g)Ny              E@r)   r    s    r   r=   :ComplexTest.test_constructor.<locals>.complex0.__complex__  s    r   r)   Nr$   r%   r&   r'   __doc__r=   r(   r)   r   r   complex0r    s
    Lr   r  c                   (    \ rS rSrSrSS jrS rSrg).ComplexTest.test_constructor.<locals>.complex1i  z3Test usage of __complex__() with a __new__() methodc                 4    [         R                  U SU-  5      $ )Nr   )rD   __new__r   s     r   r  6ComplexTest.test_constructor.<locals>.complex1.__new__  s    tQuW55r   c                     U $ r   r)   r    s    r   r=   :ComplexTest.test_constructor.<locals>.complex1.__complex__  s    r   r)   N)r   )r$   r%   r&   r'   r  r  r=   r(   r)   r   r   complex1r    s    E6r   r  c                       \ rS rSrSrS rSrg).ComplexTest.test_constructor.<locals>.complex2i  zTMake sure that __complex__() calls fail if anything other than a
complex is returnedc                     g r   r)   r    s    r   r=   :ComplexTest.test_constructor.<locals>.complex2.__complex__  s    r   r)   Nr  r)   r   r   complex2r!    s    #r   r$  rg   r   )rD   r4   r8   assertRaisesRegexrk   r   r   r   rj   object	Exceptionr,   r   r   assertWarnsDeprecationWarning)r   r   rR   rS   r   c2r
  r  r  r  r$  r  s   `          @r   test_constructorComplexTest.test_constructor\  s%   	5
 	gi#s#gbk4%gdmT3'ggc*gi $,goi014=gk),-tS9ganc4(gaT*gaT*gc2T*gdBt,gc4 #t,gdC $,ggq!4-gog.2D#>gk'*A.c:geQd+gb$d+ga!3-ga12C>##IEGA{7+,G 	gc5!5#.ggr"D#.geR #t,gb'"C.gb% %-g4 $,g7#T3/g9%tS1g3c*g4c*D#6gd%tS1 AgamQ*gamQ*  
 D#gaj!$Qd2h0ryER	 	yIT	 	yEaUA	 	y8S!	 	y:Q1	 	y.Q	 	)Wk#.>?)Wk!n=)Wk$.?@)Wk'.BFHM)Wk#.>I)Wk!nfhG)Wk$.?J	i 		 	 	'7KM:gio&c2gios+T37gc9T?+S$7)Wim<)WimSA)Wc9R=A)Wio>)WiosC)Wc9T?Cgim$dC0gimS)45gc9R=)35-)AtG2DE-)AtG2DcJ-#yD7IJ)Wio>)WiosC)Wc9T?C	 	 	)Weg6)Wegs;)Wc57;	w 	
	w 		w 	 	ghrl#S$/01'(2,'c2 2)Whrl;gG Gb 21s   (c,(c>,
c;>
dc                 R   SnU R                  UR                  5       U5        U R                  [        UR                  5       5      [        5        [	        S5      nU R                  UR                  5       S5        U R                  [        UR                  5       5      [        5        g )Ny      @      @)r   r=   r   rD   r4   )r   r\   s     r   test___complex__ComplexTest.test___complex__  ss    !,ammo.8F#&1ammo.8r   c           	         SS[         [         * [        4 GH  nSS[         [         * [        4 GH  nU R                  XS9   [        X5      nU R	                  UR
                  U5        U R	                  UR                  U5        [        X5      nU R                  [        U5      [        5        U R	                  UR
                  U5        U R	                  UR                  U5        [        [        X5      5      nU R                  [        U5      [        5        U R	                  UR
                  U5        U R	                  UR                  U5        [        [        X5      5      nU R                  [        U5      [        5        U R	                  UR
                  U5        U R	                  UR                  U5        S S S 5        GM     GM     g ! , (       d  f       GM  = f)Nr   r  )rR   rS   )
r   rn   r   rD   r   rH   rI   r4   r   r   )r   rR   rS   r\   s       r    test_constructor_special_numbers,ComplexTest.test_constructor_special_numbers  sS   dC#s*A$cT3.\\A\+A11!&&!<11!&&!<'-AMM$q'?;11!&&!<11!&&!< 56AMM$q'7311!&&!<11!&&!<'6AMM$q'?;11!&&!<11!&&!< ,+ / +++s    E<G
Gc                 :  ^  U 4S jnU" [        S5      SS5        U" [        S5      SS5        U" [        S5      SS5        U" [        S5      SS5        U" [        S	5      SS
5        U" [        S5      SS
5        U" [        S5      SS5        U" [        S5      SS5        U" [        S5      SS5        U" [        S5      SS5        U" [        S5      SS5        U" [        S5      SS5        U" [        S5      SS5        U" [        S5      SS5        U" [        S5      SS5        U" [        S5      SS5        U" [        S5      SS5        U" [        S5      SS5        U" [        S5      SS5        U" [        S5      SS5        U" [        S5      SS5        U" [        S5      SS5        U" [        S 5      SS5        T R                  [        [         S!5        T R                  [        [         S"5        T R                  [        [         S#5        T R                  [        [         S$5        T R                  [        [         S%5        T R                  [        [         S&5        T R                  [        [         S'5        T R                  [        [         S(5        T R                  [        [         S)5        T R                  [        [         S*5        T R                  [        [         S+5        T R                  [        [         S,5        T R                  [        [         S-5        T R                  [        [         S.5        T R                  [        [         S/5        T R                  [        [         S05        T R                  [        [         S15        T R                  [        [         S25        T R                  [        [         S35        T R                  [	        [        S45      5      [         5        T R                  [        S55      S65        T R                  [        [         S75        g )8Nc                    > TR                  [        U 5      [        5        TR                  U R                  U5        TR                  U R
                  U5        g r   r   r   s      r   r   7ComplexTest.test_constructor_from_string.<locals>.check  r   r   r  r   r   1jz-1r   z+1z1+2jr   z(1+2j)z(1.5+4.25j)r   r   z4.25+1Jz ( +4.25-6J )g      z ( +4.25-J )z ( +4.25+j )Jz( j )z+Jz( -j)z1-1j1Jz1e-500z-1e-500jr  z1e-500+1e-500jz-1e-500+1e-500jz1e-500-1e-500jz-1e-500-1e-500jz1+1j j  z3 9z1+z1+1j+1jz--z(1+2jz1+2j)z1+(2j)z	(1+2j)123rR   z1j+21e1ejz1e++1ejz)1+2j(z1..1jz1.11.1jz1e1.1j  11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111u    ( 1+1j ) r   u   こんにちは)rD   rj   r   r   r   r   )r   r   s   ` r   test_constructor_from_string(ComplexTest.test_constructor_from_string  s)   	5
 	gclC%gdmS#&gdmT3'gdmS#&gfosC(ghc*gm$c40gi $,go&d3gn%tT2gn%tS1gclC%ggS)gdmS#&ggT*gfosD)gdmS#&ghc*gj!3-g&'c2g'($4g&'d3g'($5 	*gy9*gr2*gt4*gv6*gt4*gy9*gt4*gw7*gw7*gx8*g{;*gs3*gv6*gw7*gy9*gx8*gw7*gy9*gx8 	d77+,g6!CDdK 	*g/OPr   c                 |   U R                  [        S[        S5      R                  5      S5        U R                  [        S[        S5      R                  5      S5        U R                  [        S[        S5      R                  5      S5        U R                  [        S[        S5      R                  5      S5        g )Nr   z-nanr   z-nanjz	-nan-nanj)r   r	   rD   rH   rI   r    s    r   *test_constructor_negative_nans_from_string6ComplexTest.test_constructor_negative_nans_from_stringJ  s    "gfo&:&:;SA"gg&6&;&;<cB"gk&:&?&?@#F"gk&:&?&?@#Fr   c           
        ^ [          Hw  m[        U4S jS 5       5      (       a  M  U R                  [        T5      [	        T5      5        U R                  [        T5      [        TR                  SS5      5      5        My     [         HB  mTS;   a  M  [        U4S jS 5       5      (       a  M'  U R                  [        [        T5        MD     g )Nc              3   ,   >#    U  H	  oT;   v   M     g 7fr   r)   .0chlits     r   	<genexpr>/ComplexTest.test_underscores.<locals>.<genexpr>S       48RSy8   xXoObB_r9  )0_709_99c              3   ,   >#    U  H	  oT;   v   M     g 7fr   r)   rD  s     r   rH  rI  Y  rJ  rK  )	r   anyr   rD   evalreplacer   rj   r   )r   rG  s    @r   test_underscoresComplexTest.test_underscoresP  s    ,C48444  tCy9  ws{{37K/LM - /C&&48444!!*gs;	 /r   c           
      "   [        SS5       Hd  nU R                  [        U5      [        [        US5      5      5        US-  nU R                  [        U5      [        [        US5      5      5        Mf     U R	                  [        S5      S5        g )Nr      r         @r   y    >A      r   )rh   r   hashrD   assertNotEqual)r   rR   s     r   	test_hashComplexTest.test_hash\  sp    sBAT!Wd71a=&9:HAT!Wd71b>&:;  
 	D.3r   c           
      v   [        SS5       VVs/ s H)  n[        SS5        H  n[        US-  US-  5      PM     M+     nnnU H>  nU R                  UR                  S-  UR                  S-  -   S-  [        U5      5        M@     U R                  [        [
        [        [        [        5      5        g s  snnf )Ni	   rX  g      @r   r   )	rh   rD   rG   rH   rI   rO   rj   r   DBL_MAX)r   rR   rS   numsnums        r   test_absComplexTest.test_absd  s    -22a[N[%1+Q"ad#+#[NC""CHHaK#((A+$=3#FCQ  	-ggw.GH	 Os   0B5c                    U R                   4S jnU" SS5        U" SS5        U" SSU R                  S9  U" [        S	[        5      S
5        U" [        S	[        * 5      S5        U" [        [        S5      S5        U" [        [        * [        5      S5        U" [        [        S5      S5        U" [        S[        5      S5        U" [        [        [        5      S5        U" [        [        * [        * 5      S5        U" [        S[        5      S5        U" [        S[        * 5      S5        U" [        S[        5      S5        U R                  S[        [        S5      5      5        U R                  S[        [        S5      5      5        U R                  S[        [        S5      5      5        U R                  S[        [        S5      5      5        g )Nc                 L    U" [        U 5      U5        U" [        U 5      U5        g r   reprr   vexpectedtest_fns      r   test'ComplexTest.test_repr_str.<locals>.testl      DGX&CFH%r         ?      @z(1+6j)y      ?      z(1-6j)y             z(-1+-0j))rk  r   z(1+infj)z(1-infj)r   z(inf+1j)z(-inf+infj)z(nan+1j)z(1+nanj)z
(nan+nanj)r   infjz-infjnanjy             y              @)r   rZ  rD   r   rn   rg  r   rl  s     r   test_repr_strComplexTest.test_repr_strk  s\   &*&6&6 	& 	T8T8Wj$*=*=>WRz*WR#
+WS!_j)WcT3/WS!_j)WQ_j)WS#-WcTC4 ,/WQ_f%WQw'WQ_f%gd4j12gd4j12WT#Y/0GDH-.r   c                 T   U R                   4S jnU" [        SS5      S5        U" [        SS5      S5        U" [        SS5      S5        U" [        SS5      S	5        U" [        SS5      S
5        U" [        SS5      S5        U" [        SS5      S5        U" [        SS5      S5        g )Nc                 L    U" [        U 5      U5        U" [        U 5      U5        g r   rf  rh  s      r   rl  5ComplexTest.test_negative_zero_repr_str.<locals>.test  rn  r   r   r   r6  r  z(-0+1j)r   z-1jz(-0-1j)0jz-0jz(-0+0j)z(-0-0j))r   rD   rr  s     r   test_negative_zero_repr_str'ComplexTest.test_negative_zero_repr_str  s    &*&6&6 	& 	WR_%WS"	*WR&WS#	*WR_%WR&WS"	*WS#	*r   c                     U R                  SS5        U R                  [        SS5      7S5        U R                  [        [        SS5      75      [        5        g )Nro  r   rb   )r   r4   r   r   rD   r    s    r   test_posComplexTest.test_pos  sI    $'/!Q//6dOAq112G<r   c                 (    U R                  SS5        g )Ny            )r   r    s    r   test_negComplexTest.test_neg  s    %(r   c                    U R                  SR                  5       S5        U R                  SR                  5       S5        U R                  SR                  5       S5        U R                  SR                  5       S5        U R                  [        S	[        5      R                  5       S
[        45        U R                  [        [        S	5      R                  5       [        S
45        g )Ny      ?       @)r   r   y      ?       )r   g       y               @)r   r                 r   r   r   )r   __getnewargs__rD   r   r    s    r   test_getnewargsComplexTest.test_getnewargs  s    $..0*=$..0+>",,.
;#--/=C779C:Fa779C:Fr   c                 |    Su  pU R                  UR                  S5        U R                  UR                  S5        g )N)r   r  r   r  )r   rI   )r   z1z2s      r   test_plus_minus_0jComplexTest.test_plus_minus_0j  s3     %%bggs3%%bggt4r   c                 j   SnSnSnU R                  UR                  S5        U R                  UR                  S5        U R                  UR                  S5        U R                  UR                  S5        U R                  UR                  S5        U R                  UR                  [        * 5        g )Nr  y             y             r  g      )r   rH   rI   r   )r   z0r  r  s       r   test_negated_imaginary_literal*ComplexTest.test_negated_imaginary_literal  s    
 	%%bggt4%%bggt4%%bggt4%%bggt4%%bggt4%%bggt4r   c                    U R                  [        S5      [        [        S5      5        U R                  [        S5      [        S[        * 5      5        U R                  [        S5      [        [        * [        5      5        g )N1e500r   z-1e500jz-1e500+1.8e308j)r   rD   r   r    s    r   test_overflowComplexTest.test_overflow  s[    )73+<=+WS3$-?@!23WcT35GHr   c           	      L   SSSSSSS[         [        /	nX Vs/ s H  o"* PM     sn-  nU H<  nU H3  n[        X45      n[        [        U5      5      nU R	                  XV5        M5     M>     [        S5      [        S5      p[        SU5      [        SU5      pU H  nU Hz  n[        X45      n[        [        U5      5      nU R                  SUR                  -   SUR                  -   5        U R                  SUR                  -   SUR                  -   5        M|     M     g s  snf )	Nr   gi    rd   g(0?go!	@gd~QJr
   r   )
r   rn   rD   rg  assertComplexesAreIdenticalri   rR  r   rH   rI   )r   valsri  rR   rS   r\   	roundtripr
   r   rp  rq  s              r   test_repr_roundtripComplexTest.test_repr_roundtrip  s   VVVVVT3LT"TT"" AAM#DG,	00>   <uSS#&S(9dAAM aM	--cAFFl.1INN.BD--cAFFl.1INN.BD   #s   D!c                 j   U R                  [        SS5      [        S5      5        U R                  [        SS5      [        S5      5        U R                  [        SS5      [        S5      5        U R                  [        SS5      [        S5      5        U R                  [        SS5      [        S5      5        U R                  [        SS5      [        S5      5        U R                  [        SS5      [        S5      5        U R                  [        SS	5      [        S5      5        S
nU R                  [        US5      [        U5      5        U R                  [        US5      [        U5      5        U R                  [        US	5      [        U5      5        U R                  [        US5      [        U5      5        [        SS5      nU R                  [        US5      [        U5      5        U R                  [        US5      [        U5      5        U R                  [        US	5      [        U5      5        U R                  [        US5      [        U5      5        [        SS5      nU R                  [        US5      [        U5      5        U R                  [        US5      [        U5      5        U R                  [        US	5      [        U5      5        U R                  [        US5      [        U5      5        U R                  [        SS5      S5        U R                  [        SS5      S5        U R                  [        SS5      S5        U R                  [        SS5      S5        U R                  [        SS5      S5        U R                  [        SS5      S5        U R                  [        SS5      S5        U R                  [        SS5      S5        U R                  [        SS5      S 5        U R                  [        S!S5      S"5        U R                  [        S#S5      S$5        U R                  [        S!S%5      S&5        U R                  [        S!S'5      S&5        U R                  [        S!S(5      S)5        U R                  [        S!S*5      S+5        U R                  [        S!S,5      S-5        U R                  [        S.S/5      S05        U R                  [        S1S25      S35        U R                  [        S1S45      S55        U R                  [        S1S65      S75        U R                  [        S1S85      S95        U R                  [        S1S:5      S;5        U R                  [        S1S<5      S=5        U R                  [        S1S>5      S?5        U R                  [        S@SA5      SB5        U R                  [        S1SC5      SD5        U R                  [        S1SE5      SD5        U R                  [        S1SF5      SG5        U R                  [        SHSF5      SI5        U R                  [        SHSJ5      SK5        U R                  [        SHSL5      SM5        U R                  [        SNSL5      SO5        U R                  [        SPSQ5      SR5        U R                  [        SSST5      SU5        U R                  [        SSSV5      SW5        U R                  [        SSSX5      SY5        U R                  [        SSSZ5      S[5        U R                  [        S\S5      S]5        U R                  [        S\S^5      S_5        U R                  [        SSS`5      Sa5        U R                  [        SSSb5      Sa5        U R                  [        SSSc5      Sd5        U R                  [        SSSe5      Sd5        U R                  [        SfSg5      Sh5        U R                  [        SfSZ5      Si5        U R                  [        SfSj5      Sk5        U R                  [        SfSV5      Sl5        U R                  [        SfS^5      Sm5        U R                  [        SfSn5      So5        U R                  [        SfSp5      Sq5        U R	                  [
        SrR                  Ss5        U R	                  [
        S1R                  St5        Su H$  nU R	                  [
        SrR                  U5        M&     U R                  SvR                  Sw5      Sx5        U R                  [        [        [        [        5      S%5      Sy5        U R                  [        [        Sz[        5      S%5      S{5        U R                  [        [        [        Sz5      S%5      S|5        U R                  [        [        [        S}5      S%5      S~5        U R                  [        [        [        [        5      S'5      S5        U R                  [        [        Sz[        5      S'5      S5        U R                  [        [        [        Sz5      S'5      S5        U R                  [        [        [        S}5      S'5      S5        U R                  [        [        [        [        5      S%5      S5        U R                  [        [        Sz[        5      S%5      S5        U R                  [        [        [        Sz5      S%5      S5        U R                  [        [        [        S}5      S%5      S5        U R                  [        [        [        [        5      S'5      S5        U R                  [        [        Sz[        5      S'5      S5        U R                  [        [        [        Sz5      S'5      S5        U R                  [        [        [        S}5      S'5      S5        g )Ny      ?      @r9  y      ?      @y              @y        	@y      @        y	@        -<y$I$I?%I$I,10r   rX  2r  r   3gz1+3jz0+3jz1.5+3.5jz+gz	+1.5+3.5jy      ?      z	+1.5-3.5jz-gz1.5-3.5jz gz	 1.5+3.5jz	 1.5-3.5jy            @z	-1.5+3.5jy            z	-1.5-3.5jy      z-1.5-3.5e-20jr   z-1.500000-3.500000jFez-1.500000e+00-3.500000e+00jz.2ez-1.50e+00-3.50e+00jz.2Ez-1.50E+00-3.50E+00jy       \z.2Gz-1.5E+10-3.5E+05jy      ?      @z<20gz1.5+3j              z*<20gz1.5+3j**************z>20gz              1.5+3jz^20gz       1.5+3j       z<20z(1.5+3j)            z>20z            (1.5+3j)z^20z      (1.5+3j)      y+?Clz^20.2z     (1.1-3.1j)     z20.2fz          1.50+3.00jz>20.2fz<20.2fz1.50+3.00j          y0)VC D      @z150000000000000000000.00+3.00jz>40.2fz(          150000000000000000000.00+3.00jz^40,.2fz(  150,000,000,000,000,000,000.00+3.00j  y|3*+TTD      @z( 1,500,000,000,000,000,000,000.00+3.00j y|3*+TTD     p@z,.2fz*1,500,000,000,000,000,000,000.00+3,000.00jr   z.0ez1e+00+1e+00jz#.0ez1.e+00+1.e+00jz.0fz1+1jz#.0fz1.+1.jy??z1.1+1.1jz#gz1.10000+1.10000jz.1ez1.0e+00+1.0e+00jz#.1ez.1fz1.0+1.0jz#.1fy            ?z#fz-1.500000+0.500000jz-2.+0.jz#ez-1.500000e+00+5.000000e-01jz-2.e+00+5.e-01jz-1.50000+0.500000jz.0gz-2+0.5jz#.0gz-2.+0.5jy      ?      ?010fz=20bcdoxXz	*{0:.3f}*yn!	@	@z*3.142+2.718j*znan+nanjr   z1.000000+nanjznan+1.000000jr   znan-1.000000jzNAN+NANjz1.000000+NANjzNAN+1.000000jzNAN-1.000000jzinf+infjz1.000000+infjzinf+1.000000jzinf-1.000000jzINF+INFjz1.000000+INFjzINF+1.000000jzINF-1.000000j)	r   formatr   rD   rj   r   
__format__rn   r   )r   r\   ts      r   test_formatComplexTest.test_format  s"	   b)3t95"-s8}=BR1b)3t95b)3t95+S[9 	,c&k:,c&k:2A/3Q03Q04#a&1C2A/3Q03Q03Q0D#2A/3Q03Q03Q0c*F3C&1#.
;$/=$/=$/<$/=$/=	40+>	40+>s3_E	3/1FG	3/1FG	3/1NO	513HI	513HI68KL/2HI02HI/2HI/2HI.2HI.2HI.2HIg68NO02HI13IJ13IJ	846VW	846`a	957ab	957abf57cd 	e,n=f-/?@e,f5f-x8#.
;$/1CD 	e,/ABf-/ABe,z:f-z: 	T24IJV4i@T24QRV46GHT24HIU3Y?V4jA 	*x&;&;VD 	*v&9&95A Aj8*?*?C  	++,<=?OP 	S 137D35GQ5GR 0#6HS 137D35GQ5GR 0#6HS 137D35GQ5GR 0#6HS 137D35GQ5GR 0#6Hr   r)   N)g&.>).r$   r%   r&   r'   rG   rU   rX   r^   rt   ry   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r+  r.  r   requires_IEEE_754r1  r=  r@  rT  r[  rb  rs  ry  r|  r  r  r  r  r  r  r  r(   r)   r   r   r@   r@   0   sU   @
,1
#+4


58;"===
67FPE8BP<d9 = =(<Q|G
<4I/8 + +=
)G 5 5 5 5 I I
 D D4wIr   r@   __main__)rE   r   rl  r   test.support.testcaser   test.support.numbersr   r   r   mathr   r	   rl   ri   r   rn   
float_infomaxr_  rw   r   r,   rD   r4   r8   rF   r@   r$   mainr)   r   r   <module>r     s     
  <
    ElEl
..

  	g 	 fI,h.?.? fIR zMMO r   