o
    h6S                  
   @   s  d dl mZmZ d dlZd dlmZmZmZ d dlm	Z
 d dlmZmZ d dlmZ d dlmZ G dd dZG d	d
 d
ZG dd dZdd Zdd Zejdeeddeddgeddfeddeddgeddfeededdgeddffdd Zejdeg d edd!feddddggedd"ffd#d$ ZG d%d& d&Zejd'e
jd(fe
jd)fe
jd*fe
j d+fe
j!d,fe
j"d-ffd.d/ Z#G d0d1 d1Z$G d2d3 d3Z%d4Z&G d5d6 d6Z'dS )7    )naninfN)arrayarangeprintoptions)assert_equalassert_)Fraction)Decimalc                   @   b  e Zd Zejddddd Zejdg ddfg d	d
feddffdd Z	ejdg ddfg d	dfeddffdd Z
ejdg ddfg d	dfeddffdd Zejdg ddfg d	dfeddffdd Zejdg ddfg d	dfedd ffd!d" Zejdg dd#fg d	d$fedd%ffd&d' Zd(d) Zd*S )+TestStrUnicodeSuperSubscriptsclassTscopeautousec                 C      t d d S Nunicodepolyset_default_printstyleself r   x/var/www/html/construction_image-detection-poc/venv/lib/python3.10/site-packages/numpy/polynomial/tests/test_printing.pyuse_unicode      z)TestStrUnicodeSuperSubscripts.use_unicodeinptgt            1.0 + 2.0·x + 3.0·x²r   r#   r&   u#   -1.0 + 0.0·x + 3.0·x² - 1.0·x³   u   0.0 + 1.0·x + 2.0·x² + 3.0·x³ + 4.0·x⁴ + 5.0·x⁵ + 6.0·x⁶ + 7.0·x⁷ +
8.0·x⁸ + 9.0·x⁹ + 10.0·x¹⁰ + 11.0·x¹¹c                 C   s    t |}t|}t|| d S N)r   
Polynomialstrr   )r   r   r   presr   r   r   test_polynomial_str   s   
z1TestStrUnicodeSuperSubscripts.test_polynomial_str!   1.0 + 2.0·T₁(x) + 3.0·T₂(x)u1   -1.0 + 0.0·T₁(x) + 3.0·T₂(x) - 1.0·T₃(x)u   0.0 + 1.0·T₁(x) + 2.0·T₂(x) + 3.0·T₃(x) + 4.0·T₄(x) + 5.0·T₅(x) +
6.0·T₆(x) + 7.0·T₇(x) + 8.0·T₈(x) + 9.0·T₉(x) + 10.0·T₁₀(x) + 11.0·T₁₁(x)c                 C      t t|}t|| d S r(   r*   r   	Chebyshevr   r   r   r   r,   r   r   r   test_chebyshev_str      z0TestStrUnicodeSuperSubscripts.test_chebyshev_stru!   1.0 + 2.0·P₁(x) + 3.0·P₂(x)u1   -1.0 + 0.0·P₁(x) + 3.0·P₂(x) - 1.0·P₃(x)u   0.0 + 1.0·P₁(x) + 2.0·P₂(x) + 3.0·P₃(x) + 4.0·P₄(x) + 5.0·P₅(x) +
6.0·P₆(x) + 7.0·P₇(x) + 8.0·P₈(x) + 9.0·P₉(x) + 10.0·P₁₀(x) + 11.0·P₁₁(x)c                 C   r/   r(   r*   r   Legendrer   r2   r   r   r   test_legendre_str)   r4   z/TestStrUnicodeSuperSubscripts.test_legendre_stru!   1.0 + 2.0·H₁(x) + 3.0·H₂(x)u1   -1.0 + 0.0·H₁(x) + 3.0·H₂(x) - 1.0·H₃(x)u   0.0 + 1.0·H₁(x) + 2.0·H₂(x) + 3.0·H₃(x) + 4.0·H₄(x) + 5.0·H₅(x) +
6.0·H₆(x) + 7.0·H₇(x) + 8.0·H₈(x) + 9.0·H₉(x) + 10.0·H₁₀(x) + 11.0·H₁₁(x)c                 C   r/   r(   r*   r   Hermiter   r2   r   r   r   test_hermite_str4   r4   z.TestStrUnicodeSuperSubscripts.test_hermite_stru#   1.0 + 2.0·He₁(x) + 3.0·He₂(x)u4   -1.0 + 0.0·He₁(x) + 3.0·He₂(x) - 1.0·He₃(x)u   0.0 + 1.0·He₁(x) + 2.0·He₂(x) + 3.0·He₃(x) + 4.0·He₄(x) + 5.0·He₅(x) +
6.0·He₆(x) + 7.0·He₇(x) + 8.0·He₈(x) + 9.0·He₉(x) + 10.0·He₁₀(x) +
11.0·He₁₁(x)c                 C   r/   r(   r*   r   HermiteEr   r2   r   r   r   test_hermiteE_str?      	z/TestStrUnicodeSuperSubscripts.test_hermiteE_stru!   1.0 + 2.0·L₁(x) + 3.0·L₂(x)u1   -1.0 + 0.0·L₁(x) + 3.0·L₂(x) - 1.0·L₃(x)u   0.0 + 1.0·L₁(x) + 2.0·L₂(x) + 3.0·L₃(x) + 4.0·L₄(x) + 5.0·L₅(x) +
6.0·L₆(x) + 7.0·L₇(x) + 8.0·L₈(x) + 9.0·L₉(x) + 10.0·L₁₀(x) + 11.0·L₁₁(x)c                 C   r/   r(   r*   r   Laguerrer   r2   r   r   r   test_laguerre_strK   r4   z/TestStrUnicodeSuperSubscripts.test_laguerre_strc                 C   L   t tddg}d}t|| t tjddgddgd}d}t|| d S )Nr   r!   u   0.0 + 1.0·xr"   domainu   0.0 + 1.0·(-3.0 + 2.0x)r*   r   r)   r   r   r,   r   r   r   r   test_polynomial_str_domainsV      
z9TestStrUnicodeSuperSubscripts.test_polynomial_str_domainsN)__name__
__module____qualname__pytestfixturer   markparametrizer   r-   r3   r7   r:   r=   rA   rG   r   r   r   r   r      sP    
























