§
    ÇÁ³gü  ã                   óx  — d Z ddlZddlmZ ddlmZ ddlmZm	Z	m
Z
  G d„ d¦  «        Z G d„ d¦  «        Zej                             d	 ej        g d
¢d¬¦  «         eg d
¢¦  «        f¦  «         G d„ d¦  «        ¦   «         Z G d„ d¦  «        Z G d„ d¦  «        Z G d„ d¦  «        Zd„ Zd„ Zd„ Zd„ Zd„ ZdS )zE
Tests related to the ``symbol`` attribute of the ABCPolyBase class.
é    N)Úarray)Úassert_equalÚassert_raisesÚassert_c                   óÔ   — e Zd ZdZg d¢Zd„ Zej                             dde	fde	fde
fde
ff¦  «        d	„ ¦   «         Zej                             d
d¦  «        d„ ¦   «         Zd„ Zd„ ZdS )ÚTestInitz5
    Test polynomial creation with symbol kwarg.
    ©é   é   é   c                 ób   — t          j        | j        ¦  «        }t          |j        d¦  «         d S )NÚx©ÚpolyÚ
PolynomialÚcr   Úsymbol©ÚselfÚps     ú`/var/www/html/mpstechhub/venv/lib/python3.11/site-packages/numpy/polynomial/tests/test_symbol.pyÚtest_default_symbolzTestInit.test_default_symbol   s+   € ÝŒO˜DœFÑ#Ô#ˆÝ�Q”X˜sÑ#Ô#Ð#Ð#Ð#ó    )Ú	bad_inputÚ	exceptionÚ Ú3Nr
   c                 ó–   — t          j        |¦  «        5  t          j        | j        |¬¦  «        }d d d ¦  «         d S # 1 swxY w Y   d S )N©r   )ÚpytestÚraisesr   r   r   )r   r   r   r   s       r   Útest_symbol_bad_inputzTestInit.test_symbol_bad_input   sŽ   € õ Œ]˜9Ñ%Ô%ð 	:ð 	:Ý” ¤¨yÐ9Ñ9Ô9ˆAð	:ð 	:ð 	:ñ 	:ô 	:ð 	:ð 	:ð 	:ð 	:ð 	:ð 	:ð 	:øøøð 	:ð 	:ð 	:ð 	:ð 	:ð 	:s   •>¾AÁAr   )r   Úx_1ÚAÚxyzu   Î²c                 óf   — t          j        | j        |¬¦  «        }t          |j        |¦  «         dS )zF
        Values for symbol that should pass input validation.
        r   Nr   )r   r   r   s      r   Útest_valid_symbolszTestInit.test_valid_symbols   s2   € õ ŒO˜DœF¨6Ð2Ñ2Ô2ˆÝ�Q”X˜vÑ&Ô&Ð&Ð&Ð&r   c                 ó®   — t          j        | j        d¬¦  «        }t          j        t
          ¦  «        5  d|_        ddd¦  «         dS # 1 swxY w Y   dS )z2
        'symbol' attribute is read only.
        r   r   ÚzN)r   r   r   r    r!   ÚAttributeErrorr   r   s     r   Útest_propertyzTestInit.test_property-   s•   € õ ŒO˜DœF¨3Ð/Ñ/Ô/ˆÝŒ]�>Ñ*Ô*ð 	ð 	ØˆAŒHð	ð 	ð 	ñ 	ô 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	øøøð 	ð 	ð 	ð 	ð 	ð 	s   µA
Á
AÁAc                 óœ   — t          j        | j        d¬¦  «        }t          j        |j        d¬¦  «        }t	          |j        d¦  «         d S )NÚyr   Út)r   r   r   Úcoefr   r   )r   r   Úpts      r   Útest_change_symbolzTestInit.test_change_symbol5   sF   € ÝŒO˜DœF¨3Ð/Ñ/Ô/ˆåŒ_˜QœV¨CÐ0Ñ0Ô0ˆÝ�R”Y Ñ$Ô$Ð$Ð$Ð$r   )Ú__name__Ú
__module__Ú__qualname__Ú__doc__r   r   r    ÚmarkÚparametrizeÚ
ValueErrorÚ	TypeErrorr"   r'   r+   r1   © r   r   r   r      sä   € € € € € ðð ð 	ˆ	ˆ	€Að$ð $ð $ð „[×ÒÐ7Ø	ˆZÐØ	ˆjÐØ	ˆyÐØ	
ˆIˆð	:ñ ô ð:ð :ñô ð:ð „[×Ò˜Xð (ñ ô ð'ð 'ñô ð'ðð ð ð%ð %ð %ð %ð %r   r   c                   óN   — e Zd Z ej        g d¢d¬¦  «        Zd„ Zd„ Zd„ Zd„ Z	dS )	ÚTestUnaryOperatorsr	   r)   r   c                 ó@   — | j          }t          |j        d¦  «         d S ©Nr)   ©r   r   r   )r   Úns     r   Útest_negzTestUnaryOperators.test_neg?   s#   € ØŒVˆGˆÝ�Q”X˜sÑ#Ô#Ð#Ð#Ð#r   c                 óD   — | j         dz  }t          |j        d¦  «         d S ©Né
   r)   r?   ©r   Úouts     r   Útest_scalarmulz!TestUnaryOperators.test_scalarmulC   s%   € ØŒf�r‰kˆÝ�S”Z Ñ%Ô%Ð%Ð%Ð%r   c                 óD   — d| j         z  }t          |j        d¦  «         d S rC   r?   rE   s     r   Útest_rscalarmulz"TestUnaryOperators.test_rscalarmulG   s%   € Ø�4”6‰kˆÝ�S”Z Ñ%Ô%Ð%Ð%Ð%r   c                 óD   — | j         dz  }t          |j        d¦  «         d S )Nr   r)   r?   rE   s     r   Útest_powzTestUnaryOperators.test_powK   s%   € ØŒf˜‰kˆÝ�S”Z Ñ%Ô%Ð%Ð%Ð%r   N)
r2   r3   r4   r   r   r   rA   rG   rI   rK   r:   r   r   r<   r<   <   sj   € € € € € ØˆŒ˜	˜	˜	¨#Ð.Ñ.Ô.€Að$ð $ð $ð&ð &ð &ð&ð &ð &ð&ð &ð &ð &ð &r   r<   Úrhs©é   é   é   r)   r   c                   ój   — e Zd ZdZ ej        g d¢d¬¦  «        Zd„ Zd„ Zd„ Z	d„ Z
d	„ Zd
„ Zd„ Zd„ ZdS )ÚTestBinaryOperatorsSameSymbolzc
    Ensure symbol is preserved for numeric operations on polynomials with
    the same symbol
    r	   r)   r   c                 óD   — | j         |z   }t          |j        d¦  «         d S r>   r?   ©r   rL   rF   s      r   Útest_addz&TestBinaryOperatorsSameSymbol.test_add^   ó%   € ØŒf�s‰lˆÝ�S”Z Ñ%Ô%Ð%Ð%Ð%r   c                 óD   — | j         |z
  }t          |j        d¦  «         d S r>   r?   rT   s      r   Útest_subz&TestBinaryOperatorsSameSymbol.test_subb   rV   r   c                 óD   — | j         |z  }t          |j        d¦  «         d S r>   r?   rT   s      r   Útest_polymulz*TestBinaryOperatorsSameSymbol.test_polymulf   rV   r   c                 ó`   — t          | j        |¦  «        D ]}t          |j        d¦  «         Œd S r>   ©Údivmodr   r   r   rT   s      r   Útest_divmodz)TestBinaryOperatorsSameSymbol.test_divmodj   s<   € Ý˜$œ& #Ñ&Ô&ð 	*ð 	*ˆCÝ˜œ SÑ)Ô)Ð)Ð)ð	*ð 	*r   c                 óD   — || j         z   }t          |j        d¦  «         d S r>   r?   rT   s      r   Ú	test_raddz'TestBinaryOperatorsSameSymbol.test_raddn   ó%   € Ø�D”F‰lˆÝ�S”Z Ñ%Ô%Ð%Ð%Ð%r   c                 óD   — || j         z
  }t          |j        d¦  «         d S r>   r?   rT   s      r   Ú	test_rsubz'TestBinaryOperatorsSameSymbol.test_rsubr   ra   r   c                 óD   — || j         z  }t          |j        d¦  «         d S r>   r?   rT   s      r   Ú	test_rmulz'TestBinaryOperatorsSameSymbol.test_rmulv   ra   r   c                 ó`   — t          || j        ¦  «        D ]}t          |j        d¦  «         Œd S r>   r\   rT   s      r   Útest_rdivmodz*TestBinaryOperatorsSameSymbol.test_rdivmodz   s<   € Ý˜#˜tœvÑ&Ô&ð 	*ð 	*ˆCÝ˜œ SÑ)Ô)Ð)Ð)ð	*ð 	*r   N)r2   r3   r4   r5   r   r   r   rU   rX   rZ   r^   r`   rc   re   rg   r:   r   r   rR   rR   P   s²   € € € € € ðð ð 	ˆŒ˜	˜	˜	¨#Ð.Ñ.Ô.€Að&ð &ð &ð&ð &ð &ð&ð &ð &ð*ð *ð *ð&ð &ð &ð&ð &ð &ð&ð &ð &ð*ð *ð *ð *ð *r   rR   c                   óæ   — e Zd Z ej        g d¢d¬¦  «        Z ej        g d¢d¬¦  «        Zej        ej        ej	        ej
        ej        fZej                             de¦  «        d„ ¦   «         ZdS )	Ú"TestBinaryOperatorsDifferentSymbolr	   r   r   rM   r-   Úfc                 ó<   — t          t          || j        ¦  «         d S )N)r   r8   Úother)r   rj   s     r   Útest_binops_failsz4TestBinaryOperatorsDifferentSymbol.test_binops_fails„   s   € å•j ! T¤ZÑ0Ô0Ð0Ð0Ð0r   N)r2   r3   r4   r   r   r   rl   Ú__add__Ú__sub__Ú__mul__Ú__floordiv__Ú__mod__Úopsr    r6   r7   rm   r:   r   r   ri   ri      sŽ   € € € € € ØˆŒ˜	˜	˜	¨#Ð.Ñ.Ô.€AØˆDŒO˜I˜I˜I¨cÐ2Ñ2Ô2€EØŒ9�a”i ¤¨A¬N¸A¼IÐ
