
    H/Ph                     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     b/var/www/html/test/jupyter/venv/lib/python3.11/site-packages/numpy/polynomial/tests/test_symbol.pytest_default_symbolzTestInit.test_default_symbol   s+    ODF##QXs#####    )	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9A	: 	: 	: 	: 	: 	: 	: 	: 	: 	: 	: 	: 	: 	: 	: 	: 	: 	: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     ODF6222QXv&&&&&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     ODF3///]>** 	 	AH	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	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    ODF3///_QVC000RY$$$$$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#    VGQXs#####r   c                 D    | j         dz  }t          |j        d           d S N
   r)   r?   r   outs     r   test_scalarmulz!TestUnaryOperators.test_scalarmulC   s%    frkSZ%%%%%r   c                 D    d| j         z  }t          |j        d           d S rC   r?   rE   s     r   test_rscalarmulz"TestUnaryOperators.test_rscalarmulG   s%    46kSZ%%%%%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SZ%%%%%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^   %    fslSZ%%%%%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   %    DFlSZ%%%%%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<    #tv&& 	* 	*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!TZ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DOIIIc222E9aiANAI
FC[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DFeO#$$$$$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domainirD   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1A( ( (( ( (( ( ( [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5A	!A8v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    "II<>DAqAqa44A3r   c                  z    ddg} t           j                            | d          }t          |j        d           d S )Nr   r)   r   )r   r   	fromrootsr   r   )rootsr   s     r   test_froomrootsr      s=    GE!!%!44A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LA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& & & & & & & &( 				#...iii %* %* %* %* %* %* %* %*P1 1 1 1 1 1 1 1	% 	% 	% 	% 	% 	% 	% 	%!( !( !( !( !( !( !( !(H                 
         r   