r   c                   @   r   )+TestStrAsciir   Tr   c                 C   r   Nasciir   r   r   r   r   	use_asciia   r   zTestStrAscii.use_asciir   r    1.0 + 2.0 x + 3.0 x**2r%   z"-1.0 + 0.0 x + 3.0 x**2 - 1.0 x**3r'   z}0.0 + 1.0 x + 2.0 x**2 + 3.0 x**3 + 4.0 x**4 + 5.0 x**5 + 6.0 x**6 +
7.0 x**7 + 8.0 x**8 + 9.0 x**9 + 10.0 x**10 + 11.0 x**11c                 C   r/   r(   rE   r2   r   r   r   r-   e   r4   z TestStrAscii.test_polynomial_str1.0 + 2.0 T_1(x) + 3.0 T_2(x)z+-1.0 + 0.0 T_1(x) + 3.0 T_2(x) - 1.0 T_3(x)z0.0 + 1.0 T_1(x) + 2.0 T_2(x) + 3.0 T_3(x) + 4.0 T_4(x) + 5.0 T_5(x) +
6.0 T_6(x) + 7.0 T_7(x) + 8.0 T_8(x) + 9.0 T_9(x) + 10.0 T_10(x) +
11.0 T_11(x)c                 C   r/   r(   r0   r2   r   r   r   r3   p   r>   zTestStrAscii.test_chebyshev_strz1.0 + 2.0 P_1(x) + 3.0 P_2(x)z+-1.0 + 0.0 P_1(x) + 3.0 P_2(x) - 1.0 P_3(x)z0.0 + 1.0 P_1(x) + 2.0 P_2(x) + 3.0 P_3(x) + 4.0 P_4(x) + 5.0 P_5(x) +
6.0 P_6(x) + 7.0 P_7(x) + 8.0 P_8(x) + 9.0 P_9(x) + 10.0 P_10(x) +
11.0 P_11(x)c                 C   r/   r(   r5   r2   r   r   r   r7   |   r>   zTestStrAscii.test_legendre_strz1.0 + 2.0 H_1(x) + 3.0 H_2(x)z+-1.0 + 0.0 H_1(x) + 3.0 H_2(x) - 1.0 H_3(x)z0.0 + 1.0 H_1(x) + 2.0 H_2(x) + 3.0 H_3(x) + 4.0 H_4(x) + 5.0 H_5(x) +
6.0 H_6(x) + 7.0 H_7(x) + 8.0 H_8(x) + 9.0 H_9(x) + 10.0 H_10(x) +
11.0 H_11(x)c                 C   r/   r(   r8   r2   r   r   r   r:      r>   zTestStrAscii.test_hermite_strz1.0 + 2.0 He_1(x) + 3.0 He_2(x)z.-1.0 + 0.0 He_1(x) + 3.0 He_2(x) - 1.0 He_3(x)z0.0 + 1.0 He_1(x) + 2.0 He_2(x) + 3.0 He_3(x) + 4.0 He_4(x) +
5.0 He_5(x) + 6.0 He_6(x) + 7.0 He_7(x) + 8.0 He_8(x) + 9.0 He_9(x) +
10.0 He_10(x) + 11.0 He_11(x)c                 C   r/   r(   r;   r2   r   r   r   r=      r>   zTestStrAscii.test_hermiteE_strz1.0 + 2.0 L_1(x) + 3.0 L_2(x)z+-1.0 + 0.0 L_1(x) + 3.0 L_2(x) - 1.0 L_3(x)z0.0 + 1.0 L_1(x) + 2.0 L_2(x) + 3.0 L_3(x) + 4.0 L_4(x) + 5.0 L_5(x) +
6.0 L_6(x) + 7.0 L_7(x) + 8.0 L_8(x) + 9.0 L_9(x) + 10.0 L_10(x) +
11.0 L_11(x)c                 C   r/   r(   r?   r2   r   r   r   rA      r>   zTestStrAscii.test_laguerre_strc                 C   rB   )Nr   r!   z0.0 + 1.0 xr"   rC   z0.0 + 1.0 (-3.0 + 2.0x)rE   rF   r   r   r   rG      rH   z(TestStrAscii.test_polynomial_str_domainsN)rI   rJ   rK   rL   rM   rS   rN   rO   r   r-   r3   r7   r:   r=   rA   rG   r   r   r   r   rP   _   sP    
























rP   c                   @   sX   e Zd Zejddddd Zdd Zdd	 Zd
d Zdd Z	ej
dddd ZdS )TestLinebreakingr   Tr   c                 C   r   rQ   r   r   r   r   r   rS      r   zTestLinebreaking.use_asciic                 C   2   t g d}ttt|d tt|d d S )N)Na rX   rX   rX   {   J   zJ12345678.0 + 12345678.0 x + 12345678.0 x**2 + 12345678.0 x**3 + 123.0 x**4r   r)   r   lenr*   r   r+   r   r   r   test_single_line_one_less   
   z*TestLinebreaking.test_single_line_one_lessc                 C   rW   )N)rX   rX   rX   rX   i  K   zK12345678.0 + 12345678.0 x + 12345678.0 x**2 + 12345678.0 x**3 +
