o
    V=ºi0?  ã                
   @   sb  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G d&d'„ d'ƒZG d(d)„ d)ƒZdS )*é    N)ÚarrayÚarangeÚprintoptions)Úassert_equalÚassert_)ÚFraction)ÚDecimalc                   @   óZ  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(S ))ÚTestStrUnicodeSuperSubscriptsÚclassT©ZscopeZautousec                 C   ó   t  d¡ d S ©NÚunicode©ÚpolyÚset_default_printstyle©Úself© r   újC:\Users\psant\Downloads\PAF backend\school\venv\Lib\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   ó   t t |¡ƒ}t||ƒ d S ©N©Ústrr   Ú
Polynomialr   ©r   r   r   Úresr   r   r   Útest_polynomial_str   ó   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   r$   r%   ©r'   r   Ú	Chebyshevr   r)   r   r   r   Útest_chebyshev_str   r,   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   r)   r   r   r   Útest_legendre_str'   r,   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   r)   r   r   r   Útest_hermite_str2   r,   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   r)   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   r)   r   r   r   Útest_laguerre_strI   r,   z/TestStrUnicodeSuperSubscripts.test_laguerre_strN)Ú__name__Ú
__module__Ú__qualname__ÚpytestÚfixturer   ÚmarkÚparametrizer   r+   r0   r3   r6   r9   r=   r   r   r   r   r
      sN    



ý



ý



ý



ý



ý



ýr
   c                   @   r	   ))ÚTestStrAsciir   Tr   c                 C   r   ©NÚasciir   r   r   r   r   Ú	use_asciiW   r   zTestStrAscii.use_asciir   r   ú1.0 + 2.0 x**1 + 3.0 x**2r!   z%-1.0 + 0.0 x**1 + 3.0 x**2 - 1.0 x**3r#   z€0.0 + 1.0 x**1 + 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%   r&   r)   r   r   r   r+   [   r,   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)z–0.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%   r.   r)   r   r   r   r0   f   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)z–0.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%   r1   r)   r   r   r   r3   r   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)z–0.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%   r4   r)   r   r   r   r6   ~   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)z¡0.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%   r7   r)   r   r   r   r9   Š   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)z–0.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;   r)   r   r   r   r=   –   r:   zTestStrAscii.test_laguerre_strN)r>   r?   r@   rA   rB   rH   rC   rD   r   r+   r0   r3   r6   r9   r=   r   r   r   r   rE   U   sN    



ý



ý



ý



ý



ý



ýrE   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   rF   r   r   r   r   r   rH   ¥   r   zTestLinebreaking.use_asciic                 C   ó2   t  g d¢¡}ttt|ƒƒdƒ tt|ƒdƒ d S )N)éÍ[rM   rM   éÒ  r   éJ   zJ123456789.0 + 123456789.0 x**1 + 123456789.0 x**2 + 1234.0 x**3 + 1.0 x**4©r   r(   r   Úlenr'   ©r   Úpr   r   r   Útest_single_line_one_less©   ó
   ÿz*TestLinebreaking.test_single_line_one_lessc                 C   rL   )N)rM   rM   rM   rN   é
   éK   zK123456789.0 + 123456789.0 x**1 + 123456789.0 x**2 + 1234.0 x**3 +
10.0 x**4rP   rR   r   r   r   Útest_num_chars_is_linewidth²   rU   z,TestLinebreaking.test_num_chars_is_linewidthc                 C   s<   t  g d¢¡}ttt|ƒ d¡d ƒdƒ tt|ƒdƒ d S )N)rM   rM   rM   r#   r   rM   Ú
r   rO   z[123456789.0 + 123456789.0 x**1 + 123456789.0 x**2 + 12.0 x**3 + 1.0 x**4 +
123456789.0 x**5)r   r(   r   rQ   r'   ÚsplitrR   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)rM   rM   rM   é{   r   rM   z\123456789.0 + 123456789.0 x**1 + 123456789.0 x**2 + 123.0 x**3 +
1.0 x**4 + 123456789.0 x**5)r   r(   r   r'   rR   r   r   r   Ú+test_first_linebreak_multiline_on_linewidthÆ   s   ÿÿz<TestLinebreaking.test_first_linebreak_multiline_on_linewidth)Úlwr   ))rW   zƒ0.0 + 10.0 x**1 + 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)é-   zƒ0.0 + 10.0 x**1 + 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)é„   zƒ0.0 + 10.0 x**1 + 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   rV   éÈ   i¸  i@œ  i ¡ iÀ'	 ip i@  i„  )Z	linewidthrY   )r   r(   r   r   r'   rZ   r   rQ   )r   r^   r   rS   Úliner   r   r   Útest_linewidth_printoptionÐ   s   ÿÿ"þz+TestLinebreaking.test_linewidth_printoptionN)r>   r?   r@   rA   rB   rH   rT   rX   r[   r]   rC   rD   rc   r   r   r   r   rK   £   s    
		
rK   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   rG   rI   rJ   r   r    r-   Zinvalid_input)	r   r(   r/   r   r   r'   rA   ÚraisesÚ
ValueError)rS   Úcr   r   r   Útest_set_default_printoptionså   s   

