
    BwgI                     v   d Z ddlmZmZmZmZmZmZ ddlm	Z	m
Z
mZmZmZmZmZmZmZmZmZmZmZmZmZmZmZ ddlZddlZ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"d Z#d Z$d Z%d Z&d Z'd Z( G d d      Z) G d d      Z* G d d      Z+ G d d      Z,y) z"Test functions for matrix module

    )assert_equalassert_array_equalassert_array_max_ulpassert_array_almost_equalassert_raisesassert_)arangeaddfliplrflipudzerosoneseyearraydiaghistogram2dtrimask_indicestriu_indicestriu_indices_fromtril_indicestril_indices_fromvanderNc                 H    t        |       }t        j                  ||      }|S N)r	   r
   outer)ndatas     W/var/www/horilla/myenv/lib/python3.12/site-packages/numpy/lib/tests/test_twodim_base.pyget_matr       s     !9D99T4 DK    c                   B    e Zd Zd Zd Zd Zd Zd Zd Zd Z	d Z
d	 Zy
)TestEyec           
          t        t        d      t        g dg dg dg dg             t        t        dd      t        g dg dg dg dgd             t        t        d      d	k(  t        dt                     y )
N      r   r   r   r   r'   r   r   r   r   r'   r   r   r   r   r'   fdtype   r'   )r   r   r   boolselfs    r   
test_basiczTestEye.test_basic   sv    SVL(((* +	, 	S#&L(((* ,/0	1 	SVq[$'	)r!   c           	      >   t        t        t        j                  d      t              t        ddgddgg             t        t        t        j                  d      t        j                  d      t        j                  d            t        g dg dg             y )	N   r,   r'   r   r%   )Mkr(   r)   )r   r   npuint64intr   r0   s    r   test_uint64zTestEye.test_uint64)   se    S1S151a&1a&9I3JKS111FL,78	:r!   c           
          t        t        dd      t        g dg dg dg dg             t        t        dd      t        g dg d	g dg dg             y )
Nr%   r'   r6   r(   r)   r*   r   r   r   r   r&   r   r   r   r0   s    r   	test_diagzTestEye.test_diag/   sT    Sa[L(((* +	, 	Sb\L(((* +	,r!   c           
          t        t        dd      t        g dg dg dg dg             t        t        dd      t        g dg dg d	g             y )
Nr%   r.   r'   r   r   r   r'   r   )r   r   r'   r   r   r   r&   r(   r)   r?   r0   s    r   test_2dzTestEye.test_2d<   sQ    SAYI%%%' (	) 	SAYL((* +	,r!   c           
          t        t        ddd      t        g dg dg dg             t        t        ddd      t        g d	g d	g d
g dg             y )Nr.   r%   r4   r<   r)   r*   r=   rD   rB   rC   r?   r0   s    r   test_diag2dzTestEye.test_diag2dH   sU    SA^L((* +	,
 	SA_I%%%' (	)r!   c                 ,   t        t        ddd      ddgddgg       t        t        ddd      ddgddgg       t        t        ddd      ddgddgg       t        t        ddd      ddgddgg       t        t        ddd      ddgddgddgg       t        t        ddd      ddgddgddgg       t        t        ddd      ddgddgddgg       t        t        ddd      ddgddgddgg       t        t        ddd      ddgddgddgg       y )Nr4   r'   r   r>   rG   r.   r   r   r0   s    r   test_eye_boundszTestEye.test_eye_boundsT   s7   SAq\QFQF#34SAr]aVaV$45SAq\QFQF#34SAr]aVaV$45SAq\QFQFQF#;<SAq\QFQFQF#;<SAr]aVaVaV$<=SAr]aVaVaV$<=SAr]aVaVaV$<=r!   c                 @    t        t        ddd      ddgddgg       y )Nr4   S3r,      1r!   rK   r0   s    r   test_stringszTestEye.test_strings_   s%    SAT*SkC;/	1r!   c                 H    t        t        ddt              ddgddgg       y )Nr4   r,   TF)r   r   r/   r0   s    r   	test_boolzTestEye.test_boolc   s"    SAT*dE]UDM,JKr!   c                    t        ddd      }t        dddd      }t        ||       |j                  j                  sJ |j                  j                  rJ |j                  j                  rJ |j                  j                  sJ y )Nr%   r.   r>   r<   F)r6   order)r   r   flagsc_contiguousf_contiguous)r1   mat_cmat_fs      r   
test_orderzTestEye.test_orderf   su    AqBAqBc*UE"{{'''';;++++;;++++{{''''r!   N)__name__
__module____qualname__r2   r:   r@   rE   rH   rL   rP   rR   r[    r!   r   r#   r#      s0    ) :,
,
)	>1L(r!   r#   c                   ,    e Zd Zd ZddZd Zd Zd Zy)TestDiagc                    dt        d      z  j                  d      }t        d      }t        d      D ]  }||   |||f<    t	        t        |      |       t        d      }|j                         }t        d      D ]  }||   |||dz   f<   ||   ||dz   |f<    t	        t        |d      |       t	        t        |d      |       y )	Nd      l)rd   rd   )   rf   r4   r<   rG   )r	   astyper   ranger   r   copy)r1   valsbr6   cs        r   test_vectorzTestDiag.test_vectorq   s    fQi'',&Mq 	A1gAadG	T$Z#&MFFHq 	"Aq'AaQhKq'Aa!eQhK	" 	T$!_a(T$"%q)r!   Nc                    | dt        d      z  dz   j                  d      }t        d      }t        d      D ]  }|||f   ||<    t	        t        |      |       |dz  }t        d      D ]  }|||dz   f   ||<    t	        t        |d      |d d        t        d      D ]  }||dz   |f   ||<    t	        t        |d	      |d d        y )
Nrc   rd   r'   re   )rd   r   r.   r4   rG   )r    rg   r   rh   r   r   )r1   rj   rk   r6   s       r   test_matrixzTestDiag.test_matrix   s    <'!*$q(005D$Kq 	A1:AaD	T$Z#Eq 	"A1q5>AaD	"T$]AbqE*q 	"AAq>AaD	"T$^QrU+r!   c                 `    t        dt        d      z  dz   dd      }| j                  |       y )Nrc   rd   r'   rT   re   )rU   r-   )r   r    ro   )r1   rj   s     r   test_fortran_orderzTestDiag.test_fortran_order   s,    cGAJ&*3cBr!   c                 :   ddgddgddgg}t        t        |d      g        t        t        |d      dg       t        t        |d      ddg       t        t        |d	      ddg       t        t        |d
      dg       t        t        |d      g        y )Nr'   r4   r.   r%   rd      r<   r   r>   rG   rJ   )r   r   )r1   As     r   test_diag_boundszTestDiag.test_diag_bounds   s    VaVaV$T!q\2&T!q\A3'T!q\Aq6*T!r]QF+T!r]QC(T!r]B'r!   c                 4    t        t        t        dggg       y )Nr'   )r   
