a
    Re                     @   sJ   d dl Zd dlmZmZ d dlm  mZ G dd dZ	G dd dZ
dS )    N)assert_allcloseassert_equalc                   @   s   e Zd Zdd Zdd ZdS )	TestDGEMMc                 C   s  t jddddd dd df }t jdddddd dd df }t d	d dd df }td
||d| t||| td
|j|d| t||j| td
||jd| t|||j td
|j|jd| t||j|j td
||d|j t|||j td
|j|d|j t||j|j td
||jd|j t|||jj td
|j|jd|j t||j|jj d S )N   dZdtype               )r
   r	   r   r
         ?        	npZarangeZreshapeemptyblasZ_test_dgemmr   dotTselfabc r   W/var/www/sunrise/env/lib/python3.9/site-packages/scipy/linalg/tests/test_cython_blas.pytest_transposes   s&    $&zTestDGEMM.test_transposesc                 C   s   t jdddd}t jddddd}t d}td	||d
| t||| td	|j|jd
|j t||j|jj d S )N   r   r   )r	   r   ir   r   r   r   r   r   r   r   r   r   test_shapes&   s    
zTestDGEMM.test_shapesN)__name__
__module____qualname__r   r    r   r   r   r   r      s   r   c                   @   s0   e Zd ZdZdd Zdd Zdd Zdd	 Zd
S )TestWfuncPointersz Test the function pointers that are expected to fail on
    Mac OS X without the additional entry statement in their definitions
    in fblas_l1.pyf.src. c                 C   s   t g dt j}t g dt j}tt||d tt||d tt|d tt	|d tt
|d tt|d d d |d d d d	 tt|d d d |d d d d
 tt	|d d d d tt
|d d d d d S )N)      ?      ?      ?      ؿy      )@      )y?       @      ?                   @yI! 1?3_5@y4 fva+ P>@r	   g     2@gKg [*@r   yI! 2?335@y4 ffa+ >@g      2@g8f X*@)r   arrayZ	complex64r   r   Z_test_cdotcZ_test_cdotur   Z_test_icamaxZ_test_scasumZ_test_scnrm2r   Zcxcyr   r   r   test_complex_args6   s&      z#TestWfuncPointers.test_complex_argsc                 C   s   t g dt j}t g dt j}tt|d tt||d tt|d tt|d d d d tt|d d d |d d d d tt|d d d d	 tt	|d
 d S )Ng      @g      ࿩r   r   g      ?      !@      @ `h@r         @     #@J @@r   )
r   r)   float64r   r   Z_test_dasumZ
_test_ddotZ_test_dnrm2r   Z_test_idamaxr   xyr   r   r   test_double_argsL   s    &z"TestWfuncPointers.test_double_argsc                 C   s   t g dt j}t g dt j}tt|d tt|d tt||d tt	|d tt|d d d d tt|d d d |d d d d	 tt	|d d d d
 d S )Nr-   r/   r   r0   r1   r2   r   r3   r4   r5   )
r   r)   float32r   r   Z_test_isamaxr   Z_test_sasumZ
_test_sdotZ_test_snrm2r7   r   r   r   test_float_args[   s    &z!TestWfuncPointers.test_float_argsc                 C   s   t g dt j}t g dt j}tt|d tt||d tt||d tt|d d d |d d d d tt|d d d |d d d d d S )	N)r%   r&   y      *@      )y      ?       @r'   r(   r	   y     2     L6@y     P     d?@r   y     2      6@y     @     ?@)	r   r)   Z
complex128r   r   Z_test_izamaxr   Z_test_zdotcZ_test_zdotur*   r   r   r   test_double_complex_argsj   s    &z*TestWfuncPointers.test_double_complex_argsN)r!   r"   r#   __doc__r,   r:   r<   r=   r   r   r   r   r$   1   s
   r$   )numpyr   Znumpy.testingr   r   Zscipy.linalg.cython_blasZlinalgZcython_blasr   r   r$   r   r   r   r   <module>   s   +