o
    GXh(                     @   s   d dl Z d dlZd dlmZ d dlmZmZ d dlmZ d dlm	Z	m
Z
mZ d dlZedZedZdZG d	d
 d
e jZedkrGe   dS dS )    N)support)VALID_UNDERSCORE_LITERALSINVALID_UNDERSCORE_LITERALS)random)atan2isnancopysigninfnan))      ?      ?                )r           )r   r   )      ?r   )   r   c                   @   s<  e Zd Zdd ZdEddZdd ZdEdd	Zd
d Zdd Zdd Z	dd Z
dd Zdd Zdd Zdd Zdd Zdd Zdd Zd d! Zd"d# Zd$d% Zd&d' Zd(d) Zejd*d+ Zd,d- Zd.d/ Zd0d1 Zd2d3 Zejd4d5 Zd6d7 Zd8d9 Z ejd:d; Z!ejd<d= Z"ejd>d? Z#ejd@dA Z$dBdC Z%dDS )FComplexTestc                 C   s   t |tr4t |tr tj| |j|j tj| |j|j d S tj| |j| tj| |jd d S t |trMtj| ||j tj| d|j d S tj| || d S )Nr   )
isinstancecomplexunittestTestCaseassertAlmostEqualrealimagselfab r   ;/opt/python-3.10.19/usr/lib/python3.10/test/test_complex.pyr      s   


zComplexTest.assertAlmostEqual&.>c                 C   sb   	 t |t |kr||}}|dkrt ||k S |dkr"t ||k S | t || | |k  d S Nr   )abs
assertTruer   xyZepsr   r   r   assertCloseAbs(   s   
zComplexTest.assertCloseAbsc                 C   sv   	 d}t |st |rt |rt |rd S n||kr0|dkr d S td|td|kr,d S |d7 }| ||| d S )Nz&floats {!r} and {!r} are not identicalr   r   z: zeros have different signs)r   r   failformat)r   r#   r$   msgr   r   r   assertFloatsAreIdentical4   s   z$ComplexTest.assertFloatsAreIdenticalc                 C   s*   	 |  |j|j| |  |j|j| d S N)r%   r   r   r"   r   r   r   assertCloseK   s   zComplexTest.assertClosec                 C   sv   	 || }|dkr|| }|  || ||}|  || |dkr9|| }|  || ||}|  || d S d S r   )r+   __truediv__)r   r#   r$   zqr   r   r   	check_divP   s   

zComplexTest.check_divc                    s  dd t ddD   fdd D }|D ]}|D ]}| || qq| tddd | tddd t d	D ]}| tt t tt t  q9| td
dd dtftdfttffD ]\}}tddt|| }| t|j	 | t|j
 qad S )Nc                 S   s   g | ]}t |qS r   )float).0ir   r   r   