1234.0 x**4r[   r]   r   r   r   test_num_chars_is_linewidth   r_   z,TestLinebreaking.test_num_chars_is_linewidthc                 C   s<   t g d}ttt|dd d tt|d d S )N)rX   rX   rX   rX   r!   rX   
r   rZ   zZ12345678.0 + 12345678.0 x + 12345678.0 x**2 + 12345678.0 x**3 + 1.0 x**4 +
12345678.0 x**5)r   r)   r   r\   r*   splitr]   r   r   r   6test_first_linebreak_multiline_one_less_than_linewidth   s   zGTestLinebreaking.test_first_linebreak_multiline_one_less_than_linewidthc                 C   s    t g d}tt|d d S )N)rX   rX   rX   g=
)gAr!   rX   z[12345678.0 + 12345678.0 x + 12345678.0 x**2 + 12345678.12 x**3 +
1.0 x**4 + 12345678.0 x**5)r   r)   r   r*   r]   r   r   r   +test_first_linebreak_multiline_on_linewidth   s   z<TestLinebreaking.test_first_linebreak_multiline_on_linewidth)lwr   ))r`   z0.0 + 10.0 x + 200.0 x**2 + 3000.0 x**3 + 40000.0 x**4 + 500000.0 x**5 +
600000.0 x**6 + 70000.0 x**7 + 8000.0 x**8 + 900.0 x**9)-   z0.0 + 10.0 x + 200.0 x**2 + 3000.0 x**3 +
40000.0 x**4 + 500000.0 x**5 +
600000.0 x**6 + 70000.0 x**7 + 8000.0 x**8 +
900.0 x**9)   z0.0 + 10.0 x + 200.0 x**2 + 3000.0 x**3 + 40000.0 x**4 + 500000.0 x**5 + 600000.0 x**6 + 70000.0 x**7 + 8000.0 x**8 + 900.0 x**9c                 C   sp   t g d}t|d" tt|| t|dD ]
}tt||k  qW d    d S 1 s1w   Y  d S )N)
r   
      i  i@  i  i'	 ip i@  i  )	linewidthrb   )r   r)   r   r   r*   rc   r   r\   )r   rf   r   r+   liner   r   r   test_linewidth_printoption   s   "z+TestLinebreaking.test_linewidth_printoptionN)rI   rJ   rK   rL   rM   rS   r^   ra   rd   re   rN   rO   rm   r   r   r   r   rV      s    
		
rV   c                  C   s   t g d} t g d}t d tt| d tt|d t d tt| d tt|d tt t d W d    d S 1 sJw   Y  d S )	Nr    rR   rT   rU   r   r$   r.   invalid_input)	r   r)   r1   r   r   r*   rL   raises
ValueError)r+   cr   r   r   test_set_default_printoptions   s   

"rr   c                  C   st   g d} t | }t t| td}t d tt|d tt|d t d tt|d tt|d d	S )
z%Test both numpy and built-in complex.)y              ?y      ?      ?y              @y      @        dtyper   u*   1j + (1+1j)·x - (2-2j)·x² + (3+0j)·x³u+   1j + (1+1j)·x + (-2+2j)·x² + (3+0j)·x³rR   z)1j + (1+1j) x - (2-2j) x**2 + (3+0j) x**3z*1j + (1+1j) x + (-2+2j) x**2 + (3+0j) x**3N)r   r)   r   objectr   r   r*   )coefsp1p2r   r   r   test_complex_coefficients  s   


ry   )rv   r   r!   r"   r#      rs   u   1/2 + 3/4·x      u   1 + 2·x + 5/7·x²z1.00z2.2u   1.00 + 2.2·x + 3·x²c                 C   s&   t | }t d tt|| d S r   r   r)   r   r   r*   rv   r   r+   r   r   r    test_numeric_object_coefficients  s   

r   )r!   r"   fu   1 + 2·x + f·x²u   1 + 2·x + [3, 4]·x²c                 C   s&   t | }t d tt|| dS )zK
    Test coef fallback for object arrays of non-numeric coefficients.
    r   Nr}   r~   r   r   r   #test_nonnumeric_object_coefficients$  s   

r   c                   @   s,   e Zd Zdd Zdd Zdd Zdd Zd	S )

TestFormatc                 C   ,   t d t g d}tt|dd d S )NrR   r!   r"   r   r&   r   u"   1.0 + 2.0·x + 0.0·x² - 1.0·x³r   r   r)   r   formatr]   r   r   r   test_format_unicode2  s   
zTestFormat.test_format_unicodec                 C   r   )Nr   r   rR   z!1.0 + 2.0 x + 0.0 x**2 - 1.0 x**3r   r]   r   r   r   test_format_ascii7  s
   

zTestFormat.test_format_asciic                 C   s6   t d t g d}tt|d t| d d S )NrR   r    rT   r   r]   r   r   r   test_empty_formatstr>  s   
zTestFormat.test_empty_formatstrc                 C   sH   t g d}tt t|d W d    d S 1 sw   Y  d S )Nr   z.2f)r   r)   rL   ro   rp   r   r]   r   r   r   test_bad_formatstrD  s   "zTestFormat.test_bad_formatstrN)rI   rJ   rK   r   r   r   r   r   r   r   r   r   1  s
    r   )r   r   u   1.0 + 2.0·z + 3.0·z²u!   1.0 + 2.0·T₁(z) + 3.0·T₂(z)u!   1.0 + 2.0·H₁(z) + 3.0·H₂(z)u#   1.0 + 2.0·He₁(z) + 3.0·He₂(z)u!   1.0 + 2.0·L₁(z) + 3.0·L₂(z)u!   1.0 + 2.0·P₁(z) + 3.0·P₂(z)c                 C   s"   | g ddd}t |d| d S )Nr    zsymbolr   )r   )r   r   r+   r   r   r   test_symbolJ  s   	r   c                   @   s<   e Zd Zdd Zdd Zdd Zdd Zd	d
 Zdd ZdS )TestReprc                 C   $   t tddg}d}t|| d S )Nr   r!   zFPolynomial([0., 1.], domain=[-1.,  1.], window=[-1.,  1.], symbol='x'))reprr   r)   r   rF   r   r   r   test_polynomial_reprX     zTestRepr.test_polynomial_reprc                 C   r   )Nr   r!   zEChebyshev([0., 1.], domain=[-1.,  1.], window=[-1.,  1.], symbol='x'))r   r   r1   r   rF   r   r   r   test_chebyshev_repr`  r   zTestRepr.test_chebyshev_reprc                 C   r   )Nr   r!   zDLegendre([0., 1.], domain=[-1.,  1.], window=[-1.,  1.], symbol='x'))r   r   r6   r   rF   r   r   r   test_legendre_reprh  r   zTestRepr.test_legendre_reprc                 C   r   )Nr   r!   zCHermite([0., 1.], domain=[-1.,  1.], window=[-1.,  1.], symbol='x'))r   r   r9   r   rF   r   r   r   test_hermite_reprp  r   zTestRepr.test_hermite_reprc                 C   r   )Nr   r!   zDHermiteE([0., 1.], domain=[-1.,  1.], window=[-1.,  1.], symbol='x'))r   r   r<   r   rF   r   r   r   test_hermiteE_reprx  r   zTestRepr.test_hermiteE_reprc                 C   r   )Nr   r!   z@Laguerre([0., 1.], domain=[0., 1.], window=[0., 1.], symbol='x'))r   r   r@   r   rF   r   r   r   test_laguerre_repr  r   zTestRepr.test_laguerre_reprN)	rI   rJ   rK   r   r   r   r   r   r   r   r   r   r   r   W  s    r   c                   @   sD   e Zd ZdZedd Zdd Zdd Zdd	 Zd