ValueErrorr   r0   s    r   test_failurezTestDiag.test_failure   s    j$1#0r!   r   )r\   r]   r^   rm   ro   rq   ru   rx   r_   r!   r   ra   ra   p   s    *,(1r!   ra   c                       e Zd Zd Zy)
TestFliplrc                     t        t        t        t        d             t	        d      }|d d d d df   }t        t        |      |       g dg dg}g dg dg}t        t        |      |       y )Nr%   r>   r   r'   r4   r.   r%   rd   )r4   r'   r   )rd   r%   r.   )r   rw   r   r   r    r   r1   ark   s      r   r2   zTestFliplr.test_basic   sb    j&$q'2AJa2gJVAY"VAY"r!   Nr\   r]   r^   r2   r_   r!   r   rz   rz      s    	#r!   rz   c                       e Zd Zd Zy)
TestFlipudc                     t        d      }|d d dd d f   }t        t        |      |       g dg dg}g dg dg}t        t        |      |       y )Nr%   r>   r|   r}   )r    r   r   r~   s      r   r2   zTestFlipud.test_basic   sR    AJddAgJVAY"VAY"r!   Nr   r_   r!   r   r   r      s    #r!   r   c                   ~    e Zd Zd Zd Zd Zd Zd Zd Zd Z	e
j                  j                  dd	d
g      d        Zy)TestHistogram2dc                    t        g d      }t        g d      }t        j                  ddd      }t        j                  ddd      }t        ||||f      d   }t        g dg dg dg d	g d
g dg dg dg dg	      }t	        |j
                  |       t        |||      d   }t	        |j
                  |       t        t        t        d            t        t        d                  \  }}}t	        |t        dd             t	        |t        j                  ddd             t	        |t        j                  ddd             y )N)g̙
}?g%?g$F?g;cjY?gI+?)gp5x?g?_?gp?gbd?gg<=?r   r'   
   )	r   r   r   r'   r   r   r   r   r   )	r   r   r   r   r   r   r'   r   r   )	r   r   r   r   r   r   r   r   r   )	r'   r   r'   r   r   r   r   r   r   )	r   r'   r   r   r   r   r   r   r   	      )	r   r7   linspacer   r   Tlistrh   r   )r1   xyxedgesyedgesHanswers          r   test_simplezTestHistogram2d.test_simple   s   LNHJQ2&Q2&1vv./2(((((((((*	+ 	133'1f%a(133''U2YeBiI661c"bk*62;;q!R#8962;;q!R#89r!   c           	      J   t        g d      }t        g d      }t        ||dddgddggd      \  }}}t        g d	g d
g dg dg dg dg      }t        ||dz  d       t        |t	        j
                  ddd             t        |t	        j
                  ddd             y )N)r'   r'   r4   r.   r%   r%   r%   rd   )r'   r.   r4   r   r'   r4   r.   r%   )rs   rd   r   rs   rd   T)rh   density)        r   r   r   r   )r   r'   r   r'   r   )r   r   r'   r   r   )r'   r   r   r   r   )r   r'   r'   r'   r   r   r   r   r   r'   g       @r.   rf   )r   r   r   r   r7   r   r1   r   r   r   xedyedr   s          r   	test_asymzTestHistogram2d.test_asym   s    *+*+!q&!Q!Q 0$@3 	"!VBY23Aq! 453Aq! 45r!   c                     t        g d      }t        g d      }t        ||g dg dgd      \  }}}t        g dg dg dg      dz  }t        ||d	       y )
