
    Bwgw.                         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#y)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                  p   t        j                  ddgddgg      } t        t        | g dd d f   t         j                               t        j                  t        j
                  d      j                  dd            }t        |d dt        j                  d	      f   |d dd	f   j                         y )
N            )r   r   r   2      
   )
npmatrixr   
isinstanceasmatrixarangereshaper   arrayT)mxs     ]/var/www/horilla/myenv/lib/python3.12/site-packages/numpy/matrixlib/tests/test_interaction.pytest_fancy_indexingr      s    
 			Aq6Aq6"#AJqA		23 	BIIbM))!R01A2A2rxx|#$aBikk2    c                      ddg} ddg}t        j                  | | g      }t         j                  j                  j	                  || |      }t        t        |t         j                               y )Nr   r   r   r   )r   r   
polynomial	polyutils	mapdomainr   r   )dom1dom2r   ress       r   test_polynomial_mapdomainr'      sY     q6Dq6D
		4,A
--
!
!
+
+AtT
:CJsBII&'r   c                      t        j                  g dg      } t        j                  | d       }t        j                  g dg      }t        ||       t	        t        |      t         j                  u        y )Nr   r   r   axisr   r   r   )r   r   sortr   r   typeaactualexpecteds      r   test_sort_matrix_noner3   )   sQ    
		9+AWWQT"Fyy)%H"DNbii'(r   c                      t        j                  g dg      } t        j                  | dd       }t        j                  g dg      }t        ||       t	        t        |      t         j                  u        y )Nr)   r   r*   r,   )r   r   	partitionr   r   r.   r/   s      r   test_partition_matrix_noner6   2   sU     			9+A\\!QT*Fyy)%H"DNbii'(r   c                      t        j                  ddgt              } t        j                  ddggt              }t        t        j                  | d      |       t        t        j                  d|       |       y Nr   r   dtyper      )r   r   objectr   dotarrdesireds     r   %test_dot_scalar_and_matrix_of_objectsrA   <   sV     ))QF&
)Cii!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
                  ||      |        y )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    ll<(2<<
+CCcI 2hhq#B'ii!Q!Q(3))aVaW-R8RXXc3'1RXXc3'12r   c                      t        j                  ddgt              } t        j                  ddggt              }t        t        j                  | d      |       t        t        j                  d|       |       y r8   )r   r   r<   r   rJ   r>   s     r   'test_inner_scalar_and_matrix_of_objectsrO   O   sX     ))QF&
)Cii!Q/G#q!7+!S!7+r   c            
         t        j                  ddgddgg      } t        j                  d      j                  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      j                  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
       y )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ADA299,-DArzz12A$$f- 			!Q1%A,		Aq$<<*Z/HIK 			1a,<*:<	=A DA2::-.DAryy01A$$i0r   c                  V   t        j                  ddgddgg      } t         j                  t         j                  t         j                  fD ]\  } ||       }t        t        |      t         j                  u         || d      }t        t        |      t         j                  u       ^ y )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bmmC *!Q299$%!5)Qryy()*r   c                     t        j                  g dg dgd      } | j                  ddd      }t        | |u        | j                  dd	      }t	        | |       t	        t        |      t         j                         | j                  ddd      }t	        | |       t        | |u       t        t        |      t         j                  u       y )
