o
    Ö­j  ã                   @   sB   d dl ZG dd„ dƒZG dd„ dƒZdd„ Zdd	„ Zdd
d„ZdS )é    Nc                   @   s   e Zd Zdd„ ZdS )Ú_FakeMatrixc                 C   s   || _ |j| _d S ©N)Ú_dataÚ__array_interface__©ÚselfÚdata© r	   úT/var/www/html/CropPilot/venv/lib/python3.10/site-packages/scipy/linalg/_testutils.pyÚ__init__   s   z_FakeMatrix.__init__N)Ú__name__Ú
__module__Ú__qualname__r   r	   r	   r	   r
   r      s    r   c                   @   s   e Zd Zdd„ Zddd„ZdS )Ú_FakeMatrix2c                 C   s
   || _ d S r   )r   r   r	   r	   r
   r      s   
z_FakeMatrix2.__init__Nc                 C   s   |r| j  ¡ S | j S r   )r   Úcopy)r   Údtyper   r	   r	   r
   Ú	__array__   s   
z_FakeMatrix2.__array__)NN)r   r   r   r   r   r	   r	   r	   r
   r   
   s    r   c                 C   sè   t | ƒdkr!| d dkr!tj| |d�}d|ddd…f< d|d< |S t | ƒdkre| d | d kretj| |d�}t | d ¡}d|||f< d||dd… |dd… d f< d||dd… d |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Újr	   r	   r
   Ú
_get_array   s     r"   c                 C   s   | S r   r	   )r    r	   r	   r
   Ú_id-   s   r#   c              	      sª   |du rt jt jt jt jg}|D ]B‰ dD ]=‰tttfD ]5‰‡ fdd„|D ƒ}‡‡fdd„|D ƒ}| |Ž  dˆ ›dˆ›d�}t||ƒD ]\}}t j	j
|||d	� qBqqqdS )
zA
    Test that a call does not overwrite its input arguments
    N)ÚCÚFc                    s   g | ]}t |ˆ ƒ‘qS r	   )r"   )Ú.0Úsr   r	   r
   Ú
<listcomp><   s    z'assert_no_overwrite.<locals>.<listcomp>c                    s   g | ]	}ˆ |  ˆ¡ƒ‘qS r	   )r   )r&   r    )ÚfakerÚorderr	   r
   r(   =   s    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	   )r   r)   r*   r
   Úassert_no_overwrite1   s   ÿûÿÿr<   r   )Únumpyr   r   r   r"   r#   r<   r	   r	   r	   r
   Ú<module>   s    