d Z	dd Z
dS )TestLatexReprz#Test the latex repr used by Jupyterc                 C   s"   ddd| _ z|  W | ` S | ` w )NFc                 S   s   t | S r(   )r*   )xparensr   r   r   <lambda>  s    z(TestLatexRepr.as_latex.<locals>.<lambda>)F)_repr_latex_scalar_repr_latex_)objr   r   r   as_latex  s   zTestLatexRepr.as_latexc                 C   s   t g d}t| |d t jg dddgd}t| |d t jg dddgd}t| |d	 t jg dd
dgd}t| |d d S )Nr    z%$x \mapsto 1.0 + 2.0\,x + 3.0\,x^{2}$r   rC   zK$x \mapsto 1.0 + 2.0\,\left(1.0 + x\right) + 3.0\,\left(1.0 + x\right)^{2}$            ?zE$x \mapsto 1.0 + 2.0\,\left(2.0x\right) + 3.0\,\left(2.0x\right)^{2}$r&   zQ$x \mapsto 1.0 + 2.0\,\left(1.0 + 2.0x\right) + 3.0\,\left(1.0 + 2.0x\right)^{2}$r   r)   r   r   r]   r   r   r   test_simple_polynomial  s    



z$TestLatexRepr.test_simple_polynomialc                 C   sH   t g d}t| |d t jg dddgd}t| |d d S )Nr    z?$x \mapsto 1.0\,{T}_{0}(x) + 2.0\,{T}_{1}(x) + 3.0\,{T}_{2}(x)$r&   r   rC   zZ$x \mapsto 1.0\,{T}_{0}(1.0 + 2.0x) + 2.0\,{T}_{1}(1.0 + 2.0x) + 3.0\,{T}_{2}(1.0 + 2.0x)$)r   r1   r   r   r]   r   r   r   test_basis_func  s   