Nr,   )r   r   r   f4r9   TF)r^   copyi4)rf   )r   r   astyper   r   r.   r0   rZ   s     r   test_array_astyperj   ~   s     			9i(5A	T.AAFO 	
E"AAa"))$ 	
U/AAaDG299$%r   c                  ~    t        j                  ddgddgg      } t        t        dt         j                  | | g       y )Nr   r   r   r   zshape too large to be a matrix)r   r   r   
ValueErrorstack)r   s    r   
test_stackrn      s9     			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|       |       y r8   )r   r   r<   r   multiplyr>   s     r   test_object_scalar_multiplyrq      sX     ))QF&
)Cii!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 ]0  }t        j                  d      5 }t        j                  d	        || d      }t        t        |t         j                               t        t        j                  t        j                  |                    t        t        |      dk(         d d d        t        j                  d      5 }t        j                  d	        || d      }t        t        |t         j                               t        t        j                  |d
         xr4 t        j                  |d          xr t        j                  |d                 t        t        |      dk(  d       t        t!        |d   j"                  t$                     d d d        t        j                  d      5 }t        j                  d	        ||       }t        t        j                  |             t        |t         j                  k7         t        t        |      dk(         d d d        3 y # 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   XxY w)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    ))BFF1I
Cii# "!n
3		*+		V#$!n
3		*+		V#$fC !" VVCFii# !$$D1 	!Q!!(+Ca.CJsBII./rxx}--.CFaK 	! $$D1 	?Q!!(+Ca.CJsBII./BHHSY' 0T0C,C 0HHSY//1CFaK!45Jqt}}n=>	? $$D1 	!Q!!(+C&CBKK$%C266M"CFaK 	! 	!#!	! 	!	? 	?	! 	!s'   BM&5CM3+A/M?&M0	3M<	?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(          y )	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      sx    ))BFF1I
CllBLL"))RZZjj"))RYY0 	"!n
3		*+		V#$!n
3		*+		V#$fC !	" \\2==( 	'!n
3		*+		V#$!n
3		*+		V#$f
3		*+		X%&	'r   c                     t        j                  t         j                  j                  dd            } t	        | j                  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       y )
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qvvay"**Q"23
		Aq6Aq6"#A
		Aq6Aq6"#A


11a(Aa"))$c6]O$r   c                  4   t        j                  dd      } t        j                  dd      }t        j                  |       }t        j                  |      }t        j                  | |      }t        j                  ||j                        }t        ||       y )Nr   r   )r   linspacer   r=   r   r   )r   r   mxmyr   mrs         r   test_dot_matrixr      sk     	AqA
BA	1B	1B
q!A	BDD	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 y )Nr   )to_begin)r   r   ediff1dr   rF   r   r   test_ediff1d_matrixr      sN    bjj1.		:;:bjj1:BIIFGFr   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        ||       y )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yy1a&1a&)*H  A.FJvryy)*vx(  A.FJvryy)*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                         y r   )r   onesr   r   r.   kronrW   r   )r0   r   s     r   test_kron_matrixr     s    
AA
AAbggam$bjj1bggam$bii0bggam$bii0bggam$bii0r   c                       e Zd Zd Zd Zd Zy)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       y )	Nr   r   r   r   r   rc   )r   r   r   r   c                  0    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uuS!QYuuS!QYT$Z+T$Z+RXXd^l^4RXXd^qcA3aS%9:j";<r   c                     t         j                  dddgdf   }t        t        |      t         j                         t        t        j
                  |      g dg       y )Nr   r   r   r   )r   r   r   )r   r   r   r.   r   r   )r   r   s     r   test_matrix_scalarz)TestConcatenatorMatrix.test_matrix_scalar4  s@    EE#1vq.!T!Wbii(RXXa[9+.r   c                 d   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        |             y )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    HHaSMHHaSMHHaSMHHaSM|$77QFQF+,VX&T&\4>2r   N)__name__
__module____qualname__r   r   r   rF   r   r   r   r   #  s    =/
	3r   r   c                  8   t        j                  t              5 } t        t	        j
                  ddg      t	        j                  ddg             d d d        t         j                        }t        j                  d      }t        ||       y # 1 sw Y   @xY w)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  sv    	~	& :(RXXq!f%ryy!Q'89:
hnn
COO %" #M m$: :s   7BB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 ]>  }| ||||fD ]2  } |||       t        j                  |      } |||        |||       4 @ y )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	RVVRVV$%	&B	RHrvvrvv./	0B02EE RR# 	A1A1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
3())*2,16*&&*/&!R'8
%	H)&13 3D%r   