"ÿrg   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      @        ©Zdtyper   u,   1j + (1+1j)Â·xÂ¹ - (2-2j)Â·xÂ² + (3+0j)Â·xÂ³u-   1j + (1+1j)Â·xÂ¹ + (-2+2j)Â·xÂ² + (3+0j)Â·xÂ³rG   z,1j + (1+1j) x**1 - (2-2j) x**2 + (3+0j) x**3z-1j + (1+1j) x**1 + (-2+2j) x**2 + (3+0j) x**3N)r   r(   r   Úobjectr   r   r'   )ÚcoefsÚp1Úp2r   r   r   Útest_complex_coefficientsò   s   


rm   )rj   r   r   r   r   é   rh   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'   ©rj   r   rS   r   r   r   Ú test_numeric_object_coefficients  s   

rs   )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   Nrq   rr   r   r   r   Ú#test_nonnumeric_object_coefficients  s   

ru   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 )NrG   ©r   r   r   r"   r   u$   1.0 + 2.0Â·xÂ¹ + 0.0Â·xÂ² - 1.0Â·xÂ³©r   r   r(   r   ÚformatrR   r   r   r   Útest_format_unicode   s   
zTestFormat.test_format_unicodec                 C   rw   )Nr   rx   rG   z$1.0 + 2.0 x**1 + 0.0 x**2 - 1.0 x**3ry   rR   r   r   r   Útest_format_ascii%  s
   

ÿzTestFormat.test_format_asciic                 C   s6   t  d¡ t  g d¢¡}tt|ƒdƒ t|› dƒ d S )NrG   r   rI   ry   rR   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 )Nrx   z.2f)r   r(   rA   rd   re   rz   rR   r   r   r   Útest_bad_formatstr2  s   "ÿzTestFormat.test_bad_formatstrN)r>   r?   r@   r{   r|   r}   r~   r   r   r   r   rv     s
    rv   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   z6Polynomial([0., 1.], domain=[-1,  1], window=[-1,  1]))Úreprr   r(   r   ©r   r*   r   r   r   r   r+   9  ó   zTestRepr.test_polynomial_strc                 C   r€   )Nr   r   z5Chebyshev([0., 1.], domain=[-1,  1], window=[-1,  1]))r�   r   r/   r   r‚   r   r   r   r0   >  rƒ   zTestRepr.test_chebyshev_strc                 C   r€   )Nr   r   z4Legendre([0., 1.], domain=[-1,  1], window=[-1,  1]))r�   r   r2   r   r‚   r   r   r   Útest_legendre_reprC  rƒ   zTestRepr.test_legendre_reprc                 C   r€   )Nr   r   z3Hermite([0., 1.], domain=[-1,  1], window=[-1,  1]))r�   r   r5   r   r‚   r   r   r   Útest_hermite_reprH  rƒ   zTestRepr.test_hermite_reprc                 C   r€   )Nr   r   z4HermiteE([0., 1.], domain=[-1,  1], window=[-1,  1]))r�   r   r8   r   r‚   r   r   r   Útest_hermiteE_reprM  rƒ   zTestRepr.test_hermiteE_reprc                 C   r€   )Nr   r   z0Laguerre([0., 1.], domain=[0, 1], window=[0, 1]))r�   r   r<   r   r‚   r   r   r   Útest_laguerre_reprR  rƒ   zTestRepr.test_laguerre_reprN)	r>   r?   r@   r+   r0   r„   r…   r†   r‡   r   r   r   r   r   8  s    r   c                   @   s0   e Zd Z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„ |_ z| ¡ W |` S |` w )Nc                 S   s   t | ƒS r%   )r'   )Úxr   r   r   Ú<lambda>_  s    z(TestLatexRepr.as_latex.<locals>.<lambda>)Z_repr_latex_scalarZ_repr_latex_)r   Ú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   ©ÚdomainzK$x \mapsto 1.0 + 2.0\,\left(1.0 + x\right) + 3.0\,\left(1.0 + x\right)^{2}$g      à¿g      à?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Œ   rR   r   r   r   Útest_simple_polynomiale  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   rŽ   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   r/   r   rŒ   rR   r   r   r   Útest_basis_funcz  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   r8   r   rŒ   rR   r   r   r   Útest_multichar_basis_funcƒ  s   
ÿz'TestLatexRepr.test_multichar_basis_funcN)r>   r?   r@   Ú__doc__rŒ   r�   r‘   r’   r   r   r   r   rˆ   X  s    
	rˆ   )rA   Z
numpy.corer   r   r   Znumpy.polynomialZ
polynomialr   Znumpy.testingr   r   Z	fractionsr   Údecimalr   r
   rE   rK   rg   rm   rC   rD   ri   rs   ru   rv   r   rˆ   r   r   r   r   Ú<module>   s>    JNBÿÿÿù
þ
	 