
    qKg:                        d dl Zd dlZd dlmZmZmZ d dlmZm	Z	m
Z
mZmZmZ d dlmZ  G d d      Z G d d      Z G d	 d
      Z G d d      Z G d d      Z G d d      Z G d d      Z G d d      Z G d d      Zy)    N)matrixasmatrixbmat)assert_assert_equalassert_almost_equalassert_array_equalassert_array_almost_equalassert_raises)matrix_powerc                       e Zd Zd Zd Zd Zy)TestCtorc                    t        j                  ddgddgg      }t        |      }t        t        j                  |j
                  |k(               t        d      }t        ||g||gg      }t        j                  g dg dg dg dg      }t        t        j                  |j
                  |k(               t        t        j                  |j
                  |k(               t        j                  dd	gd
dgg      }t        g dg dg      }t        t        j                  t        ||g      |k(               t        j                  d      }t        |      }	t        |	j                  dk(         y )N            A,A;A,Ar   r   r   r   r   r   r   r               r   r   r   r   r   r   r   r   )r   r   )	nparrayr   r   allAr   arangeshape)
selfr    mABCDEAEresultvecmvecs
             h/home/alanp/www/video.onchill/myenv/lib/python3.12/site-packages/numpy/matrixlib/tests/test_defmatrix.py