zTestLatexRepr.test_basis_funcc                 C   s"   t g d}t| |d d S )Nr    zB$x \mapsto 1.0\,{He}_{0}(x) + 2.0\,{He}_{1}(x) + 3.0\,{He}_{2}(x)$)r   r<   r   r   r]   r   r   r   test_multichar_basis_func  s   
z'TestLatexRepr.test_multichar_basis_funcc                 C   s   t jg ddd}t| |d t jg dddgdd}t| |d t jg dd	d
gdd}t| |d t jg dddgdd}t| |d d S )Nr    r   r   z%$z \mapsto 1.0 + 2.0\,z + 3.0\,z^{2}$r   r   )rD   r   zK$z \mapsto 1.0 + 2.0\,\left(1.0 + z\right) + 3.0\,\left(1.0 + z\right)^{2}$r   r   zE$z \mapsto 1.0 + 2.0\,\left(2.0z\right) + 3.0\,\left(2.0z\right)^{2}$r&   zQ$z \mapsto 1.0 + 2.0\,\left(1.0 + 2.0z\right) + 3.0\,\left(1.0 + 2.0z\right)^{2}$r   r]   r   r   r   test_symbol_basic  s&   
		zTestLatexRepr.test_symbol_basicc                 C   s4   t tddtdg}t|}t| |d d S )Nr!   r"   z$x \mapsto 1/2 + 1\,x$)r   r	   r   r)   r   r   )r   rv   r+   r   r   r   r     s   