N)	r'   r4   r.   r'   r4   r.   r'   r4   r.   )	r'   r'   r'   r4   r4   r4   r.   r.   r.   )r'   r4   r.   rd   T)r   )r'   r'         ?)r   r         ?g      "@r.   )r   r   r   r   s          r   test_densityzTestHistogram2d.test_density   sc    -.-.!q<.>3
"%' ((*+ 	"!VQ/r!   c                     t         j                  j                  d      dz   dz   }t        ||dddgddgf      \  }}}t	        |d       y )Nrc         ?g    .A)r%   rd   r   r'   )rh   )r7   randomrandr   r   )r1   rr   r   r   s        r   test_all_outliersz!TestHistogram2d.test_all_outliers   sK    IINN3"$s*!!Q1v1v6FG31a r!   c                     t        g g ddgddgf      \  }}}t        |t        dgg             t        g g d      \  }}}t        |t        j                  d             y )Nr   r'   binsr   r%   )r%   r%   )r   r   r   r7   r   )r1   r   edge1edge2s       r   
test_emptyzTestHistogram2d.test_empty   s\    %b"QFQF3CD5%Qtf.%b"155%Q 01r!   c                    t        g d      }t        g d      }d}t        |||df      \  }}}t        g dg dg dg dg dg dg dg dg dg d	g
      }t        ||       t        |t        g d
             t        ||d|f      \  }}}t        g dg dg dg dg      }t        ||       t        |t        g d
             y )N)r   g<D瑷?g ?g!,3{?glyT?gf.?r'   )r   g(@TT\?gIZ?gYN?gK?~?g&W-U?r'   )r   g?g?g333333?g?r   g333333?gffffff?g?g?r'   r%   )g       @r   r   r   )r   r   r   r   )r   r   r   r   )r   r   r   r   )r   r   r   r   )r   r   r   g      ?r'   )