<listcomp>_   s    z,ComplexTest.test_truediv.<locals>.<listcomp>   c                    s    g | ]} D ]}t ||qqS r   )r   r1   r#   r$   Zsimple_realr   r   r3   `   s     gZbti      ?        N~hd          @        r   y      ?      r   )ranger/   r   r   r   r,   NANr!   r   r   r   )r   Zsimple_complexr#   r$   r2   Z
denom_realZ
denom_imagr-   r   r7   r   test_truediv^   s$   zComplexTest.test_truedivc              	   C   sD   t D ]\}}| t ||  W d    n1 sw   Y  qd S r*   )ZERO_DIVISIONassertRaisesZeroDivisionErrorr   r   r   r   test_truediv_zero_divisionv      
z&ComplexTest.test_truediv_zero_divisionc                 C   s   |  t dd  W d    n1 sw   Y  |  t dd  W d    n1 s-w   Y  |  t dd  W d    n1 sFw   Y  |  t dd  W d    n1 s_w   Y  |  t dd  W d    d S 1 syw   Y  d S Nr   r8   r   r   r@   	TypeErrorr   r   r   r   test_floordiv{   s   




"zComplexTest.test_floordivc              	   C   sD   t D ]\}}| t ||  W d    n1 sw   Y  qd S r*   r?   r@   rF   r   r   r   r   test_floordiv_zero_division   rC   z'ComplexTest.test_floordiv_zero_divisionc                 C   s  |  tddd> d |  tdd t |  tddd |  tddd |  tddd |  tddd tddD ]8}|d }|  t|d	 |d |  t|d	 |d |  tt|||d |  tt|||d qC|  tddt |  tddt |  tddt |  t	ddt | 
ttjdd | 
ttjdd | 
ttjdd | 
ttjdd |  tddd |  tddd |  tddd |  tddd d S )
Nr   r   i'  FTy       @       @r:   g      Y@r   )assertIsr   __eq____lt__NotImplemented__ne__r<   __le____gt____ge__r@   rF   operatorltlegtgeeqne)r   r2   fr   r   r   test_richcompare   s0   zComplexTest.test_richcomparec                    s   dfdd	}t ddD ])}d| }d|  |d| t dd fd	d
 |d| t dddd
 t| q|dt dddd
  d S )Nr   c                    sR   |D ]$}| | }t ||} t ||||  t ||||  qd S r*   )r   rK   rL   rO   )nZdeltasZis_equalr   deltar2   r-   rG   r   r   check   s   
z6ComplexTest.test_richcompare_boundaries.<locals>.checkr   
   4      e   c                    s   |   dkS r   r   r]   )multr   r   <lambda>       z9ComplexTest.test_richcompare_boundaries.<locals>.<lambda>c                 S      dS )NFr   rc   r   r   r   re          l          ir   c                 S   rg   )NTr   rc   r   r   r   re      rh   )r   )r<   r0   )r   r^   r2   powr   )rd   r   r   test_richcompare_boundaries   s   	"z'ComplexTest.test_richcompare_boundariesc                 C   s   |  t dd  W d    n1 sw   Y  |  t dd  W d    n1 s-w   Y  |  t dd  W d    n1 sFw   Y  |  t dd  W d    n1 s_w   Y  |  t dd  W d    d S 1 syw   Y  d S rD   rE   rG   r   r   r   test_mod   s   




"zComplexTest.test_modc              	   C   sD   t D ]\}}| t ||  W d    n1 sw   Y  qd S r*   rI   r   r   r   r   test_mod_zero_division   rC   z"ComplexTest.test_mod_zero_divisionc                 C   sT   |  ttdd |  ttdd |  ttdd |  ttdd |  ttdd d S rD   )r@   rF   divmodrG   r   r   r   test_divmod   s
   zComplexTest.test_divmodc                 C   s"   t D ]\}}| tt|| qd S r*   )r?   r@   rF   rm   r   r   r   r   test_divmod_zero_division   s   z%ComplexTest.test_divmod_zero_divisionc                 C   s2  |  tddd |  tddd | ttdd |  tddd |  tdd	d
 | ttddd | ttdd d}| |d d
 | |d d d
 | dd
 | dd
 zd|  W n	 tyl   Y nw | d zdd  W n	 ty   Y nw | d | |d |d  | |d |d  | |d |d  | dd
 d}| tt||d tj	tj	d
 tj	d
 tj	 tj	 d
 tj	 d
 f}|D ]E}|D ]@}| j
||d. t||}z||  W n	 ty   Y nw z||  W n
 ty   Y nw W d    n	1 sw   Y  qqd S )Nr   r   r   r;   r                 ?y                 r   yZbti      ?yp=
ף
@Q@r8   z,should fail 0.0 to negative or complex powery      @       i   iyffffff@ffffff@r   r   r   )r   ri   r@   rA   
ValueErrorOverflowErrorassertEqualr&   sysmaxsizesubTestr   )r   r   r   valuesr   r   cr   r   r   test_pow   sh   