z.TestLatexRepr.test_numeric_object_coefficientsN)rI   rJ   rK   __doc__staticmethodr   r   r   r   r   r   r   r   r   r   r     s    

	$r   )z"1.0 + (1.0e-01) x + (1.0e-02) x**2z"1.2 + (1.2e-01) x + (1.2e-02) x**2z11.23 + 0.12 x + (1.23e-02) x**2 + (1.23e-03) x**3z51.235 + 0.123 x + (1.235e-02) x**2 + (1.235e-03) x**3zG1.2346 + 0.1235 x + 0.0123 x**2 + (1.2346e-03) x**3 + (1.2346e-04) x**4zL1.23457 + 0.12346 x + 0.01235 x**2 + (1.23457e-03) x**3 + (1.23457e-04) x**4za1.234568 + 0.123457 x + 0.012346 x**2 + 0.001235 x**3 + (1.234568e-04) x**4 + (1.234568e-05) x**5zg1.2345679 + 0.1234568 x + 0.0123457 x**2 + 0.0012346 x**3 + (1.2345679e-04) x**4 + (1.2345679e-05) x**5c                   @   sN   e Zd ZdZejddddd Zdd Zd	d
 Zdd Z	dd Z
dd ZdS )TestPrintOptionsz
    Test the output is properly configured via printoptions.
    The exponential notation is enabled automatically when the values
    are too small or too large.
    r   Tr   c                 C   r   rQ   r   r   r   r   r   rS     r   zTestPrintOptions.use_asciic                 C   sZ   t g d}tt|d tdd tt|d W d    d S 1 s&w   Y  d S )Nr   g$I$I?gI$Ir?kAgm۶mAzC0.5 + 0.14285714 x + 14285714.28571429 x**2 + (1.42857143e+08) x**3r#   	precisionz40.5 + 0.143 x + 14285714.286 x**2 + (1.429e+08) x**3r   r)   r   r*   r   r]   r   r   r   test_str  s
   "zTestPrintOptions.test_strc                 C   sZ   t g d}t| d tdd t| d W d    d S 1 s&w   Y  d S )Nr   zp$x \mapsto \text{0.5} + \text{0.14285714}\,x + \text{14285714.28571429}\,x^{2} + \text{(1.42857143e+08)}\,x^{3}$r#   r   za$x \mapsto \text{0.5} + \text{0.143}\,x + \text{14285714.286}\,x^{2} + \text{(1.429e+08)}\,x^{3}$)r   r)   r   r   r   r]   r   r   r   
