
    ^Mh                     V    d dl Z G d d          Z G d d          Zd Zd Zd	dZdS )
    Nc                       e Zd Zd ZdS )_FakeMatrixc                 ,    || _         |j        | _        d S N)_data__array_interface__selfdatas     W/var/www/html/test/jupyter/venv/lib/python3.11/site-packages/scipy/linalg/_testutils.py__init__z_FakeMatrix.__init__   s    
#'#;       N)__name__
__module____qualname__r    r   r   r   r      s#        < < < < <r   r   c                       e Zd Zd ZddZdS )_FakeMatrix2c                     || _         d S r   )r   r	   s     r   r   z_FakeMatrix2.__init__   s    


r   Nc                 F    |r| j                                         S | j         S r   )r   copy)r
   dtyper   s      r   	__array__z_FakeMatrix2.__array__   s$     	%:??$$$zr   )NN)r   r   r   r   r   r   r   r   r   r   
   s7               r   r   c                 :   t          |           dk    r2| d         dk    r&t          j        | |          }d|dddf<   d|d<   |S t          |           dk    r| d         | d         k    rmt          j        | |          }t          j        | d                   }d|||f<   d||dd         |dd         dz   f<   d||dd         dz   |dd         f<   |S t          j                            d           t          j        j        |                      |          S )zz
    Get a test array of given shape and data type.
    Returned NxN matrices are posdef, and 2xN are banded-posdef.

       r   )r      Ni  )lennpzerosarangerandomseedrandnastype)shaper   xjs       r   
_get_arrayr)      s#    5zzQ58q==HU%(((!QRR%!	UqU1Xq11HU%(((IeAh!Q$ !CRC&!CRC&(
 !CRC&(AcrcF

	ty&--e444r   c                     | S r   r   )r'   s    r   _idr+   -   s    Hr   c           	      t  	
 |.t           j        t           j        t           j        t           j        g}|D ]dD ]|
t
          t          t          fD ]e	fd|D             }	
fd|D             } | |  dd	d}t          ||          D ]'\  }}t           j	        
                    |||           (f}dS )	zA
    Test that a call does not overwrite its input arguments
    N)CFc                 0    g | ]}t          |          S r   )r)   ).0sr   s     r   
<listcomp>z'assert_no_overwrite.<locals>.<listcomp><   s#    DDDz!U33DDDr   c                 L    g | ] } |                                         !S r   )r   )r0   r'   fakerorders     r   r2   z'assert_no_overwrite.<locals>.<listcomp>=   s-    DDD1%%u..DDDr   zcall modified inputs [z, ])err_msg)r   float32float64	complex64
complex128r+   r   r   ziptestingassert_equal)callshapesdtypesorig_inputsinputsmsgabr   r4   r5   s           @@@r   assert_no_overwriterG   1   s   
 ~*bj",F ? ? 	? 	?E{L9 ? ?DDDDVDDDDDDDDDDDfDuDD%DDD44 ? ?DAqJ++Aq#+>>>>??	?? ?r   r   )numpyr   r   r   r)   r+   rG   r   r   r   <module>rI      s       < < < < < < < <       5 5 52  ? ? ? ? ? ?r   