test_basiczTestCtor.test_basic   s    HHq!fq!f%&AYrttqy!"O1a&1a&!"HHl"""$ % 	qssax !qssax !HHq!fq!f%&<67tQF|x/01iilc{

f$%    c                 .    t        t        t        d       y )Ninvalid)r   
ValueErrorr   r#   s    r,   test_exceptionszTestCtor.test_exceptions"   s    j&)4r.   c           
         t        j                  ddgddgg      }t        j                  ddgddgg      }t        j                  g d	g d
g d	g d
g      }t        j                  g dg dg dg dg      }t        t        j                  t	        d      |k(               t        t        j                  t	        dd|i      |k(               t        t        t        dd|i       t        t        j                  t	        dd|id|i      |k(               t	        d||d||d      }t        t        j                  ||k(               y )Nr   r   r   r   r   r   r   r   r   r   r   r   )r   r   r   r   )r   r   r   r   r   r    )ldict)gdict)r5   r6   zA,B;C,D)r    r%   )r&   r'   )r   r   r   r   r   r   	TypeError)r#   r    r%   Aresult	mixresultb2s         r,   test_bmat_nondefault_strz!TestCtor.test_bmat_nondefault_str&   s   HHq!fq!f%&HHq!fq!f%&((L(((* + HHl***, -	 	tI'123tIc!W5@ABiyQ@FF4	#aQ@GKL	N)a=Q1FrY'(r.   N)__name__
__module____qualname__r-   r3   r;    r.   r,   r   r      s    &,5)r.   r   c                   Z    e 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y)TestPropertiesc                    t        g dg dg dg dg      }t        g d      }t        g d      j                  }d}t        ||j                  d	             t        ||j                  d
	             t	        ||j                                t        |t        j                  |d	             t        |t        j                  |d
	             t	        |t        j                  |             y)zeTest whether matrix.sum(axis=1) preserves orientation.
        Fails in NumPy <= 0.9.6.2127.
        )r   r   r   r   )r   r   r   r   r   r   )r      r   r   )r   r   r         r   axisr   N)r   Tr	   sumr   r   )r#   Msum0sum1sumalls        r,   test_sumzTestProperties.test_sum;   s     L! " m$m$&&4A/4A/VQUUW%4!234!23VRVVAY'r.   c                 >   t        g dg dg      }t        |j                         d       t        |j                  d      t        g dg             t        |j                  d      t        dgdgg             t        t        j                  |      d       t        t        j                  |d	      t        g dg             t        t        j                  |d	      t        dgdgg             t        g d
      }t	        |j                         dk(         y )Nr   r   r   r   r   r   i  r   )r   
      r   r   x   rF   )r   r   r   )r   r   prodr   r   r#   xys      r,   	test_prodzTestProperties.test_prodN   s    Iy)*QVVXs#QVVAY} 56QVVAYcU| 45RWWQZ%RWWQQ')>?RWWQQ'!se)=>9Ar.   c                    t        g dg dg      }t        |j                         d       t        |j                  d      t        g dg             t        |j                  d      t        dgdgg             t        t        j                  |      d       t        t        j                  |d      t        g dg             t        t        j                  |d      t        dgdgg             y )NrP   rQ   r   r   r   r   rF   )r   r   maxr   r#   rW   s     r,   test_maxzTestProperties.test_max[       Iy)*QUUWa QUU1Xvyk23QUU1XvsQCj12RVVAY"RVVAA&	{(;<RVVAA&aSz(:;r.   c                    t        g dg dg      }t        |j                         d       t        |j                  d      t        g dg             t        |j                  d      t        dgdgg             t        t        j                  |      d       t        t        j                  |d      t        g dg             t        t        j                  |d      t        dgdgg             y )NrP   rQ   r   r   r   rF   )r   r   minr   r\   s     r,   test_minzTestProperties.test_mine   r^   r.   c           	         t        j                  d      j                  d      }|j                  t         j                        }t        |j                         dk(         t        t        j                  |j                  d      t        j                  ddg      k(               t        t        j                  |j                  d      t        j                  ddg      k(               y )Nr   )r   r   r   r   r   r   )	r   r!   reshapeviewr   r   ptpr   r   r#   rW   mxs      r,   test_ptpzTestProperties.test_ptpo   s    IIaL  (VVBIIArvvayBHHaV$4456rvvayBHHaV$4456r.   c                 :   t        j                  d      j                  d      }|j                  t         j                        }t        |j                  d      |j                  d             t        |j                  d      |j                  d             y )N	   )r   r   r   )ddofr   )r   r!   rc   rd   r   r   varrf   s      r,   test_varzTestProperties.test_varv   sh    IIaL  (VVBIIQUUU]BFFFN3QUUU]BFFFN3r.   c           	      \   dd l m} t        j                  ddgddgg      }t	        |      }t        t        j                  |j                  |      |j                               t        t        j                  t        j                  t        j                  |      |j                  k(                     t        t        j                  t        j                  t        j                  |      |j                  k(                     t        t        j                  ||j                  k(               |d|z  z   }t	        |      }t        t        j                  |j                  |      |j                               t        t        j                  t        j                  t        j                  |      |j                  k(                     t        t        j                  t        j                  t        j                  |      j                         |j                  k(                     y )Nr         ?       @      @      @y               @)numpy.linalglinalgr   r   r   r   allcloseinvIr   	transposerH   Hr    conj)r#   rt   r    r$   r%   mBs         r,   r-   zTestProperties.test_basic|   sP   %HHr2h2h  !AYFJJqM24401rxxQ244 789:rxxQ244 789:qBDDy!"1HAYFJJqM24401rxxQ244 789:rxxQ 4 4 6"$$ >?@Ar.   c                     t        t        j                  d      j                  dd            }t        ddgddgdd	gg      }t	        |j
                  |       y )
Nr   r   r   g:gn)t?g#qg#q?gn)t?g6Bq)r   r   r!   rc   r   rw   )r#   rW   xpinvs      r,   	test_pinvzTestProperties.test_pinv   sW    299Q<''1-.z2$z2$k24 5 	ACC'r.   c           	         t        j                  d      j                  dd      }t        |      }t        |      dz   }t	        t        j
                  ||dz   k(               t	        t        j
                  |t        |dz         k(               t	        t        j                  |t        |dz
        k(                t	        t        j
                  ||k               t	        t        j
                  ||k               t	        t        j
                  ||k               t	        t        j                  ||k                t	        t        j                  ||k                t	        t        j
                  ||k\               t	        t        j
                  ||k\               t	        t        j                  ||kD                t	        t        j
                  ||k(               t	        t        j                  ||k(                t	        t        j
                  ||k7               t	        t        j
                  t        |      dkD                t	        t        j
                  t        |dkD                     y )Nd   rR   皙?r   )r   r!   rc   r   r   r   anyabs)r#   r    r$   r{   s       r,   test_comparisonszTestProperties.test_comparisons   s   IIcN""2r*AYAY_rQsU{#$rVAcE]*+,BFF2#.//0rBw rRx !rRx !BFF27O#$BFF27O#$rRx !rRx !BFF27O#$rRx !BFF28$$%rRx !BFF3r7Q;''(s26{#$r.   c                     t        j                  d      j                  dd      }t        |      }d|d<   t	        |d   |d   k(         y )Nr   rR   ir   r   )r   r!   rc   r   r   )r#   r    r$   s      r,   test_asmatrixzTestProperties.test_asmatrix   sC    IIcN""2r*a[$$2d8#$r.   c                     t        ddgddgg      }t        |j                         t        d      k(         t        |j                         t        d      k(         y )Nr   r   r         ?)r   r   rI   meanr#   r    s     r,   test_noaxiszTestProperties.test_noaxis   sG    QFQF#$6!9$%F3K'(r.   c                 T    t        ddgddgg      }t        t        |      dk(         y )Nr   r   z matrix([[1, 0],
        [0, 1]]))r   r   reprr   s     r,   	test_reprzTestProperties.test_repr   s+    QFQF#$Q>>?r.   c                 T    t        d      }t        dgdgdgg      }t        ||       y )NzTrue; True; FalseTF)r   r	   )r#   r    r%   s      r,   test_make_bool_matrix_from_strz-TestProperties.test_make_bool_matrix_from_str   s.    &'TFTFUG,-1a r.   N)r<   r=   r>   rN   rY   r]   ra   rh   rm   r-   r~   r   r   r   r   r   r?   r.   r,   rA   rA   :   sE    (&<<74B"(%0%)
@!r.   rA   c                       e Zd Zd Zy)TestCastingc                    t        j                  d      j                  dd      }t        |      }|j	                         }t        j
                  dt         j                        dz  }||z   }t        |j                  j                  t         j                  k(         t        t        j                  ||k7               t        t        j                  ||dz   k(               |j	                         }t        j
                  dt         j                        }||z  }t        |j                  j                  t         j                  k(         t        t        j                  ||k7               y )Nr   rR   )rR   rR   r   )r   r!   rc   r   copyonesfloat64r   dtypetyper   
complex128)r#   r    r$   r{   OmCs         r,   r-   zTestCasting.test_basic   s    IIcN""2r*AYWWYGGHbjj)C/!V+,rRx !rRV|$%WWYGGHbmm,!V./rRx !r.   Nr<   r=   r>   r-   r?   r.   r,   r   r      s    "r.   r   c                   $    e Zd Zd Zd Zd Zd Zy)TestAlgebrac           	         dd l m} t        j                  ddgddgg      }t	        |      }t        j
                  d      }t        d      D ]D  }t        t        j                  ||z  j                  |             t        j                  ||      }F |j                  |      }t        j
                  d      }t        d      D ]E  }t        t        j                  || z  j                  |             t        j                  ||      }G t        t        j                  ||z  j                  t        j                  ||                   t        t        j                  ||z   j                  ||z                t        t        j                  d|z  j                  d|z               t	        |      }|dz  }t        t        j                  |j                  d|z               y )	Nr   ro   rp   rq   rr   r   r   r   )rs   rt   r   r   r   identityranger   ru   r    dotrv   )r#   rt   r    r$   r%   iAinvmA2s           r,   r-   zTestAlgebra.test_basic   sV   %HHr2hR)*AYKKNqABKKqQ/0q!A  zz!}KKNqABKKra01q$A  	R"WKK167R"WKK!a%12QrTHHqs,-QiqCEE1Q3'(r.   c                 \   t        d      }|j                         }|dz  }|j                         }|dz  }|j                         }|dz  }t        ||dz         t        |t        j                  ||             t        t        j                  ||      t        j
                  d             y)z<Test raising a matrix to an integer power works as expected.z1. 2.; 3. 4.r   N)r   r   r
   r   r   eye)r#   mm2mim4s        r,   test_powzTestAlgebra.test_pow   s    >"VVX
qVVX
r	WWY
q!"ad+!"bffRn5!"&&Q-;r.   c                     t        ddgddgg      }t        j                  t        j                  fD ]  } |d      }t	        |dz  ||z          y Nr   r   r   r   )r   r   int8uint8r
   )r#   r   scalar_ttwos       r,   test_scalar_type_powz TestAlgebra.test_scalar_type_pow   sK    QFQF#$"((+H1+C%a1fa3h7 ,r.   c                     t        ddgddgg      }t        t              5  d|z   ddd       t        t              5  |t               z   ddd       y# 1 sw Y   /xY w# 1 sw Y   yxY w)z:Check that 'not implemented' operations produce a failure.ro   rp   rq   rr   N)r   r   r7   objectr   s     r,   test_notimplementedzTestAlgebra.test_notimplemented   sa    RHH  9%F & 9%fhJ &%	 &% &%s   AA!A!A*N)r<   r=   r>   r-   r   r   r   r?   r.   r,   r   r      s    )2<8r.   r   c                       e Zd Zd Zy)TestMatrixReturnc           	         t        dgd      }dddgfdddt        j                  dg      d	}g d
}t        |      D ]  }|j	                  d      s||v rt        ||      }t        |t        j                  j                        sJ|j                  d       |j                  d       ||v r||   }nd} || }t        t        |      t         u d|z          t        t        |j                        t         u        t        t        |j                        t         u        t        dg      j!                         \  }}	t        t        |      t        j"                  u        t        t        |	      t        j"                  u        y )Nro   f8)r   )intc)        ro   r   )r   r   )astypeclipcompressrepeatrc   swapaxesr   ))argminchoosedumpdumpsfillgetfieldgetAgetA1itemnonzeroputputmaskresizesearchsortedsetflagssetfieldsort	partitionargpartitionnewbyteorder	to_devicetaketofiletolisttostringtobytesr   r   rI   argmaxr   r`   r[   r   rl   re   rU   stdctypesitemsetbitwise_count_r?   z%sr   )r   r   r   dir
startswithgetattr
isinstancecollectionsabcCallabler   r   r   r   realimagr   ndarray)
r#   a
methodargsexcluded_methodsattribfargsbcds
             r,   test_instance_methodsz&TestMatrixReturn.test_instance_methods  sF   C5%88SE?
 !fF  %3C)C6"A![__556sZ'%f-DDtHQ6)4&=9  	QVV&'QVV&'se}$$&1Q2::%&Q2::%&r.   N)r<   r=   r>   r   r?   r.   r,   r   r     s    &'r.   r   c                       e Zd Zd Zy)TestIndexingc                     t        t        j                  dt                    }t        j                  dt              }g d|d d df<   |dkD  |d d df<   t	        |ddgddgddgg       y )Nr   r   )r   r   )g?g?g333333?r   r   r   r   r   zerosfloatr   rV   s      r,   r-   zTestIndexing.test_basic9  sb    RXXfe,-HHVU#!!Q$c'!Q$Q!Q!Q!Q01r.   Nr   r?   r.   r,   r   r   8  s    2r.   r   c                   ^    e Zd Z eddgddgg      Zd Zd Zd Zd Zd	 Z	d
 Z
d Zd Zd Zy)TestNewScalarIndexingr   r   r   r   c                 R    | j                   }|d   }t        |j                  d       y )Nr   r   )r   r   ndimr#   r   rW   s      r,   test_dimesionsz$TestNewScalarIndexing.test_dimesionsD  s"    FFaDQVVQr.   c                 z    | j                   }t        j                  ||g      }t        |j                  g d       y )N)r   r   r   )r   r   r   r   r"   r  s      r,   test_array_from_matrix_listz1TestNewScalarIndexing.test_array_from_matrix_listI  s+    FFHHaVQWWi(r.   c                 \    | j                   }t        |j                         ddgddgg       y r   )r   r   r   r#   r   s     r,   test_array_to_listz(TestNewScalarIndexing.test_array_to_listN  s(    FFQXXZ1a&1a&!12r.   c                    | j                   }|dg df   }t        t        |t                     t	        |t        g dg             |ddg   }t        t        |t                     t	        |t        ddgddgg             |dgdggddgddggf   }t        t        |t                     t	        |t        ddgddgg             y )Nr   )r   r   r   )r   r   r   r   r   r   r   )r   r   r   r   r   r  s      r,   test_fancy_indexingz)TestNewScalarIndexing.test_fancy_indexingR  s    FFalO
1f%&Q}-.q!fI
1f%&QQ!Q012sQCjAq6Aq6**+
1f%&QQ!a123r.   c                    t        g dg dg      }t        |d   d   t        g dg             t        |d   d   j                  d       t        |d   j                  d       t        |d d df   j                  d       t        d      }t        |d   d       t        |d   d       t        |d d df   j                  |j                         y )NrP   rQ   r   )r   r   r   r   r   )r   r   r"   r\   s     r,   test_matrix_elementz)TestNewScalarIndexing.test_matrix_element^  s    Iy)*QqT!Wfi[12QqT!W]]F+QqTZZ(Qq!tW]]F+1IQtWa QqT1Qq!tW]]AGG,r.   c                 t    t        t        j                  dt                    }t	        |d   |d   d          y )Nr   r   r   r   r\   s     r,   test_scalar_indexingz*TestNewScalarIndexing.test_scalar_indexingj  s-    RXXfe,-QtWad1g&r.   c                     t        t        j                  d            }t        |dd d f   ddgg       t        |dd d f   ddgg       t        |d d df   dgdgg       t        |d d df   dgdgg       y )Nr   r   r   )r   r   r   r	   r\   s     r,   test_row_column_indexingz.TestNewScalarIndexing.test_row_column_indexingn  sx    RVVAY1QqS6QF8,1QqS6QF8,1QT7aS1#J/1QT7aS1#J/r.   c                    t        j                  d      }d|_        t        |      }t	        |d d t        j
                  ddg      f   |d d df          t	        |t        j
                  g d      d d f   |dd d f          y )Nr   r   TFr   )TFF)r   r!   r"   r   r	   r   r#   r    rW   s      r,   test_boolean_indexingz+TestNewScalarIndexing.test_boolean_indexingu  sn    IIaLQK1Q$ 778!AqD'B1RXX&:;A=>!A#Gr.   c                     t        j                  d      }d|_        t        |      }t	        |d d ddgf   |d d d d df          t	        |g dd d f   |d d dd d f          y )Nr   r   r   r   r   )r   r   r   )r   r!   r"   r   r	   r  s      r,   test_list_indexingz(TestNewScalarIndexing.test_list_indexing|  s_    IIaLQK1QAY<1dd741Yq[>1TrT!V95r.   N)r<   r=   r>   r   r   r  r  r	  r  r  r  r  r  r  r?   r.   r,   r   r   A  sG    AA A 
)
3
4
-'0H6r.   r   c                       e Zd Zd Zd Zy)	TestPowerc                     t        j                  ddgddgg      }t        t        t	        |d            t         j
                  u        t        |      }t        t        t	        |d            t        u        y Nr   r   r   )r   r   r   r   r   r   r   r   r  s     r,   test_returntypezTestPower.test_returntype  s\    HHq!fq!f%&\!Q'(BJJ67QK\!Q'(F23r.   c                 H    t        t        ddgddggd      ddgddgg       y r  )r	   r   r2   s    r,   	test_listzTestPower.test_list  s-    <!Q!Q(8!<1v1v>NOr.   N)r<   r=   r>   r  r  r?   r.   r,   r  r    s    4Pr.   r  c                       e Zd Z ej                  dgdgg      Z edgdgg      Zd Zd Z	d Z
d Zd Zd Zd	 Zd
 Zd Zy)	TestShaper   r   c                     t        | j                  j                  d       t        | j                  j                  d       y )Nr  )r   r   r"   r   r2   s    r,   
test_shapezTestShape.test_shape  s&    TVV\\6*TVV\\6*r.   c                     t        t        j                  | j                        j                  d       t        t        j                  | j
                        j                  d       y )Nr   )r   r   ravelr   r"   r   r2   s    r,   test_numpy_ravelzTestShape.test_numpy_ravel  s<    RXXdff%++T2RXXdff%++T2r.   c                     t        | j                  j                         j                  d       t        | j                  j                         j                  d       y Nr$  )r   r   )r   r   r%  r"   r   r2   s    r,   test_member_ravelzTestShape.test_member_ravel  s6    TVV\\^))40TVV\\^))62r.   c                     t        | j                  j                         j                  d       t        | j                  j                         j                  d       y r(  )r   r   flattenr"   r   r2   s    r,   test_member_flattenzTestShape.test_member_flatten  s8    TVV^^%++T2TVV^^%++V4r.   c                    t        j                  g dg dg      }t        t        j                  |      g d       t        t        j                  |d      g d       t        t        j                  |j                        g d       t        t        j                  |j                  d      g d       t        g dg dg      }t        t        j                  |      g d       t        t        j                  |d      g d       t        t        j                  |j                        g d       t        t        j                  |j                  d      g d       y NrP   rQ   )r   r   r   r   r   r   F)order)r   r   r   r   r   r   r    )r   r   r   r%  rH   r   r\   s     r,   test_numpy_ravel_orderz TestShape.test_numpy_ravel_order  s    HHi+,RXXa["45RXXas+-?@RXXacc]$67RXXacc-/ABIy)*RXXa["45RXXas+-?@RXXacc]$67RXXacc-/ABr.   c                 >   t        g dg dg      }t        |j                         g dg       t        |j                  d      g dg       t        |j                  j                         g dg       t        |j                  j                  d      g dg       y r.  )r   r   r%  rH   r\   s     r,   test_matrix_ravel_orderz!TestShape.test_matrix_ravel_order  ss    Iy)*QWWY!3 45QWW3W'*<)=>QSSYY[#5"67QSSYYSY),>+?@r.   c                 
   t        t        j                  | j                  | j                  j	                                      t        t        j                  | j                  | j                  j                                       y N)r   r   may_share_memoryr   r%  r+  r2   s    r,   test_array_memory_sharingz#TestShape.test_array_memory_sharing  L    ##DFFDFFLLN;<B''0@AABr.   c                 
   t        t        j                  | j                  | j                  j	                                      t        t        j                  | j                  | j                  j                                       y r5  )r   r   r6  r   r%  r+  r2   s    r,   test_matrix_memory_sharingz$TestShape.test_matrix_memory_sharing  r8  r.   c                 (   t        j                  d      j                  d      j                  t         j                        }t        j
                  |d      }t        |j                  d       t        t        |t         j                                y )NrR   )r   r   r   rF   r   )
r   r!   rc   rd   r   expand_dimsr   r  r   r   )r#   r   expandeds      r,   test_expand_dims_matrixz!TestShape.test_expand_dims_matrix  s_     IIbM!!&)..ryy9>>!!,X]]A&Jx334r.   N)r<   r=   r>   r   r   r   r   r   r"  r&  r)  r,  r1  r3  r7  r:  r>  r?   r.   r,   r   r     s]    1#sAaSzA+335
CACC5r.   r   )collections.abcr   numpyr   r   r   r   numpy.testingr   r   r   r	   r
   r   rs   r   r   rA   r   r   r   r   r   r  r   r?   r.   r,   <module>rB     s      ( (  &,) ,)^D! D!L" "&8 8v'' ''T2 2@6 @6FP P65 65r.   