
    G/Phw.                         d Z ddlZddlZddlZddlZddlmZmZm	Z	m
Z
mZmZmZ d Zd Zd Zd Zd Zd	 Zd
 Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Z  G d d          Z!d Z"d Z#dS )zTests of interaction of matrix with other parts of numpy.

Note that tests with MaskedArray and linalg are done in separate files.
    N)assert_assert_equalassert_raisesassert_raises_regexassert_array_equalassert_almost_equalassert_array_almost_equalc                     t          j        ddgddgg          } t          t          | g dd d f         t           j                             t          j        t          j        d                              dd                    }t          |d dt          j        d	          f         |d dd	f         j	                   d S )
N            )r   r   r   2      
   )
npmatrixr   
isinstanceasmatrixarangereshaper   arrayT)mxs     f/var/www/html/test/jupyter/venv/lib/python3.11/site-packages/numpy/matrixlib/tests/test_interaction.pytest_fancy_indexingr      s    
 		Aq6Aq6"##AJqAAA	22333 	BIbMM))!R0011A2A2rx||#$aBik22222    c                      ddg} ddg}t          j        | | g          }t           j        j                            || |          }t          t          |t           j                             d S )Nr   r   r   r   )r   r   
polynomial	polyutils	mapdomainr   r   )dom1dom2r   ress       r   test_polynomial_mapdomainr'      se     q6Dq6D
	4,A