r   r   r   r   r   r   r   r   r   r   )
r   r   r   r   r   r   r   r   r   r   )
r   r   r   r   r   r   r   r   r   r   )
r   r   r   r   r   r   r   r   r   r   )r   r   r   )r1   r   r   edgesr   xeyer   s           r   test_binparameter_combinationz-TestHistogram2d.test_binparameter_combination   s      D1uaj1	2r	
  	1f%2u%=>?1q%j1	2r555578
 	1f%2u%=>?r!   c           	          G d d      }ddg} |       }t        ||      }t        ||f||fi fk(         t        ||      }t        ||f||fi fk(         t        |||      }t        ||f||ft        |      f       t        |||dg      }t        ||f||ft        |dg      f       t        t        t         |||g       t        |||      }t        ||f||ft        |      f       y )Nc                       e Zd Zd Zy)5TestHistogram2d.test_dispatch.<locals>.ShouldDispatchc                     |||fS r   r_   )r1   functiontypesargskwargss        r   __array_function__zHTestHistogram2d.test_dispatch.<locals>.ShouldDispatch.__array_function__  s    dF**r!   N)r\   r]   r^   r   r_   r!   r   ShouldDispatchr     s    +r!   r   r'   r4   r   rd   )weights)r   r   dictr   	Exception)r1   r   xys_dr   s        r   test_dispatchzTestHistogram2d.test_dispatch  s   	+ 	+ VR ~'#rB778C ~'"cB778BS)^%Bx3@ABc1X.^%BxC81DEFib"C5AB,^%Bxc1BCDr!   )x_leny_len)r   r   )      c                     t        j                  |      t        j                  |      }}t        j                  t        d      5  t        ||       d d d        y # 1 sw Y   y xY w)Nz"x and y must have the same length.)match)r7   r   pytestraisesrw   r   )r1   r   r   r   r   s        r   test_bad_lengthzTestHistogram2d.test_bad_length,  sL    wwu~rwwu~1]]:!EG 	1	 	 	s   AA%N)r\   r]   r^   r   r   r   r   r   r   r   r   markparametrizer   r_   r!   r   r   r      sS    :46 0!
2@>E( [[/(H1EF Gr!   r   c                       e Zd Zd Zy)TestTric                     t        g dg dg dg      }t        t        d      |       t        t        dt              |j	                  t                     y )NrB   r'   r'   r   r'   r'   r'   r.   r,   )r   r   r   r/   rg   )r1   outs     r   
test_dtypezTestTri.test_dtype5  sC    Y  ! 	3q63'3q-szz$/?@r!   N)r\   r]   r^   r   r_   r!   r   r   r   4  s    Ar!   r   c                     t         j                  d   t         j                  d   z   D ]  } t        j                  d|       }t        j                  |      }t        j                  |      }t        |ddgddgg       t        ||j                         t        |j                  |j                         t        |j                  |j                          y )NAllFloat
AllInteger)r4   r4   r,   r'   r   )	r7   	typecodesr   triltriur   r   r   r-   )r-   r   rk   rl   s       r   test_tril_triu_ndim2r   =  s    j)BLL,FF 'GGF%(GGAJGGAJ11v1v./1acc"QWWagg&QWWagg&'r!   c                  l   t         j                  d   t         j                  d   z   D ]	  } t        j                  ddgddggddgddggddgddggg|       }t        j                  ddgddggddgddggddgddggg|       }t        j                  ddgddggddgddggddgddggg|       }t        j                  |      }t        j                  |      }t        ||       t        ||       t        |j                  |j                         t        |j                  |j                          y )Nr   r   r'   r   r,   )r7   r   r   r   r   r   r   r-   )r-   r   a_tril_desireda_triu_desireda_triu_observeda_tril_observeds         r   test_tril_triu_ndim3r   I  s\   j)BLL,FF 5HHVaVVaVVaV 	
 VaVVaVVaV# 	
 VaVVaVVaV# 	
 ''!*''!*?N;?N;_**AGG4_**AGG4+5r!   c                  j   t        j                  ddt         j                  gg dt         j                  ddgg      } t        j                  g dg dt         j                  ddgg      }|j                  }t	        t        j
                  |       |       t	        t        j                  |       |       y )Nr'   r   rB   r   )r7   r   infr   r   r   r   )arrout_trilout_trius      r   test_tril_triu_with_infr   b  s    
