o
    
i
                     @   s   d dl mZ d dlZejd  d dlmZ d dlm	Z	 d dl
mZmZmZ d dlmZ d#d	d
Zd$ddZd%ddZ	d&ddZ							d'ddZd(ddZd)ddZdd  Zd!d" ZdS )*    )print_functionN)assert_allclose)assume)tuplesintegersfloats)arrays   
   c                 C   s   t | |dS )N)	min_value	max_value)r   lohi r   E/home/ubuntu/.local/lib/python3.10/site-packages/blis/tests/common.pylengths   s   r   d   c                 C   s   t t| |dt||dS )Nr   )r   r   min_rowsmax_rowsmin_colsmax_colsr   r   r   shapes   s   r        @     @@float64c                 C   s(   |dkrdnd}t || t|||ddS )Nr   @       )r   r   width)shapeelements)r   r   )r    r   r   dtyper   r   r   r   ndarrays_of_shape   s   r#       c    .Ac                    s   t | |d fddS )Nr   c                       t |  dS N)r   r   r"   r#   )nr"   max_valmin_valr   r   <lambda>!       zndarrays.<locals>.<lambda>)r   flatmapmin_lenmax_lenr,   r+   r"   r   r*   r   ndarrays   s   r3   c                    s"   t | |||d fddS )Nr   c                    r&   r'   r(   )mnr"   r   r   r   r   r-   0   r.   zmatrices.<locals>.<lambda>)r   r/   )r   r   r   r   r   r   r"   r   r5   r   matrices%   s
   	r6        j@c                 C   s   t | |d||dS )Nr   r0   r3   )r1   r2   r+   r"   r   r   r   positive_ndarrays3      
r9        jc                 C   s   t | ||d|dS )Ng|۽r0   r8   )r1   r2   r,   r"   r   r   r   negative_ndarrays9   r:   r<   c                 C   s  | ddd f }t j| dd df dd}| dd dd f }|jdks&J |jdks-J |jd |jd ks9J |jd |jd ksEJ tt |   tt |   tt |   ttdd | D   ttdd |D   ttdd |D   |||fS )	Nr   r	   r   )r"   c                 s       | ]}t |V  qd S Nnpisinf.0valr   r   r   	<genexpr>N       zparse_layer.<locals>.<genexpr>c                 s   r=   r>   r?   rB   r   r   r   rE   O   rF   c                 s   r=   r>   r?   rB   r   r   r   rE   P   rF   )	r@   ascontiguousarrayndimr    r   isnansumanyflatten)
layer_dataxbWr   r   r   parse_layer?   s   
rQ   c                 C   s$   | dd d f | d d d d f fS )Nr   r   )rM   r   r   r   	split_rowT   s   $rR   )r	   r
   )r	   r   r	   r   )r   r   r   )r   r
   r$   r%   r   )r	   r
   r	   r
   r$   r%   r   )r   r
   r7   r   )r   r
   r;   r   )
__future__r   numpyr@   randomseednumpy.testingr   
hypothesisr   hypothesis.strategiesr   r   r   hypothesis.extra.numpyr   r   r   r#   r3   r6   r9   r<   rQ   rR   r   r   r   r   <module>   s0   



	