-
!
+
+AtT
:
:CJsBI&&'''''r   c                      t          j        g dg          } t          j        | d           }t          j        g dg          }t          ||           t	          t          |          t           j        u            d S )Nr   r   r   axisr   r   r   )r   r   sortr   r   typeaactualexpecteds      r   test_sort_matrix_noner3   )   sq    
	999+AWQT"""Fy)))%%H"""DNNbi'(((((r   c                      t          j        g dg          } t          j        | dd           }t          j        g dg          }t          ||           t	          t          |          t           j        u            d S )Nr)   r   r*   r,   )r   r   	partitionr   r   r.   r/   s      r   test_partition_matrix_noner6   2   su     		999+A\!QT***Fy)))%%H"""DNNbi'(((((r   c                     t          j        ddgt                    } t          j        ddggt                    }t          t          j        | d          |           t          t          j        d|           |           d S Nr   r   dtyper      )r   r   objectr   dotarrdesireds     r   %test_dot_scalar_and_matrix_of_objectsrA   <   sp     )QF&
)
)
)Ci!Q///GQ)))3)))))r   c                     t           j        d         t           j        d         z   dz   D ]} t          j        d|           d         }t          j        ddgdd	gg|           }t          j        dd
gddgg|           }t	          t          j        ||          |           t	          t          j        ||          |           d S )N
AllIntegerAllFloat?r   r9    r   r   r   r;   	      )r   	typecodesr   r   r   inner)dtscar?   r@   s       r   test_inner_scalar_and_matrixrM   E   s    l<(2<
+CCcI 2 2hq###B'i!Q!Q(333)aVaW-R888RXc3''111RXc3''11112 2r   c                     t          j        ddgt                    } t          j        ddggt                    }t          t          j        | d          |           t          t          j        d|           |           d S r8   )r   r   r<   r   rJ   r>   s     r   'test_inner_scalar_and_matrix_of_objectsrO   O   st     )QF&
)
)
)Ci!Q///G#q!!7+++!S!!7+++++r   c            
         t          j        ddgddgg          } t          j        d                              dd          j        }t          j        | |d gg dgdgddgg          }t          t          |j        d                   t           j        u            t          t          |j        d                   t           j	        u           t          |j        d         j        d           t          j        d                              ddd          }t          t          t           j        | |d gg dgdgddgg           t          j        | |d gg dgdgg d	g          }t          t          |j        d                   t           j	        u            t          t          |j        d                   t           j        u           t          |j        d         j        d
           d S )Nr   r   r   r   readonly	writeonlyallocate)r   r   )rR   rS   
no_subtype)r   r   r   )r   r   r   r   r   nditerr   r.   operandsndarrayr   shaper   RuntimeError)r0   bis      r   !test_iter_allocate_output_subtyper\   X   s    		Aq6Aq6"##A
	!Q""$A
	1a,<*Z/HI	K 	KADA29,---DArz1222A$f--- 		!Q1%%A,	Aq$<<*Z/HIK K K 		1a,<*:::<	= 	=A DA2:-...DAry0111A$i00000r   c                  V   t          j        ddgddgg          } t           j        t           j        t           j        fD ]j} ||           }t          t          |          t           j        u             || d          }t          t          |          t           j        u           kd S )Nr   r   r   r   F)subok)r   r   
zeros_like	ones_like
empty_liker   r.   )r0   like_functionrZ   cs       r   rb   rb   s   s    
	Aq6Aq6"##AbmC * *M!Q29$%%%M!5)))Qry())))* *r   c                     t          j        g dg dgd          } |                     ddd          }t          | |u            |                     dd	          }t	          | |           t	          t          |          t           j                   |                     ddd          }t	          | |           t          | |u           t          t          |          t           j        u           d S )
Nr,   )r   r   r   f4r9   TF)r^   copyi4)rf   )r   r   astyper   r   r.   r0   rZ   s     r   test_array_astyperj   ~   s     		999iii(555A	T..AAFOOO 	
E""AAa")$$$ 	
U//AAaDGG29$%%%%%r   c                      t          j        ddgddgg          } t          t          dt           j        | | g           d S )Nr   r   r   r   zshape too large to be a matrix)r   r   r   
ValueErrorstack)r   s    r   
test_stackrn      sL     		Aq6Aq6"##A
$D1a&* * * * *r   c                     t          j        ddgt                    } t          j        ddggt                    }t          t          j        | d          |           t          t          j        d|           |           d S r8   )r   r   r<   r   multiplyr>   s     r   test_object_scalar_multiplyrq      st     )QF&
)
)
)Ci!Q///GS!$$g...Q$$g.....r   c            	         t          j        t          j        d                    } t           j        t           j        fD ]} || d          }t          t          |t           j                             t          |j        dk                || d          }t          t          |t           j                             t          |j        dk                ||           }t          t          j        |                     t           j	        | d<   t           j        t           j        fD ]}t          j        d          5 }t          j        d	            || d          }t          t          |t           j                             t          t          j        t          j        |                                t          t          |          dk               d d d            n# 1 swxY w Y   t          j        d          5 }t          j        d	            || d          }t          t          |t           j                             t          t          j        |d
                   o5t          j        |d                    ot          j        |d                               t          t          |          dk    d           t          t!          |d         j        t$                               d d d            n# 1 swxY w Y   t          j        d          5 }t          j        d	            ||           }t          t          j        |                     t          |t           j	        k               t          t          |          dk               d d d            n# 1 swxY w Y   d S )Nr   r   r*   r   r   r   r   r   T)recordalways)r   r   )r   r   )r   r   zno warning raised)r   r   eyenanminnanmaxr   r   rX   isscalarnanwarningscatch_warningssimplefilteranyisnanlen
issubclasscategoryRuntimeWarning)matfr&   ws       r   test_nanfunctions_matricesr      s    )BF1II

Ci# " "a!nnn
3	**+++	V#$$$a!nnn
3	**+++	V#$$$affC  !!!!VCFi# ! !$D111 	!Q!(+++!Ca...CJsBI..///rx}}---...CFFaK   	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! $D111 	?Q!(+++!Ca...CJsBI..///BHSY'' 0T0C0C,C 0HSY///1 1 1CFFaK!4555Jqt}n==>>>	? 	? 	? 	? 	? 	? 	? 	? 	? 	? 	? 	? 	? 	? 	? $D111 	!Q!(+++!C&&CBK$$%%%C26M"""CFFaK   	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	!#! !s9   BG..G2	5G2	C4LL	L	.A>N88N<	?N<	c                  x   t          j        t          j        d                    } t           j        t           j        t           j        t           j        t           j        t           j        t           j	        fD ]} || d          }t          t          |t           j                             t          |j        dk                || d          }t          t          |t           j                             t          |j        dk                ||           }t          t          j        |                     t           j        t           j        fD ]} || d          }t          t          |t           j                             t          |j        dk                || d          }t          t          |t           j                             t          |j        dk                ||           }t          t          |t           j                             t          |j        dk               d S )	Nr   r   r*   rs   r   rt   )r   r   )r   rG   )r   r   rw   	nanargmin	nanargmaxnansumnanprodnanmeannanvarnanstdr   r   rX   rz   	nancumsum
nancumprod)r   r   r&   s      r   "test_nanfunctions_matrices_generalr      s    )BF1II

ClBL")RZj")RY0 	" 	"a!nnn
3	**+++	V#$$$a!nnn
3	**+++	V#$$$affC  !!!!\2=( 	' 	'a!nnn
3	**+++	V#$$$a!nnn
3	**+++	V#$$$aff
3	**+++	X%&&&&	' 	'r   c                     t          j        t           j                            dd                    } t	          |                     d          t          j        | d                     t          j        ddgddgg          }t          j        ddgddgg          }t          j        |d|          }t          t          |          t           j                   t          |dd	gg           d S )
Nr   r   r   r   r   r   )r+   weightsg      @g
@)	r   r   randomrandr   meanaverager   r.   )yr0   r   rs       r   test_average_matrixr      s    
	")..A&&''Aqvvayy"*Q"2"2333
	Aq6Aq6"##A
	Aq6Aq6"##A

11a(((Aa")$$$c6]O$$$$$r   c                  (   t          j        dd          } t          j        dd          }t          j        |           }t          j        |          }t          j        | |          }t          j        ||j                  }t          ||           d S )Nr   r   )r   linspacer   r=   r   r   )r   r   mxmyr   mrs         r   test_dot_matrixr      sx     	AqA
BA	1B	1B
q!A	BD		BAr   c                  
   t          t          j        t          j        d                    t          j                  sJ t          t          j        t          j        d          d          t          j                  sJ d S )Nr   )to_begin)r   r   ediff1dr   rF   r   r   test_ediff1d_matrixr      sa    bj1..	::;;;bj1:::BIFFGGGGGr   c                     d } t          j        ddgddgg          }t          j        ddgddgg          }t          j        | d|          }t          t	          |t           j                             t          ||           t          j        | d|          }t          t	          |t           j                             t          ||           d S )Nc                     | dz  S Nr   rF   )rows    r   doublez,test_apply_along_axis_matrix.<locals>.double
  s    Qwr   r   r   r   r   r   r;   )r   r   apply_along_axisr   r   r   )r   r   r2   results       r   test_apply_along_axis_matrixr     s       		Aq6Aq6"##Ay1a&1a&)**H A..FJvry))***vx((( A..FJvry))***vx(((((r   c                  *   t          j        ddg          } t          j        |           }t          t	          t          j        | |                     t           j                   t          t	          t          j        ||                    t           j                   t          t	          t          j        | |                    t           j                   t          t	          t          j        ||                     t           j                   d S r   )r   onesr   r   r.   kronrW   r   )r0   r   s     r   test_kron_matrixr     s    
AA
AAbgamm$$bj111bgamm$$bi000bgamm$$bi000bgamm$$bi00000r   c                        e Zd Zd Zd Zd ZdS )TestConcatenatorMatrixc                    ddgddgt           j        df         }t           j        df         }t          t          |          t           j                   t          t          |          t           j                   t          t          j        |          g dg           t          t          j        |          dgdgdgdgg           t          t          fd           d S )	Nr   r   r   r   r   rc   )r   r   r   r   c                  .    t           j        d f         S )Nrc)r   r_ri   s   r   <lambda>z4TestConcatenatorMatrix.test_matrix.<locals>.<lambda>2  s    "%a
*; r   )r   r   r   r.   r   r   r   rl   )selfab_rab_cr0   rZ   s      @@r   test_matrixz"TestConcatenatorMatrix.test_matrix%  s    FFuS!QYuS!QYT$ZZ+++T$ZZ+++RXd^^lll^444RXd^^qcA3aS%9:::j";";";";";<<<<<r   c                     t           j        dddgdf         }t          t          |          t           j                   t          t          j        |          g dg           d S )Nr   r   r   r   )r   r   r   )r   r   r   r.   r   r   )r   r   s     r   test_matrix_scalarz)TestConcatenatorMatrix.test_matrix_scalar4  sT    E#1vq.!T!WWbi(((RXa[[999+.....r   c                 z   t          j        dg          }t          j        dg          }t          j        dg          }t          j        dg          }t           j        d         }t          j        ||g||gg          }t	          ||           t	          t          |          t          |                     d S )Nr   r   r   r   z
a, b; c, d)r   r   r   bmatr   r.   )r   r0   rZ   rc   dr1   r2   s          r   test_matrix_builderz*TestConcatenatorMatrix.test_matrix_builder9  s    HaSMMHaSMMHaSMMHaSMM|$7QFQF+,,VX&&&T&\\4>>22222r   N)__name__
__module____qualname__r   r   r   rF   r   r   r   r   #  sA        = = =/ / /
	3 	3 	3 	3 	3r   r   c                  H   t          j        t                    5 } t          t	          j        ddg          t	          j        ddg                     d d d            n# 1 swxY w Y   t          | j                  }t          j
        d          }t          ||           d S )Nr   r   zw
    Arrays are not equal

    (shapes (2,), (1, 2) mismatch)
     ACTUAL: array([1, 2])
     DESIRED: matrix([[1, 2]]))pytestraisesAssertionErrorr   r   r   r   strvaluetextwrapdedent)exc_infomsgmsg_references      r   %test_array_equal_error_message_matrixr   E  s    	~	&	& :(RXq!f%%ry!Q'8'8999: : : : : : : : : : : : : : :
hn

CO %" # #M m$$$$$s   9AA#&A#c                     t          j        ddgg          } t          j        dt           j        gg          }t          j        dt           j         gg          }t          j        t           j        t           j        gg          }t          j        ddgt           j        t           j        gg          }t          t
          fD ]D}| ||||fD ]:} |||           t          j        |          } |||            |||           ;Ed S )Ng      ?g       @)r   r   r{   infr	   r   r   )m1m2m3m4m5assert_funcr   r0   s           r   test_array_almost_equal_matrixr   T  s	    
RH:		B	RL>	"	"B	R"&M?	#	#B	RVRV$%	&	&B	RHrvrv./	0	0B02EE  RR# 	 	AK1AK1K1		 r   )$__doc__r   r   r|   numpyr   numpy.testingr   r   r   r   r   r   r	   r   r'   r3   r6   rA   rM   rO   r\   rb   rj   rn   rq   r   r   r   r   r   r   r   r   r   r   rF   r   r   <module>r      s          K K K K K K K K K K K K K K K K K K
3 3 3( ( () ) )) ) )* * *2 2 2, , ,1 1 16* * *& & &&* * */ / /&! &! &!R' ' '8
% 
% 
%	 	 	H H H) ) )&1 1 13 3 3 3 3 3 3 3D% % %    r   