F€Cà„[×Ò˜S #Ñ&Ô&ð1ð 1ñ 'Ô&ð1ð 1ð 1r   ri   c                   óB   — e Zd Z ej        g d¢d¬¦  «        Zd„ Zd„ ZdS )ÚTestEqualityr	   r   r   c                 óf   — t          j        g d¢d¬¦  «        }t          | j        |k    ¦  «         d S )Nr	   r   r   ©r   r   r   r   ©r   rl   s     r   Útest_eqzTestEquality.test_eqŒ   s4   € Ý” 	 	 	°#Ð6Ñ6Ô6ˆÝ�”˜%’Ñ Ô Ð Ð Ð r   c                 óh   — t          j        g d¢d¬¦  «        }t          | j        |k     ¦  «         d S )Nr	   r-   r   rw   rx   s     r   Útest_neqzTestEquality.test_neq�   s7   € Ý” 	 	 	°#Ð6Ñ6Ô6ˆÝ�D”F˜e’OÐ#Ñ$Ô$Ð$Ð$Ð$r   N)r2   r3   r4   r   r   r   ry   r{   r:   r   r   ru   ru   ‰   sL   € € € € € ØˆŒ˜	˜	˜	¨#Ð.Ñ.Ô.€Að!ð !ð !ð%ð %ð %ð %ð %r   ru   c                   óÄ   — e Zd ZdZ ej        g d¢d¬¦  «        Zd„ Zd„ Zd„ Z	e
j                             dd	d
dgidd
dgidej        if¦  «        d„ ¦   «         Zd„ Zd„ ZdS )ÚTestExtraMethodszJ
    Test other methods for manipulating/creating polynomial objects.
    )r
   r   r   r   r)   r   c                 ób   — | j                              ¦   «         }t          |j        d¦  «         d S r>   )r   Úcopyr   r   rx   s     r   Ú	test_copyzTestExtraMethods.test_copy›   ó)   € Ø”—’‘”ˆÝ�U”\ 3Ñ'Ô'Ð'Ð'Ð'r   c                 ób   — | j                              ¦   «         }t          |j        d¦  «         d S r>   )r   Útrimr   r   rx   s     r   Ú	test_trimzTestExtraMethods.test_trimŸ   r�   r   c                 ód   — | j                              d¦  «        }t          |j        d¦  «         d S )Nr   r)   )r   Útruncater   r   rx   s     r   Útest_truncatezTestExtraMethods.test_truncate£   s-   € Ø”—’ Ñ"Ô"ˆÝ�U”\ 3Ñ'Ô'Ð'Ð'Ð'r   ÚkwargÚdomainiöÿÿÿrD   ÚwindowÚkindc                 óT   —  | j         j        di |¤Ž}t          |j        d¦  «         d S )Nr)   r:   )r   Úconvertr   r   )r   rˆ   rl   s      r   Útest_convertzTestExtraMethods.test_convert§   s5   € ð �””Ð'Ð' Ð'Ð'ˆÝ�U”\ 3Ñ'Ô'Ð'Ð'Ð'r   c                 ób   — | j                              ¦   «         }t          |j        d¦  «         d S r>   )r   Úintegr   r   rx   s     r   Ú