test_latex  s   "zTestPrintOptions.test_latexc                 C   s   t dg}tt|d tdd tt|d W d    n1 s$w   Y  tddd tt|d W d    d S 1 sBw   Y  d S )	Nr   z0.5fixed)	floatmodez
0.50000000rz   )r   r   z0.5000r   r]   r   r   r   
test_fixed  s   "zTestPrintOptions.test_fixedc              	   C   sx   t tD ]5\}}t|d$ tdd t|d d D }t|dd|ks*J W d    n1 s4w   Y  qd S )Nr   c                 S   s   g | ]	}d d|   qS )gރB?ri   r   ).0ir   r   r   
<listcomp>  s    z7TestPrintOptions.test_switch_to_exp.<locals>.<listcomp>r"   r#   rb    )	enumerateSWITCH_TO_EXPr   r   r)   ranger*   replace)r   r   sr+   r   r   r   test_switch_to_exp  s   
z#TestPrintOptions.test_switch_to_expc                 C   s   t ttg}t|dksJ | dksJ tddd t|dks&J | dks.J W d    d S 1 s9w   Y  d S )Nznan + inf xz&$x \mapsto \text{nan} + \text{inf}\,x$NANINF)nanstrinfstrzNAN + INF xz&$x \mapsto \text{NAN} + \text{INF}\,x$)r   r)   r   r   r*   r   r   r]   r   r   r   test_non_finite!  s   
"z TestPrintOptions.test_non_finiteN)rI   rJ   rK   r   rL   rM   rS   r   r   r   r   r   r   r   r   r   r     s    
	
r   )(mathr   r   rL   numpy._corer   r   r   numpy.polynomial
polynomialr   numpy.testingr   r   	fractionsr	   decimalr
   r   rP   rV   rr   ry   rN   rO   ru   r   r   r   r)   r1   r9   r<   r@   r6   r   r   r   r   r   r   r   r   r   <module>   sV    SVB

	
2Z