((Q266NVVQN$ %C xx"&&!Q) *H zzHrwws|X.rwws|X.r!   c                  :   t         j                  d   D ]  } | dk(  r	t        j                  d|       }t        t        j                  |      j
                  |j
                         t        t        j                  |      j
                  |j
                          t        j                  ddgddggd	      }t        t        j                  |      j
                  |j
                         t        t        j                  |      j
                  |j
                         t        j                  dd
      }t        t        j                  |      j
                  |j
                         t        t        j                  |      j
                  |j
                         y )NAllV)r.   r.   r,   z2001-01-01T12:00z2002-02-03T13:56z2004-01-01T12:00z2003-01-03T13:45
datetime64zf4,f4)r7   r   r   r   r   r-   r   r   )rl   r   s     r   test_tril_triu_dtyper   o  s    \\%  48hhvQ'RWWS\''3RWWS\''34 ((');<');<>%'C ##SYY/##SYY/
((6
)C##SYY/##SYY/r!   c                      t        dt        j                        } t        j                  d      j	                  dd      }t        ||    t        g d             t        dt        j                  d      }t        ||   t        g d             y )Nr.   r   )r   r'   r4   r%   rd      r'   )r'   r4   rd   )r   r7   r   r	   reshaper   r   )iur   iu1s      r   test_mask_indicesr     se    	a	!B
		!Q"Aque$678
q"''1
%CqvuY/0r!   c            
         t        d      } t        dd      }t        dd      }t        ddd      }t        j                  g dg dg d	g d
g      }t        j                  dd      j	                  dd      }t        ||    t        g d             t        ||   t        g d             d|| <   t        |t        g dg dg dg dg             d||<   t        |t        g dg dg dg dg             d||<   t        |t        g dg dg dg dg             d||<   t        |t        g dg dg dg dg             y )Nr%   r4   r<   rd   mr6   r   r'   r4   r.   r%   rd   rs   rf   r   r   r   r                  r'      )
r'   rd   rs   r   r   r   r   r   r   r   )
r'   rs   rf   r   r   r   r         r   r>   )r>   r4   r.   r%   )r>   r>   rf   r   )r>   r>   r>   r   r>   r>   r>   r>   )r>   r4   r.   r%   rd   )r>   r>   r   r   r   )r>   r>   r>   r   r   )r>   r>   r>   r>   r   )r  r  r  r%   )r  r  r  r  )r  r  r  r%   rd   )r  r  r  r  r   )r  r  r  r  r  )r   r7   r   r	   r   r   )il1il2il3il4r   rk   s         r   test_tril_indicesr    sW   
q/C
qA
C
qA
C
qA
#C
,!"$ 	%A 			!R  A&A qvABDqvBCE AcFqm,..0 12
 AcFq.0224 56 AcFq02224 56
 AcFq36779 :;r!   c                       e Zd Zd Zy)TestTriuIndicesc           
         t        d      }t        dd      }t        dd      }t        ddd      }t        j                  g dg dg d	g d