test_integzTestExtraMethods.test_integ°   ó)   € Ø”—’‘”ˆÝ�U”\ 3Ñ'Ô'Ð'Ð'Ð'r   c                 ób   — | j                              ¦   «         }t          |j        d¦  «         d S r>   )r   Úderivr   r   rx   s     r   Ú
test_derivzTestExtraMethods.test_deriv´   r’   r   N)r2   r3   r4   r5   r   r   r   r€   r„   r‡   r    r6   r7   Ú	ChebyshevrŽ   r‘   r•   r:   r   r   r}   r}   •   sÞ   € € € € € ðð ð 	ˆŒ˜˜˜¨SÐ1Ñ1Ô1€Að(ð (ð (ð(ð (ð (ð(ð (ð (ð „[×Ò˜WØ	�C˜�9ÐØ	�C˜�9ÐØ	�”Ð ð'ñ ô ð
(ð (ñô ð
(ð(ð (ð (ð(ð (ð (ð (ð (r   r}   c                  ó–   — t          j        g d¢d¬¦  «        } t          j        g d¢d¬¦  «        } | |¦  «        }|j        dk    sJ ‚d S )N)r   r   r
   r.   r   )rO   r
   r   éÿÿÿÿu   Î»_1)r   r   r   )r   ÚqÚrs      r   Útest_compositionr›   ¹   sX   € ÝŒ˜	˜	˜	¨#Ð.Ñ.Ô.€AÝŒ˜˜˜¨fÐ5Ñ5Ô5€AØ	ˆˆ!‰Œ€AØŒ8�vÒÐÐÐÐÐr   c                  ó¢   — t          d¦  «        fdz  \  } }t          j                             | |dd¬¦  «        }t	          |j        d¦  «         d S )NrD   r   r
   r)   )Údegr   )Úranger   r   Úfitr   r   )r   r-   r   s      r   Útest_fitr    Å   sM   € Ý�"‰IŒIˆ<˜‰>�D€A€qÝŒ×Ò˜A˜q a°ÐÑ4Ô4€AÝ�”˜3ÑÔÐÐÐr   c                  óz   — ddg} t           j                             | d¬¦  «        }t          |j        d¦  «         d S )Néþÿÿÿr   r)   r   )r   r   Ú	fromrootsr   r   )Úrootsr   s     r   Útest_froomrootsr¥   Ë   s=   € Ø�ˆG€EÝŒ×!Ò! %°Ð!Ñ4Ô4€AÝ�”˜3ÑÔÐÐÐr   c                  ó|   — t           j                             ddgddgd¬¦  «        } t          | j        d¦  «         d S )Nr˜   r
   rO   é   r)   )r‰   rŠ   r   )r   r   Úidentityr   r   ©r   s    r   Útest_identityrª   Ñ   s>   € ÝŒ× Ò ¨¨Q¨¸¸B¸ÈÐ ÑLÔL€AÝ�”˜3ÑÔÐÐÐr   c                  ór   — t           j                             dd¬¦  «        } t          | j        d¦  «         d S )Nr   r)   r   )r   r   Úbasisr   r   r©   s    r   Ú
test_basisr­   Ö   s4   € ÝŒ×Ò˜a¨ÐÑ,Ô,€AÝ�”˜3ÑÔÐÐÐr   )r5   r    Únumpy.polynomialÚ
polynomialr   Únumpy._corer   Únumpy.testingr   r   r   r   r<   r6   r7   r   rR   ri   ru   r}   r›   r    r¥   rª   r­   r:   r   r   ú<module>r²      sö  ððð ð €€€Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø >Ð >Ð >Ð >Ð >Ð >Ð >Ð >Ð >Ð >ð.%ð .%ð .%ð .%ð .%ñ .%ô .%ð .%ðb&ð &ð &ð &ð &ñ &ô &ð &ð( „×ÒØ	àˆŒ˜	˜	˜	¨#Ð.Ñ.Ô.ØˆˆiˆiˆiÑÔðñô ð%*ð %*ð %*ð %*ð %*ñ %*ô %*ñô ð%*ðP1ð 1ð 1ð 1ð 1ñ 1ô 1ð 1ð	%ð 	%ð 	%ð 	%ð 	%ñ 	%ô 	%ð 	%ð!(ð !(ð !(ð !(ð !(ñ !(ô !(ð !(ðHð ð ð ð  ð  ð ð  ð  ð ð  ð  ð
 ð  ð  ð  ð  r   