zComplexTest.test_powc                 C   s  t ddt ddt dtt tdg}g d}|D ]l}|D ]g}| j||dV z|| }W n ty7   d	}Y nw z|t| }W n tyK   d	}Y nw z|t | }W n ty_   d	}Y nw | t|t| | t|t| W d    n1 s~w   Y  qqd S )
Ng      @g      (@g\nTg;%_nTg      r   )ir4   rq   r   r   ra            )valueexponentZoverflow)r   INFr{   rw   r0   rx   str)r   r|   Z	exponentsr   r   Zint_powZ	float_powZcomplex_powr   r   r   %test_pow_with_small_integer_exponents  s<   z1ComplexTest.test_pow_with_small_integer_exponentsc                 C   s@   t dD ]}| tt d t d  q| tdd  d S )Nr:   gư>r   )r<   r!   r   r   )r   r2   r   r   r   test_boolcontext,  s   zComplexTest.test_boolcontextc                 C   s   |  tdd d d S )Ng333333@g#@y333333@#)r+   r   	conjugaterG   r   r   r   test_conjugate1  s   zComplexTest.test_conjugatec                    s  G dd d}|  t|dd | tt|d  | tti  | tt|d | tt|d | tdd | tdd | td	d | tdd | tdd | tddd | tddd | tdd	d | tddd | tddd | tdd	d | td
dd | td
dd | td
d	d | tdd | tdd | tdd | tdd | tddd | tddd | tddd | tddd | tddd | tddd | tddd | tddd | tdd | tdd | t d | tdd | tdd | tdd | tdd | tdd  | td!d" | td#d$ | td%d  | td&d | td'd | td(d | td)d* | td+d | td,d | td-d G d.d/ d/t}| t|d0d0 | td1d2d3d4 | td4d5d4 | td4d2d3d6 | tdd7d3d8 d9d: }|  |td
dj|d |  |td
d;j|d; |  |tdd
j|d |  |td;d
j|d; d }| t||u  ~| ttdd | ttdd | ttd< | tt	d= | tt	d= | tt
d= | ttd> | ttd  | td?td  | ttd@ | ttdA | ttddB | ttddC | ttddB | ttdD | ttdE | ttdF | ttdG | ttdH | ttdI | ttdJ | ttdK | ttdL | ttdM | ttdN | ttdO | tdPtddQid | tdRtdddQi | ttdS | ttdT | ttdU |  ttdVt |  tdWd0 | ttdX G dYdZ dZt G  fd[d\d\}|  t|  G d]d^ d^}| t|d_dC | t|d`|dad3d4 | tt|d  G dbdc dc}| t|dCdd | tde|dCdf | tt|dQdg  | ttde|dQdg  G dhdi di}| tt|  | ttde|  G djdk dkt}	G dldm dmt}
G dnd/ d/t}|  t|	ddo | t |  t|
ddp W d    n	1 sw   Y  | tt|d d S )qNc                   @      e Zd Zdd Zdd ZdS )z(ComplexTest.test_constructor.<locals>.NSc                 S   
   || _ d S r*   r   r   r   r   r   r   __init__6  s   
 z1ComplexTest.test_constructor.<locals>.NS.__init__c                 S      | j S r*   r   rG   r   r   r   __complex__7  s    z4ComplexTest.test_constructor.<locals>.NS.__complex__N)__name__
__module____qualname__r   r   r   r   r   r   NS5  s    r   y      ?      $@g      ?r   z1+10jr_   y      $@        g      $@r   yQ	@        gQ	@i:  y     s@        r   r   r   y        Q	@yQ	        1r8   1jrp   z-1rq   z+1z(1+2j)      ?       @z
(1.3+2.2j)y?@z3.14+1JyQ	@      ?z ( +3.14-6J )yQ	@      z ( +3.14-J )yQ	@      z ( +3.14+j )Jz( j )z+Jz( -j)y             z1e-500z-1e-500jz-1e-500+1e-500jc                   @      e Zd ZdS ).ComplexTest.test_constructor.<locals>.complex2Nr   r   r   r   r   r   r   complex2k  rf   r   r         ru   y      1@      7@)r   y      1@      G@y      @      @y            @c                 S   s   	 t | dS )N      )r   )r#   r   r   r   split_zerosu  s   
z1ComplexTest.test_constructor.<locals>.split_zeros       z1+1j jy      @      @ znot 'NoneType' z3 92*   z1+z1+1j+1jz--z(1+2jz1+2j)z1+(2j)z	(1+2j)123r#   z1j+2Z1e1ejz1e++1ejz)1+2j(z7first argument must be a string or a number, not 'dict'ra   z,second argument must be a number, not 'dict'z1..1jz1.11.1jz1e1.1jA  11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111u    ( 1+1j ) u   こんにちはc                   @   r   )z-ComplexTest.test_constructor.<locals>.EvilExcNr   r   r   r   r   EvilExc      r   c                       s   e Zd Z fddZdS )z1ComplexTest.test_constructor.<locals>.evilcomplexc                    s    r*   r   rG   r   r   r   r        z=ComplexTest.test_constructor.<locals>.evilcomplex.__complex__Nr   r   r   r   r   r   r   r   evilcomplex  s    r   c                   @   r   )z,ComplexTest.test_constructor.<locals>.float2c                 S   r   r*   r   r   r   r   r   r        
z5ComplexTest.test_constructor.<locals>.float2.__init__c                 S   r   r*   r   rG   r   r   r   	__float__     z6ComplexTest.test_constructor.<locals>.float2.__float__N)r   r   r   r   r   r   r   r   r   float2      r   g      E@g      1@g      7@c                   @   r   )z-ComplexTest.test_constructor.<locals>.MyIndexc                 S   r   r*   r   r   r   r   r   r     r   z6ComplexTest.test_constructor.<locals>.MyIndex.__init__c                 S   r   r*   r   rG   r   r   r   	__index__  r   z7ComplexTest.test_constructor.<locals>.MyIndex.__index__N)r   r   r   r   r   r   r   r   r   MyIndex  r   r   y      E@        {   y     ^@      E@i  c                   @   s   e Zd Zdd ZdS )z+ComplexTest.test_constructor.<locals>.MyIntc                 S   rg   )Nr   r   rG   r   r   r   __int__  r   z3ComplexTest.test_constructor.<locals>.MyInt.__int__N)r   r   r   r   r   r   r   r   MyInt  s    r   c                   @      e Zd Z	 dd ZdS )z.ComplexTest.test_constructor.<locals>.complex0c                 S   rg   )N              E@r   rG   r   r   r   r     r   z:ComplexTest.test_constructor.<locals>.complex0.__complex__Nr   r   r   r   r   complex0  s    r   c                   @   s    e Zd Z	 dddZdd ZdS )z.ComplexTest.test_constructor.<locals>.complex1r   c                 S   s   t | d| S )Nra   )r   __new__r   r   r   r   r        z6ComplexTest.test_constructor.<locals>.complex1.__new__c                 S   s   | S r*   r   rG   r   r   r   r     r   z:ComplexTest.test_constructor.<locals>.complex1.__complex__N)r   )r   r   r   r   r   r   r   r   r   complex1  s    
r   c                   @   r   )r   c                 S   s   d S r*   r   rG   r   r   r   r     r   z:ComplexTest.test_constructor.<locals>.complex2.__complex__Nr   r   r   r   r   r     s    r                  @)rx   r   r@   rF   r   r   r   r!   rv   intr0   ZassertRaisesRegextype	Exceptionrw   ZassertWarnsDeprecationWarning)r   r   r   r   r}   r   r   r   r   r   r   r   r   r   test_constructor4  s  

zComplexTest.test_constructorc              
   C   s>  G dd dt }ddtt tfD ]}ddtt tfD ]}| j||dp t ||}| |j| | |j| |||}| t|| | |j| | |j| t |||}| t|t  | |j| | |j| |t ||}| t|| | |j| | |j| W d    n1 sw   Y  qqd S )Nc                   @   r   )z>ComplexTest.test_constructor_special_numbers.<locals>.complex2Nr   r   r   r   r   r     r   r   r   r   )r#   r$   )	r   r   r=   r{   r)   r   r   rK   r   )r   r   r#   r$   r-   r   r   r    test_constructor_special_numbers  s.   

z,ComplexTest.test_constructor_special_numbersc              	      s   t D ]% t fdddD s'| t t  | t t dd qtD ]  dv r1q*t fdddD sC| tt  q*d S )Nc                 3       | ]}| v V  qd S r*   r   r1   ZchZlitr   r   	<genexpr>      z/ComplexTest.test_underscores.<locals>.<genexpr>ZxXoObB_r   )Z0_7Z09_99c                 3   r   r*   r   r   r   r   r   r     r   )	r   anyrx   r   evalreplacer   r@   rv   rG   r   r   r   test_underscores  s   zComplexTest.test_underscoresc                 C   sP   t ddD ] }| t|tt|d |d }| t|tt|d qd S )Nrt      r         @r   )r<   rx   hashr   )r   r#   r   r   r   	test_hash  s
   zComplexTest.test_hashc                 C   sF   dd t ddD }|D ]}| |jd |jd  d t| qd S )Nc                 S   s.   g | ]}t d dD ]}t|d |d q	qS )	   r   g      @)r<   r   r6   r   r   r   r3     s   . z(ComplexTest.test_abs.<locals>.<listcomp>r   r   ra   g      ?)r<   r   r   r   r    )r   Znumsnumr   r   r   test_abs  s   &zComplexTest.test_absc                 C   s,  | j fdd}|dd |dd |dd| jd	 |td
td |td
t d |ttdd |tt td |ttdd |tdtd |tttd |tdtd |tdt d |tdtd |  dttd |  dttd |  dttd |  dttd d S )Nc                 S       |t | | |t| | d S r*   reprr   vZexpectedtest_fnr   r   r   test      z'ComplexTest.test_repr_str.<locals>.testy      ?      @z(1+6j)y      ?      z(1-6j)y             z(-1+-0j))r   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              @)rx   ZassertNotEqualr   r   r=   r   r   r   r   r   r   test_repr_str  s$   

zComplexTest.test_repr_strc                 C   s   | j fdd}|tddd |tddd |tddd	 |tddd
 |tddd |tddd |tddd |tddd d S )Nc                 S   r   r*   r   r   r   r   r   r   <  r   z5ComplexTest.test_negative_zero_repr_str.<locals>.testr   r   r   r   z(-0+1j)r   z-1jz(-0-1j)Z0jz-0jz(-0+0j)z(-0-0j))rx   r   r   r   r   r   test_negative_zero_repr_str:  s   z'ComplexTest.test_negative_zero_repr_strc                 C   s   |  dd d S )Ny            )rx   rG   r   r   r   test_negJ  r   zComplexTest.test_negc                 C   sx   |  d d |  d d |  d d |  d d |  td	t d
tf |  ttd	 td
f d S )Nr   )r          @y      ?       )r   g       r   )r   r                 )r   r   r   r   )rx   __getnewargs__r   r   rG   r   r   r   test_getnewargsM  s   zComplexTest.test_getnewargsc                 C   s@   d\}}|  t|jdtdd |  t|jdtdd d S )N)r   r   r   r   r   )rx   r   r   )r   z1z2r   r   r   test_plus_minus_0jU  s   zComplexTest.test_plus_minus_0jc                 C   sf   d}d}d}|  |jd |  |jd |  |jd |  |jd |  |jd |  |jt  d S )Nr   y             y             r   g      )r)   r   r   r   )r   Zz0r   r   r   r   r   test_negated_imaginary_literal\  s   z*ComplexTest.test_negated_imaginary_literalc                 C   sJ   |  tdttd |  tdtdt  |  tdtt t d S )NZ1e500r   z-1e500jz-1e500+1.8e308j)rx   r   r   rG   r   r   r   test_overflowl  s   zComplexTest.test_overflowc           
   	   C   s   dddddddt tg	}|dd |D 7 }|D ]"}|D ]}t||}tt|}| |j|j | |j|j qqtd	td
}}td|td|}}	|D ]*}|D ]%}t||}tt|}| d|j d|j  | d|j d|j  qSqOd S )Nr   gi    r9   g(0?go!	@gd~QJc                 S   s   g | ]}| qS r   r   )r1   r   r   r   r   r3   u  s    z3ComplexTest.test_repr_roundtrip.<locals>.<listcomp>r	   r
   )	r   r=   r   r   r)   r   r   r0   r   )
r   Zvalsr#   r$   r-   Z	roundtripr	   r
   r   r   r   r   r   test_repr_roundtripr  s.   

zComplexTest.test_repr_roundtripc                 C   s&  |  tddtd |  tddtd |  tddtd |  tddtd |  tddtd |  tddtd |  tddtd |  tdd	td d
}|  t|dt| |  t|dt| |  t|d	t| |  t|dt| tdd}|  t|dt| |  t|dt| |  t|d	t| |  t|dt| tdd}|  t|dt| |  t|dt| |  t|d	t| |  t|dt| |  tddd |  tddd |  tddd |  tddd |  tddd |  tddd |  tddd |  tddd |  tddd  |  td!dd" |  td#dd$ |  td!d%d& |  td!d'd& |  td!d(d) |  td!d*d+ |  td!d,d- |  td.d/d0 |  td1d2d3 |  td1d4d5 |  td1d6d7 |  td1d8d9 |  td1d:d; |  td1d<d= |  td1d>d? |  td@dAdB |  td1dCdD |  td1dEdD |  td1dFdG |  tdHdFdI |  tdHdJdK |  tdHdLdM |  tdNdLdO |  tdPdQdR |  tdSdTdU |  tdSdVdW |  tdSdXdY |  tdSdZd[ |  td\dd] |  td\d^d_ |  tdSd`da |  tdSdbda |  tdSdcdd |  tdSdedd |  tdfdgdh |  tdfdZdi |  tdfdjdk |  tdfdVdl |  tdfd^dm |  tdfdndo |  tdfdpdq | tdrjds | td1jdt duD ]}| tdrj| q|  dvdwdx |  ttttd%dy |  ttdztd%d{ |  tttdzd%d| |  tttd}d%d~ |  ttttd'd |  ttdztd'd |  tttdzd'd |  tttd}d'd |  ttttd%d |  ttdztd%d |  tttdzd%d |  tttd}d%d |  ttttd'd |  ttdztd'd |  tttdzd'd |  tttd}d'd d S )Ny      ?      @r   y      ?      @y              @y        	@y      @        y	@        -<y$I$I?%I$I,Z10r   r   r   r   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-20jrZ   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      ?      ?Z010fz=20ZbcdoxXz	*{0:.3f}*yn!	@	@z*3.142+2.718j*znan+nanjr   z1.000000+nanjznan+1.000000jrq   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)	rx   r'   r   r   r@   rv   
__format__r=   r   )r   r-   tr   r   r   test_format  s   

zComplexTest.test_formatN)r   )&r   r   r   r   r%   r)   r+   r/   r>   rB   rH   rJ   r[   rj   rk   rl   rn   ro   r~   r   r   r   r   r   Zrequires_IEEE_754r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r      sR    

< >





r   __main__)r   ry   r   r   Ztest.test_grammarr   r   r   mathr   r   r   rS   r0   r   r=   r?   r   r   r   mainr   r   r   r   <module>   s&         v