g      }t        j                  dd      j	                  dd      }t        ||   t        g d             t        ||   t        g d             d||<   t        |t        g dg dg dg dg             d||<   t        |t        g dg dg dg dg             d||<   t        |t        g dg dg dg dg             d||<   t        |t        g dg dg dg dg             y )Nr%   r4   r<   rd   r   r   r   r   r   r   r'   r   )
r'   r4   r.   r%   rs   rf   r   r   r   r   )r'   r4   r.   r%   rd   rf   r   r   r   r   r   r   r   r   r>   r  )rd   r>   r>   r>   )r   r   r>   r>   )r   r   r   r>   )r>   r>   r>   r>   r>   )rs   r>   r>   r>   r>   )r   r   r>   r>   r>   )r   r   r   r>   r>   r  )r>   r>   r  r  )rd   r>   r>   r  )r>   r>   r  r  r  )rs   r>   r>   r  r  )r   r   r>   r>   r  )r   r7   r   r	   r   r   )r1   r   iu2iu3iu4r   rk   s          r   test_triu_indicesz!TestTriuIndices.test_triu_indices  s[   1o1"1"1Q'HHl"%&( ) IIa$$Q* 	1S6 !BC	E1S6  ": ;	<
 #1 "2"1"1"2"4 5	6
 #1 "6"5"6"6"8 9	: #1 "4"2"1"2"4 5	6
 #1 "9"7"7"6"8 9	:r!   N)r\   r]   r^   r  r_   r!   r   r	  r	    s    .:r!   r	  c                       e Zd Zd Zy)TestTrilIndicesFromc                     t        t        t        t        j                  d             t        t        t        t        j                  d             y N)r4   )r4   r4   r4   )r   rw   r   r7   r   r0   s    r   test_exceptionsz#TestTrilIndicesFrom.test_exceptions  -    j"3RWWT]Cj"3RWWY5GHr!   Nr\   r]   r^   r  r_   r!   r   r  r        Ir!   r  c                       e Zd Zd Zy)TestTriuIndicesFromc                     t        t        t        t        j                  d             t        t        t        t        j                  d             y r  )r   rw   r   r7   r   r0   s    r   r  z#TestTriuIndicesFrom.test_exceptions  r  r!   Nr  r_   r!   r   r  r    r  r!   r  c                       e Zd Zd Zd Zy)
TestVanderc                 <   t        j                  g d      }t        |      }t        j                  g dg dg dg dg      }t        ||d d dd f          |j                  d   }t        d      D ]'  }t        ||      }t        ||d d ||z
  |f          ) y )	N)r   r'   rG   r.   r   )r'   r'   r'   r'   r'   )r   ir%   rG   r'   )Q      r   r.   r'   r'   rs   N)r7   r   r   r   shaperh   )r1   rl   vpowersr   r   s         r   r2   zTestVander.test_basic  s    HH]#1I?*-,. /
 	1fQUm,LLOq 	4AqAAq&AaCE"23	4r!   c                 *   t        g dt        j                        }t        |      }t        j                   g dg dg dg      }t	        ||       t        ddg      }t        |d	      }t        j                   g d
g dg      }t	        ||       y )N)r   r   r,   )y   r   r'   )   r%  r'   )   r   r'         ?      ?      ?      r.   r  )y               @r)  r'   )y              r*  r'   )r   r7   int8r   r   )r1   rl   r"  expecteds       r   test_dtypeszTestVander.test_dtypes  s    -rww/1I88\*)+ , 	1h'66"#1N88]+- .
 	1h'r!   N)r\   r]   r^   r2   r-  r_   r!   r   r  r    s    4(r!   r  )-__doc__numpy.testingr   r   r   r   r   r   numpyr	   r
   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r7   r   r    r#   ra   rz   r   r   r   r   r   r   r   r   r  r	  r  r  r  r_   r!   r   <module>r1     s        
  U( U(p,1 ,1^
# 
#	# 	#y yxA A	'52
/0,1,;^/: /:dI II I( (r!   