o
    1ήcc                    @   s   d dl Z d dlZd dlZd dlZd dlZd dlmZ d dlmZ d dl	m
Z
 d dl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 d dlmZmZ d dlmZm Z m!Z! G dd	 d	Z"dS )
    N)path)BytesIO)chain)assert_assert_equalIS_PYPYassert_almost_equalassert_array_equalassert_array_almost_equalassert_raisesassert_raises_regexassert_warnssuppress_warnings_assert_valid_refcountHAS_REFCOUNT	IS_PYSTON)_no_tracingrequires_memory)asbytes	asunicodepicklec                   @   s\  e Zd Zdd Zdd Zdd Zdd Zd	d
 Zdd Zdd Z	dd Z
dd Zdd Zdd Zdd Zdd Zdd Zdd Zdd  Zd!d" Zd#d$ Zd%d& Zd'd( Zd)d* Zd+d, Zd-d. Zd/d0 Zd1d2 Zd3d4 Zd5d6 Zd7d8 Zd9d: Zd;d< Z d=d> Z!d?d@ Z"dAdB Z#dCdD Z$dEdF Z%dGdH Z&dIdJ Z'dKdL Z(dMdN Z)dOdP Z*dQdR Z+dSdT Z,dUdV Z-dWdX Z.dYdZ Z/d[d\ Z0d]d^ Z1d_d` Z2dadb Z3dcdd Z4dedf Z5dgdh Z6didj Z7dkdl Z8dmdn Z9dodp Z:dqdr Z;dsdt Z<dudv Z=dwdx Z>dydz Z?d{d| Z@d}d~ ZAdd ZBdd ZCdd ZDdd ZEdd ZFdd ZGdd ZHdd ZIdd ZJdd ZKdd ZLdd ZMdd ZNdd ZOdd ZPdd ZQeRjSjTeUVdjWd eUXeUjYjZkdddd Z[dd Z\dd Z]dd Z^dd Z_dd Z`dd Zadd Zbdd Zcdd Zddd Zedd Zfdd Zgdd Zhdd Zidd ZjddĄ ZkddƄ ZlddȄ Zmddʄ Zndd̄ Zodd΄ ZpddЄ Zqdd҄ ZrddԄ Zsddք Ztdd؄ Zuddڄ Zvdd܄ Zwddބ Zxdd Zydd Zzdd Z{dd Z|dd Z}dd Z~dd Zdd Zdd Zdd ZeRjSjTeUVdjWd eUXeUjYjZkdddd Zdd Zdd Zdd Zdd Zdd Zdd  Zdd Zdd Zdd Zdd Zd	d
 Zdd Zdd Zdd Zdd Zdd Zdd Zdd Zdd Zdd Zdd Zdd  Zd!d" Zed#d$ Zd%d& Zd'd( Zd)d* Zd+d, Zd-d. Zd/d0 Zd1d2 Zd3d4 Zd5d6 Zd7d8 Zd9d: Zd;d< Zd=d> Zd?d@ ZdAdB ZdCdD ZdEdF ZeRjSjTe dGddHdI ZdJdK ZdLdM ZdNdO ZdPdQ ZdRdS ZdTdU ZdVdW ZdXdY ZdZd[ Zd\d] Zd^d_ Zd`da Zdbdc ZeRjSjTe dGdddde Zdfdg Zdhdi Zdjdk Zdldm Zdndo Zdpdq ZÐdrds ZĐdtdu ZŐdvdw ZƐdxdy Zǐdzd{ ZȐd|d} Zɐd~d Zʐdd Zːdd Z̐dd Z͐dd Zΐdd ZeRjSjTeАdddd ZeRjSjTeАdddd ZҐdd ZӐdd ZԐdd ZՐdd Z֐dd Zאdd Zؐdd Zِdd Zڐdd Zېdd Zܐdd Zݐdd Zސdd Zߐdd Zdd Zdd Zdd ZeRjSjdd ZeRjSjTe dGddd Zdd Zdd Zdd Zdd Zdd Zdd Zdd ZdÐdĄ ZdŐdƄ ZdǐdȄ Zdɐdʄ Zdːd̄ Zd͐d΄ ZdϐdЄ Zdѐd҄ ZdӐdԄ ZdՐdք Zdאd؄ Zdِdڄ Zdېd܄ Zdݐdބ Zdߐd Zdd ZeRjSjTe dGddd Zdd Zdd Z dd ZeRjSjTeo1ejjdkdddd Zdd Zdd Zdd Z	dd Z
dd Zdd Zdd ZeRjSdeUjVddd eUdgeRjSdedejd dd Zdd Zdd	 Zd
d Zdd Zdd ZeRjSjTejdk dddd Zdd Zdd ZeRjSjTejdk ddedddd Zdd ZeRjSdg deRjSd g d!d"d# Z d$S (%  TestRegressionc                 C   s    d}t t|gt| d S )Ng
ףp=
@)r	   nparrayselfv r   G/tmp/pip-target-vg8gfxp4/lib/python/numpy/core/tests/test_regression.pytest_invalid_round   s   z!TestRegression.test_invalid_roundc                 C   s   t jddt jfgd d S )N   xdtype)r   emptyint64r   r   r   r   test_mem_empty   s   zTestRegression.test_mem_emptyc              	   C   s   t t ddgddgddgg}tdtjd D ],}t }tj|||d |d t	|}W d    n1 s;w   Y  t
|| qd S )	N   	      r         r!   protocol)r   	transposer   ranger   HIGHEST_PROTOCOLr   dumpseekloadr	   )r   aprotofbr   r   r   test_pickle_transposed   s   "
z%TestRegression.test_pickle_transposedc                 C   s   t dt jdfg d S )N)namelabelr,   )r   r$   int32r'   r   r   r   test_dtype_names)   s   zTestRegression.test_dtype_namesc                 C   s   t tjjddgd dd d S )N      ?      ?r#   g      ?)r   r   addreducer'   r   r   r   test_reduce.      zTestRegression.test_reducec                 C   s6   t dgtd t jdgdd t jdgtdd d S )Nr,   Corderr   zerosintr'   r   r   r   test_zeros_order2   s   zTestRegression.test_zeros_orderc                 C   s$   t d}t|t j|ddu  d S )Nr)   FrF   )r   onesr   asarrayr   r6   r   r   r   test_asarray_with_order8   s   
z&TestRegression.test_asarray_with_orderc                 C   s"   t d}t|djj  d S )Nr)   rL   )r   rM   r   ravelflagsowndatarO   r   r   r   test_ravel_with_order=   s   
z$TestRegression.test_ravel_with_orderc                 C   s4   t ddd}|t d}|  t|| d S )Nr   
      <f8)r   linspaceastyper$   sortr
   )r   r6   cr   r   r   test_sort_bigendianB   s   z"TestRegression.test_sort_bigendianc                 C   s>   t dd}t g d}t |}||  t|| d S )N}   )   r^   r^   r   r!   )r   arangereshaper   r	   )r   r[   origidxidxr   r   r   test_negative_nd_indexingI   s
   
z(TestRegression.test_negative_nd_indexingc              	   C   s   t jjt dddd}tdtjd D ])}t }tj|||d |	d t j
|d	d
}W d    n1 s8w   Y  qd S )N  i     )itemsizer)   r!   r.   r   T)allow_pickle)r   charr   ra   r1   r   r2   r   r3   r4   r5   )r   car7   r8   r   r   r   test_char_dumpQ   s   
zTestRegression.test_char_dumpc                    s8   t d}|d d d df   fdd}tt| d S )N)r^   r,   r)   c                      s
   d _ d S )NrU   shaper   r9   r   r   rs_      
z2TestRegression.test_noncontiguous_fill.<locals>.rs)r   rI   r   AttributeError)r   r6   rq   r   rp   r   test_noncontiguous_fillZ   s   
z&TestRegression.test_noncontiguous_fillc                 C   s   t d d S Nr!   )r   bool_r'   r   r   r   	test_boold      zTestRegression.test_boolc                 C   sB   dddgfgfg}ddgfff}t j||d}|d d d  d S )Nr"   y)zc16r)   y              @y              @r#   rz   r   r   r   descrbufferhr   r   r   test_indexing1h   s   zTestRegression.test_indexing1c                 C   s*   dg}ddgf}t j||d}|d  d S )N)r"   i4r|   r,   r)   r#   r"   r}   r~   r   r   r   test_indexing2o   s   
zTestRegression.test_indexing2c                 C   s    t dg}t|d dg d S )N      ?       @r`   y?ٿ)r   r   r   r   r"   r   r   r   
test_roundv   s   zTestRegression.test_roundc                 C   s   t ddg}t|dkt ddg t|d dk t|d dk t ddd}t }|t t|dk W d    n1 sCw   Y  t|d dk d S )	NtestautoFTr!   r   rU   rV   )r   r   r	   r   rX   r   filterFutureWarning)r   r6   r9   supr   r   r   test_scalar_compare{   s   
z"TestRegression.test_scalar_comparec                 C   s<   d}d}t j|| gd gd gd d| d}|  d S )Nr!   u   􏿿r)   r,   rg   zU%sr#   )r   r   newbyteorder)r   ulen	ucs_valueuar   r   r   test_unicode_swapping   s   (z$TestRegression.test_unicode_swappingc                 C   s   t dd}|g  d S )Nr!   O)r   rI   fillr   r   r   r   test_object_array_fill   s   z%TestRegression.test_object_array_fillc                 C   s    t ttjdgdgddd d S )Nr6   foo)namesformatsr!   )align)r   	TypeErrorr   r$   r'   r   r   r   test_mem_dtype_align   s   
z#TestRegression.test_mem_dtype_alignc                 C   s   t jddd}t jddd}t |dk|dk @ }t |dk|dk @ }|dk|dk @ }|dk|dk @ }t||  t||  tt || dk tt || dk d S )N      $@>f8r#   rW   r)      r@   )r   ra   wherer
   nonzeror   all)r   r6   r9   xaxbyaybr   r   r   test_endian_bool_indexing   s   z(TestRegression.test_endian_bool_indexingc                 C   sT   t jddd}d|d< d|d< | }t |dk||}t g d	}t|| d S )
Nr,   >f4r#   ?gar?r!   gN)]?r)           )k]?r   r   )r   rI   maxr   r   r
   )r   netmax_netr   correctr   r   r   test_endian_where   s   z TestRegression.test_endian_wherec                 C   s   t ddg}t jd|d}d|d d< ddg|d d d d < |d d }|d d d }||d d< ||d d d< t|d d dk d S )N)head>u4)datar   r)   r!   r#   r   r   r   )r   r$   recarrayr   )r   dtbufr   dr   r   r   test_endian_recarray   s   z#TestRegression.test_endian_recarrayc                 C   s   t jdd}t jdd}t d}t d}t jj||j|j	}t j
|t ||d t|t d t jjj
|t ||d t|t d d S )Nr   r!   rU   )r   rU   out)r   randomrandnrM   r%   libstride_tricks
as_stridedro   stridesdotr0   r   core
multiarray)r   r"   ry   _z_dummyrz   r   r   r   test_mem_dot   s   

zTestRegression.test_mem_dotc                 C   s>   t d}t jddd}t|| t jddd}t|| d S )NrU   rW   r#   r   )r   ra   r	   r   refr"   r   r   r   test_arange_endian   s
   

z!TestRegression.test_arange_endianc                 C   s   t ddd}t ddt j}t|| t ddd}t ddt j }t|| t ddd}t ddt j }t|| t ddd}t ddt j}t|| d S )Nr   r!   rU   r`   )r   ra   infr	   r   r   r   r   test_arange_inf_step   s   


z#TestRegression.test_arange_inf_stepc                 C   s   t t j}t d|jd|j }t d|j|j}t|| t d|jd|j }t d|j|j }t|| t d|j d|j }t d|j |j }t|| t d|j d|j }t d|j |j}t|| d S )Nr   r)   )r   finfofloat64ra   epsr   r	   )r   r   r   r"   r   r   r   #test_arange_underflow_stop_and_step   s   


z2TestRegression.test_arange_underflow_stop_and_stepc                 C   s.   t jddd}t|jD ]}|| qd S )Nr   r!   )rg   r^   r   r+   r-   )r   r   normalr1   ndimargmax)r   r6   ir   r   r   test_argmax   s   zTestRegression.test_argmaxc                 C   s(   t dD ]}tt|gd d qd S NrU   r   )r1   divmodr   r   )r   r   r   r   r   test_mem_divmod  s   zTestRegression.test_mem_divmodc                 C   s4   t dd}t g d}ttt j||f d S )Nr*   )r,   r,   )r   r   r   )r   ra   rb   r   r   
ValueErrorhstackr   r"   ry   r   r   r   test_hstack_invalid_dims  s   z'TestRegression.test_hstack_invalid_dimsc                 C   sF   t dg}t d}tt| t ju  tt| t ju  d S Nr,   )r   r   r   typesqueezendarrayr   r6   r9   r   r   r   test_squeeze_type  s   
z TestRegression.test_squeeze_typec                 C   s   t dtjj d S Nr   )r   r   rA   identityr'   r   r   r   test_add_identity     z TestRegression.test_add_identityc                 C   s(   t ddd  }t|ddd   d S )Ng      7@r)      )r   float_r   rO   r   r   r   %test_numpy_float_python_long_addition     z4TestRegression.test_numpy_float_python_long_additionc                 C   s   t dtd d S )N0r   r   r   binary_reprr'   r   r   r   test_binary_repr_0  s   z!TestRegression.test_binary_repr_0c                 C   sN   t dtfdtfdg}t jjddg|d}|d   dd	 |d D  d S )
Nr   r8   )sz|S3)r!   皙?z1.0)r)   g@z2.0r#   r   c                 S      g | ]}|qS r   r   .0r   r   r   r   
<listcomp>&      z3TestRegression.test_rec_iterate.<locals>.<listcomp>)r   r$   rJ   floatrecr   tolist)r   r   r"   r   r   r   test_rec_iterate   s   zTestRegression.test_rec_iteratec                 C   s$   t dt j}t d}||k d S )Nhelloworldr   r   unicode_r   r   r   r   test_unicode_string_comparison(  s   
z-TestRegression.test_unicode_string_comparisonc                 C   sD   t jt jddddd d d df }t| t |  d S )Nr,   rL   rF   r)   )r   r   r   randr
   rQ   
frombuffertobytesr   r   r   r   'test_tobytes_FORTRANORDER_discontiguous.  s   (z6TestRegression.test_tobytes_FORTRANORDER_discontiguousc                 C   sV   t d}t d|_t|dgdgdgg t jdtd|_t|dgdgdgg d S )Nr,   r!   r,   r   r!   r)   r#   )r   r%   ra   flatr
   r   r   r   r   r   test_flat_assignment4  s
   
z#TestRegression.test_flat_assignmentc                    s:   t d  fdd} fdd}tt| tt| d S )Nr  c                      s   t d d d < d S r   )r   ra   r   r"   r   r   bfa@  s   z:TestRegression.test_broadcast_flat_assignment.<locals>.bfac                      s   t jdtd d d < d S )Nr,   r#   )r   ra   r   r   r  r   r   bfbC  s   z:TestRegression.test_broadcast_flat_assignment.<locals>.bfb)r   r%   r   r   )r   r  r  r   r  r   test_broadcast_flat_assignment<  s
   

z-TestRegression.test_broadcast_flat_assignmentc                 C   sr   t d}t jdtd}t d}dd }tt|||t j t t j||< tt|||t j t t j||< d S )NrU   r#   c                 S   s   || |< d S Nr   )r6   r9   r[   r   r   r   assignP     z7TestRegression.test_nonarray_assignment.<locals>.assign)r   ra   rM   boolr   r   nanr   )r   r6   r9   rr  r   r   r   test_nonarray_assignmentI  s   

z'TestRegression.test_nonarray_assignmentc              	   C   s   t dtfdt jfdg}tdtjd D ],}t }tj|||d |	d t
|}W d    n1 s7w   Y  t|| qd S )Nr"   ry   )rz   r   r)   r!   r.   r   )r   r$   rJ   object_r1   r   r2   r   r3   r4   r5   r   )r   r   r7   r8   dt_r   r   r   test_unpickle_dtype_with_objectX  s   
z.TestRegression.test_unpickle_dtype_with_objectc                 C   s>   t dtfdt jfg}ttt jddg| t dg| d S )Nr"   ry   r!   object)r!   r  )r   r$   rJ   r  r   r   r   r   r   r   r   r   -test_mem_array_creation_invalid_specificationb  s   z<TestRegression.test_mem_array_creation_invalid_specificationc                 C   sT   t jg dt jd}| }t jj|ddgdgd}t|| t||d d  d S )Nr!   r)   r,   r#   r!   3i4r   )ro   r   r   r   )r   r   r=   copyr   r	   r   )r   r6   r9   r  r   r   r   test_recarray_single_elementj  s
   
z+TestRegression.test_recarray_single_elementc                    s$   t g   fdd}tt| d S )Nc                      s    t d  d S NrU   r}   r   tmpr   r   	index_tmpv     z@TestRegression.test_zero_sized_array_indexing.<locals>.index_tmp)r   r   r   
IndexError)r   r  r   r  r   test_zero_sized_array_indexingr  s   
z-TestRegression.test_zero_sized_array_indexingc                 C   s.   t dd}d|d< | }t|d d d S )Nr    r^   s   a   r      a)r   	chararrayrstripr   r   r   r   r   test_chararray_rstrip{  s   z$TestRegression.test_chararray_rstripc                 C   s   t tjddgddgtdjd t tjddgddggtdjd t tjdd	gtdjd t tjg tdjd
 t tjg g g gtdjd t tjddgddgd gtdjd d S )Nr!   r)   r,   rg   r#   r,   r)   r)   r!   r)   r,   rg   r   )r,   r   r^   r   )r   r   r   r  ro   r'   r   r   r   test_object_array_shape  s    "(z&TestRegression.test_object_array_shapec                 C   s6   t d}dg}d}t t|| |d|  k d S )Nr    r   r   r   )r   rI   aroundabs)r   r"   ry   decimalr   r   r   test_mem_around  s   
"zTestRegression.test_mem_aroundc                 C   s$   t jd}|D ]}t|d qd S )N)r"   zx zx  r"   )r   rj   r   r   )r   r"   r[   r   r   r   test_character_array_strip  s   z)TestRegression.test_character_array_stripc                 C   s"   t g d}tt |d d S )N)
r!   r)   r,   rg   r^   r   r+   r-   r*   rU   r   )r   r   r   lexsortr   r   r   r   test_lexsort  s   zTestRegression.test_lexsortc                 C   s"   G dd d}t ttj|  d S )Nc                   @      e Zd Zdd Zdd ZdS )zCTestRegression.test_lexsort_invalid_sequence.<locals>.BuggySequencec                 S      dS Nrg   r   r'   r   r   r   __len__     zKTestRegression.test_lexsort_invalid_sequence.<locals>.BuggySequence.__len__c                 S   s   t r
  )KeyError)r   keyr   r   r   __getitem__  r7  zOTestRegression.test_lexsort_invalid_sequence.<locals>.BuggySequence.__getitem__N)__name__
__module____qualname__r6  r:  r   r   r   r   BuggySequence  s    r>  )r   r8  r   r1  )r   r>  r   r   r   test_lexsort_invalid_sequence  s   z,TestRegression.test_lexsort_invalid_sequencec                 C   sL   t jg dd}t |fjd dksJ d|_t |fjd dks$J d S )Ni8r#   r   )   )r   r   r1  ro   r   r   xsr   r   r   #test_lexsort_zerolen_custom_strides  s   z2TestRegression.test_lexsort_zerolen_custom_stridesc                 C   sf   t jg dd}d|_d|_t j|fddjd dksJ d|_d|_t j|fddjd dks1J d S )	Nr@  r#   r   r)   )rA  rA  r   axis)r)   r   r)   )r   r   ro   r   r1  rB  r   r   r   &test_lexsort_zerolen_custom_strides_2d  s   "z5TestRegression.test_lexsort_zerolen_custom_strides_2dc                 C   sX   t tjtjtdfdd t tjtjtg fdd t tjtjtdfdd d S )Nr!   r)   rF  rU   )r   r   	AxisErrorr1  ra   r   r'   r   r   r   test_lexsort_invalid_axis  s    z(TestRegression.test_lexsort_invalid_axisc                 C   s:   t g }t d|}t |fjd |jd ksJ d S )Nrg   r   )r   r$   r%   r1  ro   )r   r   rC  r   r   r   test_lexsort_zerolen_element  s   
$z+TestRegression.test_lexsort_zerolen_elementc                 C   s   t ddft jdgt jddft jdgdtfgddfg}|D ]*\}}tj|d	d
}t|| t|t j	rJ|j
jd urJ|j
jD ]	}tt|t q@q d S )Nu   漬s   cnumpy.core.multiarray
scalar
p0
(cnumpy
dtype
p1
(S'U1'
p2
I0
I1
tp3
Rp4
(I3
S'<'
p5
NNNI4
I4
I0
tp6
bS',o\x00\x00'
p7
tp8
Rp9
.OZ:Yr#   s   cnumpy.core.multiarray
_reconstruct
p0
(cnumpy
ndarray
p1
(I0
tp2
S'b'
p3
tp4
Rp5
(I1
(I1
tp6
cnumpy
dtype
p7
(S'f8'
p8
I0
I1
tp9
Rp10
(I3
S'<'
p11
NNNI-1
I-1
I0
tp12
bI00
S'O\x81\xb7Z\xaa:\xabY'
p13
tp14
b.)rL  r;   s0  cnumpy.core.multiarray
_reconstruct
p0
(cnumpy
ndarray
p1
(I0
tp2
S'b'
p3
tp4
Rp5
(I1
(I1
tp6
cnumpy
dtype
p7
(S'V8'
p8
I0
I1
tp9
Rp10
(I3
S'|'
p11
N(S'name'
p12
tp13
(dp14
g12
(g7
(S'f8'
p15
I0
I1
tp16
Rp17
(I3
S'<'
p18
NNNI-1
I-1
I0
tp19
bI0
tp20
sI8
I1
I0
tp21
bI00
S'O\x81\xb7Z\xaa:\xabY'
p22
tp23
b.bytesencoding)r   r   r   r   r   r   loadsr   
isinstancer   r$   r   r   str)r   	test_dataoriginalr   resultr;   r   r   r   test_pickle_py2_bytes_encoding  s$   
z-TestRegression.test_pickle_py2_bytes_encodingc                 C   s(   t dtjd D ]	}tjt|d qd S )Nr)   r!   r.   )r1   r   r2   dumpsr   )r   r7   r   r   r   test_pickle_dtype  s   z TestRegression.test_pickle_dtypec                 C   sl   t tjdddj d t tjdddj d t tjdddj d t tjdddj d d S )Nrg   z>c8r#   r   z<c8      @)r   r   ra   imagr   realr'   r   r   r   test_swap_real  s   zTestRegression.test_swap_realc                 C   s   t tg djdk d S )N)r!   NAr&  )r   r   r   ro   r'   r   r   r   test_object_array_from_list     z*TestRegression.test_object_array_from_listc                 C   s   t dt}d|ddg< d S )Nr  r!   r)   rH   rO   r   r   r   test_multiple_assign  s   z#TestRegression.test_multiple_assignc                 C   s   t tg jtdj d S r   )r   r   r   r$   rI   r'   r   r   r   test_empty_array_type     z$TestRegression.test_empty_array_typec                 C   sD   t ddg}t jd|d}| }t|d dko|d dk d S )	N)one<i4)tword  r(  r#   rc  r!   re  r)   )r   r$   r   byteswapr   r   r   r"   r   r   r   test_void_copyswap   s    z!TestRegression.test_void_copyswapc           
      C   sP  g d}g d}|D ]M}t jdd}| }t|tr%|d }|d }n|}t|| }tt ||}|d u r:|}|jjdv rJt	||k
 | q
t	t||  dk | q
|D ]K}t jdd}	t jdd}d }|d	kr||	 }	t|||	}n	d
| t }|d u rt|	||}tt ||	|}t	t||  dk | qZd S )N)r   argminsum)productprod)sometrueany)alltruer   cumsum)
cumproductcumprodptprr  rl  stdvarmeanroundminr   argsortrZ   )compresstakerepeatr-   r+   r!   r   uibg:0yE>rz     )r   r   r   r  rQ  tuplegetattrr$   kindr   r   r-  r   rQ   rY   rJ   )
r   funcs1funcs2funcarrarr2	func_methres1res2arr1r   r   r   test_method_args  s:   

zTestRegression.test_method_argsc                 C   s   g d}t |f d S )N)abccdefgh)r   r1  )r   lstr   r   r   test_mem_lexsort_strings0  s   z'TestRegression.test_mem_lexsort_stringsc                 C   s*   t ddgt dg }t|jd d S )Nr!   r)   r   r    )r   r   r   ro   r   r   r   r   test_fancy_index5  s   zTestRegression.test_fancy_indexc                 C   sT   dt jfdt jfg}t jdg|d}t jj||d}d|d< t|d |d k d S )Nr"   ry   )r!   gffffff@r#          @)r   int16r   r   r   r   )r   r   rarbr   r   r   test_recarray_copy:  s
   z!TestRegression.test_recarray_copyc                 C   sR   t ddgddgddgg}t g d}t g d}t jj|||gd	d
 d S )Nr!   r)   r,   rg   r^   r   )r6   ddxyz)r   r)   r,   z(2,)i4,a3,f8)r   )r   r   r   
fromarrays)r   x1x2x3r   r   r   test_rec_fromarrayB  s   z!TestRegression.test_rec_fromarrayc                 C   s*   t dt}d|jd< t|jd d d S )Nr'  r  r)   )r   r%   r  r  r   r   r   r   r   test_object_array_assignI  s   
z'TestRegression.test_object_array_assignc                 C   sL   t jg dt jd}tt j|t jddjd tt j|t jddjd d S )Nr  r#   r)   )r$   ndmin)r   r   r   r   float32r   r   r   r   r   test_ndmin_float64N  s   z!TestRegression.test_ndmin_float64c                 C   s|   t tjddgdddjj t tjddgdddjj t tjtjddddd	jj t tjtjddddd	jj d S )
Nr!   r)   rE   r,   )rG   r  rL   r'  rF   r  )r   r   r   rR   c_contiguousf_contiguousrM   r'   r   r   r   test_ndmin_orderT  s    $zTestRegression.test_ndmin_orderc                 C   s   t d}t j||}d S Nr^   )r   ra   rA   outer)r   r   r   r   r   test_mem_axis_minimization[  s   
z)TestRegression.test_mem_axis_minimizationc                 C   s   t dj d S Nr?   )r   r   rZ  r'   r   r   r   test_mem_float_imag`     z"TestRegression.test_mem_float_imagc                 C   s   t tdtdk d S )Nr   )r   r   )r   r   r$   r'   r   r   r   test_dtype_tupled  r_  zTestRegression.test_dtype_tuplec                 C   s   t dg d S )N)col1z()i4r   r$   r'   r   r   r   test_dtype_posttupleh  r  z#TestRegression.test_dtype_posttuplec                 C   s   t tdgdd d S )NXr[      X)r   r   r   r'   r   r   r   test_numeric_carray_comparel     z*TestRegression.test_numeric_carray_comparec                 C   s   t ttjdgg dgd d S )Nr  )r  r  r  z|S1r   r   r   r   r'   r   r   r   test_string_array_sizep  s   z%TestRegression.test_string_array_sizec                 C   s*   t d}t d}t| |  d S )N)uint32r)   )r  r|   )r   r$   r   __repr__)r   dt1dt2r   r   r   test_dtype_repru  s   

zTestRegression.test_dtype_reprc                 C   s   t djdddd}t|g dg dg t ddgdd	gd
dgddgg}|d d df }t|jddddddgd	dgg d S )Nr   r)   r,   rL   rF   )r   r)   rg   )r!   r,   r^   r!   rg   r^   r+   r-   )r   ra   rb   r   r   r   r   r   r   test_reshape_order{  s
   "&z!TestRegression.test_reshape_orderc                 C   s<   t d}t jjj|ddd}t|ddjd dk d S )Nr!   )r^   r*  )ro   r   r^   r   )r   rM   r   r   r   r   rb   r   rO   r   r   r   test_reshape_zero_strides  s   
z(TestRegression.test_reshape_zero_stridesc                 C   s   t d}d|_d S )NrE  )r`   r)   )r   rM   ro   rO   r   r   r   test_reshape_zero_size  s   

z%TestRegression.test_reshape_zero_sizer!   r   zUsing relaxed stride debug)reasonc                 C   sz   t jdt jdd d d }d}d}t|ddddj| t|jdddddd	j| tt jd
t jdddjd d S )N   r#   r)   )rA  r-   r-   r-   )r-      0   r  r,   r!   rL   rF   r   rg   rg   )r   rI   r=   r   rb   r   r   )r   r6   	strides_c	strides_fr   r   r   "test_reshape_trailing_ones_strides  s   $z1TestRegression.test_reshape_trailing_ones_stridesc                 C   s6   t dddd d df }t|dg d d S )Nr  rg   r,   r)   )r)   r)   r)   r^   r^   r^   r-   r-   r-   rV   rV   rV   )r   ra   rb   r   r|  rO   r   r   r   test_repeat_discont  s   z"TestRegression.test_repeat_discontc                 C   sH   t g d}t g dg}t|t |dk |t |dk  d S )Nr  r,   )r   r   r   r   )r   r6   a2r   r   r   test_array_index  s   *zTestRegression.test_array_indexc                 C   s&   t jg dtd}t| dk d S )Nr  r#   r)   )r   r   r  r   r   rO   r   r   r   test_object_argmax  s   z!TestRegression.test_object_argmaxc                 C   s   t ddg}t ddg}t ddgdt jddgdt jddgt jddgdt jddgfD ]}t|j||fv  q5d S )N)f0r   )f1r   )r  r@  )r  r@  r(  r)  zi4,i4)r   r$   r   r   r  r   )r   dt0r  r6   r   r   r   test_recarray_fields  s   z#TestRegression.test_recarray_fieldsc                 C   s<   t dd}| }t j| tt j|dd| d S )Nr^   r^   r!   r   rF  )r   ra   rb   r  r   shuffler   rZ   r   r   r   r   test_random_shuffle  s   z"TestRegression.test_random_shufflec                 C   s   t tj d S r
  )r   r   vdotr'   r   r   r   test_refcount_vdot  rx   z!TestRegression.test_refcount_vdotc                 C   s(   t jddg}t|dddg d S )NHiThereHTF)r   rj   r   r   
startswith)r   rk   r   r   r   test_startswith  s   zTestRegression.test_startswithc                 C   sx   t d}t g d}tt j|d tt j|d tt j|t g d tt j|t g d d S )Nr^   )r  r@   g      ?r         0@)r   r`   ir   )r  g      @r  )	r   ra   r   r   subtractrB   divider	   
accumulate)r   
tosubtracttodivider   r   r   %test_noncommutative_reduce_accumulate  s   
z4TestRegression.test_noncommutative_reduce_accumulatec                 C   s(   t ttjg dg t ttjdgg  d S ru   )r   r   r   convolver'   r   r   r   test_convolve_empty  r   z"TestRegression.test_convolve_emptyc                 C   s.   t jdgdd}t| t dg|j d S )N)r!   r   r!   r)   zi2,3i2r#   )   )r   r  i   )r   r   r	   rf  r$   r   r  r   r   r   test_multidim_byteswap  s   z%TestRegression.test_multidim_byteswapc                 C   s   t td d d S )Nza  za )r   r   r   itemr'   r   r   r   test_string_NULL  s   zTestRegression.test_string_NULLc                 C   s4   t jdggdgd}tt|d d d dk d S )N   abc)var1z|S20r#   r  r   )r   r   r   r   r  r   r   r   &test_junk_in_string_fields_of_recarray  s    z5TestRegression.test_junk_in_string_fields_of_recarrayc                 C   sR   t dd}t j|ddgdd}t |}t j|ddgd|d t|| d S )Nr  r)  r   r)   r!   rF  rG  r   )r   ra   rb   r{  
zeros_liker	   )r   r"   r6   r9   r   r   r   test_take_output  s
   
zTestRegression.test_take_outputc                 C   sh   d}t j|dgtd}trt|}z	|ddg W n	 ty$   Y nw tr2t|t|k d S d S )Ng     ^@r!   r#   r   d   )	r   r   r  r   sysgetrefcountr{  r   r   )r   r   r6   ref_dr   r   r   test_take_object_fail  s   
z$TestRegression.test_take_object_failc                 C   sR   t jdt jgt jd}t jdd t | W d    d S 1 s"w   Y  d S )Nr!   r#   raise)r   )r   r   r  r   errstate	array_str)r   r   r   r   r   test_array_str_64bit  s   "z#TestRegression.test_array_str_64bitc                 C   s`   ddl m} t|dd}tjddgdd}tjddgdd}t||t||t d S )	Nr   )radiansr!   gT@g     T@r   r#   rW   )mathr  r   
frompyfuncr   r   rY   r   )r   r  uradians
big_endianlittle_endianr   r   r   test_frompyfunc_endian  s   z%TestRegression.test_frompyfunc_endianc                 C   s   d}g }t ||f d S )N$aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa)r   r   )r   r   tr   r   r   test_mem_string_arr  s   z"TestRegression.test_mem_string_arrc                 C   s"   t jjd }|ttd d S )N)r)   r)   r)   r)   r)   r)   r)   r)   r)   r)   r)   r)   r)   r)   r)   r)   rA  )r   r   r   r0   listr1   r   r   r   r   test_arr_transpose  s   z!TestRegression.test_arr_transposec                 C   s,   t dgd }t|jddt d d S )Nr6       mr  )r   r   r	   ry  ra   r   r   r   r   test_string_mergesort  s   z$TestRegression.test_string_mergesortc                 C   s*   t jddd}t||  | k d S )Nr,   z>fr#   )r   ra   r   r   r   rO   r   r   r   test_argmax_byteorder  s   z$TestRegression.test_argmax_byteorderc                 C   s    t dD ]}t j| qd S r5  )r   ra   r   seed)r   lr   r   r   test_rand_seed  s   zTestRegression.test_rand_seedc                 C   s$   t jdtd}t j|td}~~d S )Nr^   r#   )r   rI   r   r   r   r   r   r   test_mem_deallocation_leak"  s   z)TestRegression.test_mem_deallocation_leakc                 C   s    t ttjddgddggt dS )zTicket #58312 13N)r   r   r   fromiterrR  r'   r   r   r   test_mem_on_invalid_dtype(  s    z(TestRegression.test_mem_on_invalid_dtypec                 C   sl   t g dg}t dgdgdgdgdgg}|d d d  }|d d d }tt ||t || d S )N)r!   r^      g     @_@iq  g      4@g      d@g      @g      @g      @r`   )r   r   r  r   r   )r   r"   ry   rz   y2r   r   r   test_dot_negative_stride,  s
   z'TestRegression.test_dot_negative_stridec                 C   s   dd }t t| d S )Nc                  S   s(   t ddg} t ddg}| |O } d S )Ni  i  )r   rM   rI   )r"   ry   r   r   r   rq   8  s   z.TestRegression.test_object_casting.<locals>.rs)r   r   )r   rq   r   r   r   test_object_casting4  s   z"TestRegression.test_object_castingc                 C   sR   t jddgdd}|d }tdtjd D ]}ttj||d}t|| qd S )NDRONDDROND1U6r#   r!   r)   r.   )r   r   r1   r   r2   rP  rW  r   )r   r"   elr7   newr   r   r   test_unicode_scalar?  s   z"TestRegression.test_unicode_scalarc                 C   sZ   dD ](}t |}tt jd|dj| tt jd|dj| tt jd|dj| qd S )N)r   z<f4r   r#   r@   r^   )r   r$   r   ra   )r   Tr   r   r   r   test_arange_non_native_dtypeG  s   
z+TestRegression.test_arange_non_native_dtypec              	   C   s   t jdtd}t jdtd}dd }tt|||t jdtd tt|||t jdtd tt||j|t jdtd tt||j|t jdtd d S )NrU   r#   )r~  c                 S   s   || |dk< d S r   r   )r"   r   r   r   r   r   iaS  s   zFTestRegression.test_bool_flat_indexing_invalid_nr_elements.<locals>.iar*   rV   )	r   rM   r   r   r   r   rI   r   r  )r   r   r"   r  r   r   r   +test_bool_flat_indexing_invalid_nr_elementsO  s    z:TestRegression.test_bool_flat_indexing_invalid_nr_elementsc                 C   s,   t jdgtd}t jdt jd}||  d S )Nr   r#   )r   r   r   r=   )r   r"   indexr   r   r   test_mem_scalar_indexing]  s   z'TestRegression.test_mem_scalar_indexingc                 C   s   t tjdddd d S )Nr   r,   )width000r   r'   r   r   r   test_binary_repr_0_widthc  s   z'TestRegression.test_binary_repr_0_widthc                 C   s   t tjdtddg d d S )Nz12:09:09:)r$   sep)r  r*   r*   )r   r   
fromstringrJ   r'   r   r   r   test_fromstringf  s   zTestRegression.test_fromstringc                 C   s4   t g d}t ddg}t||ddg d S )N)r6   aar9   r   er,   )r   r   r   searchsortedr   r   r   r   !test_searchsorted_variable_lengthj  s   z0TestRegression.test_searchsorted_variable_lengthc                 C   sJ   t jddd}t|jddt ddg t|jddt ddg d S )	N     |S2r#   r  r  r!   r   q)r   r   r	   ry  r   r   r   r   r   test_string_argsort_with_zeroso  s    z-TestRegression.test_string_argsort_with_zerosc                 C   s4   t jddd}t jddd}tt j|dd| d S )Nr,  r-  r#   s     r.  r  )r   r   r	   rZ   r   r   r   r   test_string_sort_with_zerosu  s   z*TestRegression.test_string_sort_with_zerosc                 C      t djdd d S N)r   r,   rg   r`   r,   r   indicesr  rb   r'   r   r   r   test_copy_detection_zero_dim{  r  z+TestRegression.test_copy_detection_zero_dimc                 C   sN   t d}t|d|djd d   t|djd d  |d d S )NrU   >i4rd  )r   ra   r	   rY   r  r   r   r   r   test_flat_byteorder  s   
 $z"TestRegression.test_flat_byteorderc                 C   s&   t g d}ttt |d d S )N)r   g       r   z
[0. 0. 0.])r   r   r   rR  r-  r   r   r   r   test_sign_bit  s   zTestRegression.test_sign_bitc                 C   sH   t dt dfD ]}t jg d|d}t|jd j|d j q
d S )Nrd  r6  r_   r#   r   )r   r$   r   r   r  rg  r   r   r   test_flat_index_byteswap  s   z'TestRegression.test_flat_index_byteswapc                 C   r1  r2  r3  r'   r   r   r   test_copy_detection_corner_case  r  z.TestRegression.test_copy_detection_corner_casec                 C   s0   t djdd}t|jd|j |jf d S r2  )r   r4  r  rb   r   r   rh   )r   r9   r   r   r    test_copy_detection_corner_case2  s   z/TestRegression.test_copy_detection_corner_case2c                 C   s  t tdsd S tj}t }t }t }||}||}||}tjdtjd}||d d < t|||d  ||d d < t||| t|||d  ||d d< t|||d  t|||d  ~tjdtjd}tjdtjd}	||	d< t|||d k ||	d< t|||d k |	|d d d d f< t|||d	 k t|||d	 k d |d d df< t|||d k ~~	tjdtjd}||d d df< ||d d df< t|||d k t|||d k |	 }
t|||d
 k t|||d
 k |d d df 	 }
t|||d
 k t|||d k |
 }
t|||d
 k t|||d
 k ~~
tjdtjd}tjdtjd}
||d< ||
d< t|||d k t|||d k t||
f}t|||d d k t|||d d k |jddd}t|||d d k |jg ddd}t|||d d k tdgdgdgdgdggt}|||
}t|||d d k t|||d d k ~d S )Nr  r^   r#   r)   r,   )r^   r)   r   r!   r   rU   r  .rF  r~  r  )hasattrr  r  r  r   rI   r  r   r   r  flattenconcatenater|  r{  r   rJ   choose)r   cntr6   r9   r[   cnt0_acnt0_bcnt0_cr  arr0r  r  r  r"   r   r   r   test_object_array_refcounting  s   
 z,TestRegression.test_object_array_refcountingc                 C   s*   G dd d}t | g}|t d S )Nc                   @      e Zd Zdd ZdS )z>TestRegression.test_mem_custom_float_to_array.<locals>.MyFloatc                 S   r4  r  r   r'   r   r   r   	__float__  r7  zHTestRegression.test_mem_custom_float_to_array.<locals>.MyFloat.__float__N)r;  r<  r=  rG  r   r   r   r   MyFloat      rH  )r   
atleast_1drY   r   )r   rH  r  r   r   r   test_mem_custom_float_to_array  s   z-TestRegression.test_mem_custom_float_to_arrayc                 C   sn   G dd d}| }t jdt jd}||d d < ~||d d < t|d j  ||d d < t|d j  d S )Nc                   @      e Zd ZdZdd ZdS )zKTestRegression.test_object_array_refcount_self_assign.<locals>.VictimObjectFc                 S   s
   d| _ d S )NT)deletedr'   r   r   r   __del__  rr   zSTestRegression.test_object_array_refcount_self_assign.<locals>.VictimObject.__del__N)r;  r<  r=  rM  rN  r   r   r   r   VictimObject      rO  r^   r#   r   )r   rI   r  r   rM  )r   rO  r   r  r   r   r   &test_object_array_refcount_self_assign  s   z5TestRegression.test_object_array_refcount_self_assignc                 C   s(   g d}t ttjdd |D dd d S )Nr  c                 S   r   r   r   )r   xir   r   r   r   !  r   zITestRegression.test_mem_fromiter_invalid_dtype_string.<locals>.<listcomp>Sr#   )r   r   r   r  r   r   r   r   &test_mem_fromiter_invalid_dtype_string  s   
z5TestRegression.test_mem_fromiter_invalid_dtype_stringc                 C   s:   t d}t d gd t}tt |  t | d S )N      )r   
setbufsizer   r  r   rn  )r   oldsizer6   r   r   r   test_reduce_big_object_array#  s   
z+TestRegression.test_reduce_big_object_arrayc                 C   s   t dt d  d S r   )r   rI   r   r'   r   r   r   test_mem_0d_array_index*  r  z&TestRegression.test_mem_0d_array_indexc                 C   sT   t jdkrtd}ntd}tjdg|d}|d t|tjdg|d d S )Nlittler6  rd  r!   r#   )r  	byteorderr   r$   r%   r   r   r   )r   r$   r"   r   r   r   test_nonnative_endian_fill.  s   


z)TestRegression.test_nonnative_endian_fillc                 C   sX   t d}tdtjd D ]}ttj||d}t d|jd f}t 	|| qd S )N)   (   r)   r!   r.   r   )
r   rI   r1   r   r2   rP  rW  rM   ro   r   )r   r"   r7   ry   rz   r   r   r   test_dot_alignment_sse29  s   
z&TestRegression.test_dot_alignment_sse2c                 C   s   t t td}t |d}t|d}tj|dd}W d    n1 s&w   Y  |tj	}t
|jd d |jd d k d S )Nr   zastype_copy.pklr  latin1rN  r   )r   joindirname__file__openr   r5   rY   r   r   r   __array_interface__)r   data_dirfilenamer8   xpxpdr   r   r   test_astype_copyC  s   
zTestRegression.test_astype_copyc                 C   s`   dd l }|ddgddgg}|jd|jd}z|jdd	gd|d
 td ty/   Y d S w )Nr   r!   r)   r,   rg   )r)   r!   r#   TFr  zQcompress with an out which cannot be safely casted should not return successfully)numpyr   rI   singlerz  AssertionErrorr   )r   r   r6   r9   r   r   r   test_compress_small_typeO  s   z'TestRegression.test_compress_small_typec                 C   s.  G dd dt j}|g dg dgd}t|jdk |d t|jdk |  t|jdk |d t|jdk |g dg d	 t|jdk |d
t j	d t|jdk |
  t|jdk t|djdk t|djdk t|djdk t|djdk t|djdk t||jdk t| jdk t|ddjdk t|g djdk t| jdk t| jdk t| jdk |g dd}g dg dg dg dg}t||jdk t|djdk t|djdk t| jdk t| jdk t|t j	djdk t|jjdk t|djdk t|djdk t| djdk t|! jdk t|"djdk t|#djdk t|$ jdk t|j%jdk t|&djdk t|'djdk t|( jdk t|) jdk t|*djdk t|+djdk t|,ddjdk t|-g djdk t|. jdk t|j/jdk t|0djdk t|1|jdk tt2|3 d t ju  tt2|3 d t ju  d S )Nc                   @   r3  )z1TestRegression.test_attributes.<locals>.TestArrayc                 S   s   t |}|| }||_|S r
  )r   r   viewinfo)clsr   rq  rU  r   r   r   __new__`  s   

z9TestRegression.test_attributes.<locals>.TestArray.__new__c                 S   s   t |dd| _d S )Nrq  r  )r  rq  )r   objr   r   r   __array_finalize__f  r  zDTestRegression.test_attributes.<locals>.TestArray.__array_finalize__N)r;  r<  r=  rs  ru  r   r   r   r   	TestArray_  s    rv  )r!   r)   r,   rg   )r^   r   r+   r-   jubba)rg   r)   r)   )r)   r,   rg   )r   r,   rg   rg   r   r!   r+   r   r!   r!   )r)   r,   r!   r   )r   r!   r)   r,   )rU   rV   r                 )r^     r  !   )r)   rg   )r)   r,   r^   )4r   r   r   rq  resizerZ   r   putsetfieldr=   setflagsr   rn  r   ri  ry  rY   rf  cliprz  conj	conjugater  r?  rr  rp  diagonalr=  getfieldrZ  r   rv  rx  r   rl  rs  rQ   r[  r|  rb   rw  r   rt  rj  swapaxesr{  r0   r  ru  rp  r   r   )r   rv  datdat2choicesr   r   r   test_attributes]  sx   


zTestRegression.test_attributesc                 C   s^   t jdt jd}t jddd|d}| }t|d  |d k t|d  |d k d S )	Nr_  r#   r)   zi4,f8,f8zid,x,y)r   r   r   r   r!   )r   rI   int8r   r   r   )r   r   r6   r9   r   r   r   test_recarray_tolist  s
   z#TestRegression.test_recarray_tolistc                 C   s   t d}tt|j d S r  )r   ra   r   r   r  rO   r   r   r   test_nonscalar_item_method  s   
z)TestRegression.test_nonscalar_item_methodc                 C   s*   t jddd}t g d}t|| d S )N123r[   r#   )   1   2   3r   r   r   r   r   r   r   test_char_array_creation  s   z'TestRegression.test_char_array_creationc                 C   sT   t ddD ]"}d| }tdd| fdg}tjdg|d}tt|d	|d
 qd S )Nr!   r*   zunicode offset: %d charsr6   zS%d)r9   U2)r"  r9   r#   z[(b'a', 'b')]err_msg)r1   r   r$   r   r   rR  )r   r   msgr  r"   r   r   r   test_unaligned_unicode_access  s   z,TestRegression.test_unaligned_unicode_accessc              	   C   s|   t jdd. t t j dddt jt jg}t |}t dddddt jg}t|| W d    d S 1 s7w   Y  d S )	Nignore)invalidy             ?r   y       @      y              y                y      ?        )r   r  r   r   r  signr   )r   rE   havewantr   r   r   test_sign_for_complex_nan  s   
"z(TestRegression.test_sign_for_complex_nanc                 C   sj   t dtfdtfg}t d|}t|jj}d|d< ||j_t|jjd dk t|jjd dk d S )Nr   barrU   notfoor   r!   )r   r$   r   rI   r  r   r   )r   r   r6   r9   r   r   r   test_for_equal_names  s   z#TestRegression.test_for_equal_namesc                 C   s   t  }t d}t d}t ddg}t d i g g}t|d u  tt|tu  tt|tu  tt|t ju  t|jtk t|jtk d S )Nr,   rY  rg   r^   )	r   r  r   r   rJ   r   r   r$   r  )r   r6   r9   b2r[   r   r   r   r   test_for_object_scalar_creation  s   

z.TestRegression.test_for_object_scalar_creationc                 C   s,   t ddgddgg}tt|jddd d S )Nr   r!   r)   r,   r'  rE   rF   )r   r   r   r   r  r   r   r   r   %test_array_resize_method_system_error  s   z4TestRegression.test_array_resize_method_system_errorc                 C   s   t d}ttdd | dS )zTicket #882r!   c                 S   s
   |  g S r
  )r?  r  r   r   r   <lambda>  s   
 z?TestRegression.test_for_zero_length_in_choose.<locals>.<lambda>N)r   r   r   r   rO   r   r   r   test_for_zero_length_in_choose  s   
z-TestRegression.test_for_zero_length_in_choosec                 C   s   t tdd  dS )zTicket #947.c                   S   s   t jdgddS )Nr!   r  r  r}   r   r   r   r   r    r   z:TestRegression.test_array_ndmin_overflow.<locals>.<lambda>N)r   r   r'   r   r   r   test_array_ndmin_overflow  r   z(TestRegression.test_array_ndmin_overflowc                 C   sN   ddg}ddt fg}tj||d}t|d d dk t|d d d	k d S )
N)johnrg   )maryr^   ))z	source:yyr;   r   )z	source:xxidr#   r   r  r!   rg   )rJ   r   r   r   )r   r   dtype1r  r   r   r   test_void_scalar_with_titles  s
   z+TestRegression.test_void_scalar_with_titlesc                 C   s   t d}t jjt d|jjf| }t|	|j|k t 
dd}t jj|j| }t||k tdtjd D ]}tttj||d|k tttj||d|k q?d S )Nr   Vr   zi,ir)   r!   r.   )r   r   r   r   scalarr$   rh   r  r   rp  rM   r1   r   r2   rP  rW  )r   test_stringtest_string_void_scalartest_recordtest_record_void_scalarr7   r   r   r   test_void_scalar_constructor  s,   

z+TestRegression.test_void_scalar_constructorc                 C   s   dD ]^}dD ]Y}t dD ]R}tjdgtjd}tr#|j|dfdd n||df tjdgtjd}tr?|jd|fdd n|d|f t||}tt|dk t|j	||fk qqqd S )Nr  r,   gKPjr#   r   F)refcheck)
r1   r   r   r   r   r  r   r   r   ro   )r   r  nkr"   ry   rz   r   r   r   !test_blasdot_uninitialized_memory  s"   z0TestRegression.test_blasdot_uninitialized_memoryc                 C   s>   d}t td t| W d    d S 1 sw   Y  d S )N            z"Maximum allowed dimension exceeded)r   r   r   r%   r   szr   r   r   
test_zeros(  s   "zTestRegression.test_zerosc                 C   sL   d}t td t| ttj|k W d    d S 1 sw   Y  d S )Nr  zMaximum allowed size exceeded)r   r   r   ra   r   sizer  r   r   r   test_huge_arange0  s   
"zTestRegression.test_huge_arangec                 C   h   t jttddd}t jttddd}tt |t g dk tt |t g dk d S NrU   r9   r#   B)
r   r!   r)   r,   rg   r^   r   r+   r-   r*   r   r  r  r1   r   ro  r   r   r   r   r   test_fromiter_bytes9  s    z"TestRegression.test_fromiter_bytesc                 C   s   t jt dt dftd}t|jd t|jt t t|d t d t|d t d t jdt dftd}t|jd t|jt t t|d d t|d t d d S )Nr)   r#   r|   r   r!   r    )r   r   rM   r  r   ro   r$   rO   r   r   r   %test_array_from_sequence_scalar_array@  s   z4TestRegression.test_array_from_sequence_scalar_arrayc                 C   sB   t jt g t dtgtd}t|jd t|jt t d S )Nr   r#   r|   )r   r   r  r   ro   r$   )r   r  r   r   r   &test_array_from_sequence_scalar_array2O  s    z5TestRegression.test_array_from_sequence_scalar_array2c                 C   s4   t ttjdgd tj t ttjdgd tj d S )Ni  r+   if  r^   )r   r   r   rI   r  r'   r   r   r   test_array_too_bigU  s   z!TestRegression.test_array_too_bigc                 C   s@   t dt jfg}tt|jd tt|jd tt|jd d S )Nr  f2r!   r   )r   r$   uintr   r8  r:  r   r   r  r   r   r   test_dtype_keyerrors_Z  s   z$TestRegression.test_dtype_keyerrors_c                 C   sP   t jdt jd}t jdt jd}t |d d d |f}t|t jdtd d S )Nr  r#   r`   )r   rM   r  r=   r1  r   ra   rJ   )r   r6   r9   r   r   r   r   test_lexsort_buffer_lengtha  s   z)TestRegression.test_lexsort_buffer_lengthc                 C   s   t jddgt jd}t j|t jdfd}t|| t j|t jdfd}t|t ddg t j|t jdfd}t|| t jd	t jdfd}|d d  |d d < t|| d S )
Nabcdefghijklmnopr#   r-   r^   abcdeijklmr  r|   )r   r   r  str_r   r%   )r   r6   r9   r[   r   r)  r   r   r   !test_object_array_to_fixed_stringh  s   

z0TestRegression.test_object_array_to_fixed_stringc                 C   s.   t jddgddggdd}ttt j|d d S )Nr  u   ΣasdferwUr#   S4)r   r   r   UnicodeEncodeErrorrO   r   r   r   test_unicode_to_string_castu  s   
z*TestRegression.test_unicode_to_string_castc                 C   sT   t jdgd dd}ttt j|d |ddd dd df }ttt j|d d S )	N      U3r#   rS  r,   +   r`   )r   r   r   r  rb   r   r   r   r   !test_unicode_to_string_cast_error|  s   z0TestRegression.test_unicode_to_string_cast_errorc                 C   s   t ddg}t|jdk t ddg}t|jdk t g d}t|jdk t g d}t|jdk t g d}t|jdk d S )N1234r  rA  )r  r  12345r{  )r  r  r  )r  r  r  )r   r   r   rh   rO   r   r   r   (test_mixed_string_unicode_array_creation  s   z7TestRegression.test_mixed_string_unicode_array_creationc                 C   s   t jddd}t g dd}||d< t| t |d  d|d d< d|d< t j|d d	d t |d  |  t| d S )
Nrm   O,cr#   )
r6   r9   r[   r   r)  r8   gr   r   jS10r  FOOr!   rS  )	r   rI   r   reprr   r   rZ   r  deepcopyr   a1r  r   r   r    test_misaligned_objects_segfault  s   z/TestRegression.test_misaligned_objects_segfaultc                 C   s4   t jddd}t jddd}|d |d< d|d< d S )N)r6   Foozc,Or#   )r9   Barr  Bazr}   )r   s1s2r   r   r    test_misaligned_scalars_segfault  s   z/TestRegression.test_misaligned_scalars_segfaultc                 C   sL   t jddgddggdd}t jddgddggdd}t |d |d  d S )N)r!   r6   )r   r6   r  r#   )rg   r6   )r)   r6   r  )r   r   r   r   r   r   r   #test_misaligned_dot_product_objects  s   z2TestRegression.test_misaligned_dot_product_objectsc                 C   s   dd t jd D D ]F}t dg|}|d }| }|jj|jjkr2t|t j| |	 d nt|t j| |d t|j
|j
  t|j|j  q
d S )Nc                 S   s   g | ]	}t d | qS )<r  )r   r  r   r   r   r     s    z?TestRegression.test_byteswap_complex_scalar.<locals>.<listcomp>Complexy@r   r#   )r   	typecodesr   rf  r$   r\  r   r   r  r   r[  rZ  )r   r$   rz   r"   ry   r   r   r   test_byteswap_complex_scalar  s   z+TestRegression.test_byteswap_complex_scalarc                 C   sR   d}d}t d|fd|fggd}| d d || < t|d |d k d S )Naaaabbbbr   r!   i8,Or   r!   r   r   )r   r   rQ   r   r   )r   strastrbr"   r   r   r   $test_structured_arrays_with_objects1  s
   z3TestRegression.test_structured_arrays_with_objects1zPython lacks refcountsc                 C   sz   d}d}t |}t |}td|fd|fggd}| d d || < tt ||k tt ||d k d S )Nr  r  r   r!   r  r)   )r  r  r   r   rQ   r   r   )r   r  r  numbnumar"   r   r   r   $test_structured_arrays_with_objects2  s   

z3TestRegression.test_structured_arrays_with_objects2c                 C   s   ddg}t ttj| d S )N))r6   r6   r   )r9   r   )r   r   r   r$   )r   dtspecr   r   r   test_duplicate_title_and_name  s   z,TestRegression.test_duplicate_title_and_namec                 C   s^   dd }t jdd t jt jt jt jtfD ]}|| qW d    d S 1 s(w   Y  d S )Nc                 S   s    t t | jg}|d }d S )Nr`   )r   r   iinforx  )r  rx  r   r   r   	test_type  s   zGTestRegression.test_signed_integer_division_overflow.<locals>.test_typer  )over)r   r  r  r  r=   r&   rJ   )r   r  r  r   r   r   %test_signed_integer_division_overflow  s   
"z4TestRegression.test_signed_integer_division_overflowc                 C   s:   ddl m} tjg dtdd}t|| d d S )Nr   )sha256r  rd  r#   @4636993d3e1da4e9d6b8f87b79e8f7c6d018580d52661950eabc3845c5897a4d)hashlibr  r   r   r$   r   	hexdigest)r   r  r"   r   r   r   test_buffer_hashlib  s   z"TestRegression.test_buffer_hashlibc                 C   s   t dd d S )Nr"   z>c)r   rN   r'   r   r   r   test_0d_string_scalar  r  z$TestRegression.test_0d_string_scalarc                 C   s   t tttd d S )Ni)r   r   isfinitelog1pexp2r'   r   r   r   test_log1p_compiler_shenanigans  rD   z.TestRegression.test_log1p_compiler_shenanigansc                 C   r  r  r  r   r   r   r   test_fromiter_comparison  s    z'TestRegression.test_fromiter_comparisonc                 C   s<   t t tjddd W d    d S 1 sw   Y  d S )Ns   aa, aa, 1.0,)r%  )r   DeprecationWarningr   r&  r'   r   r   r   test_fromstring_crash  s   
"z$TestRegression.test_fromstring_crashc              
   C   s   dd t j D }t g t j}g }|D ])}||}|D ]}||}zt || W q ty=   |||f Y qw q|rGt	d| d S )Nc                 S   s(   g | ]}t |tjrt |tjs|qS r   )
issubclassr   numbertimedelta64)r   r"   r   r   r   r     s
    


z3TestRegression.test_ticket_1539.<locals>.<listcomp>zFailures: %r)
r   
sctypeDictvaluesr   rv   rY   r   r   appendrn  )r   dtypesr6   failuresr"   r9   ry   r[   r   r   r   test_ticket_1539  s    

zTestRegression.test_ticket_1539c                 C   s8   t t j}d D ]}ttt||t j|d q
d S )Nz"eps epsneg max min resolution tinyr  )r   r   r  splitr   r   r  )r   r"   r;   r   r   r   test_ticket_1538
  s   zTestRegression.test_ticket_1538c                 C   sp   t d}t d}|jd|d}t||u  t||jdd |jd|d}t||u  t||jdd d S )N)r  rg   r^   r   )r+   r-   r*   r&  r!   r  rF  )r   r   rI   ru  r   r	   rt  )r   r   r   retr   r   r   test_ticket_1434  s   

zTestRegression.test_ticket_1434c                 C   s"   t dtj}ttd|| d S )Nr   r!   )complexr   r  r   maximum)r   cnanr   r   r   test_complex_nan_maximum  s   z'TestRegression.test_complex_nan_maximumc                 C   s4   G dd dt j}|d}d|d< t|d d d S )Nc                   @   rF  )zCTestRegression.test_subclass_int_tuple_assignment.<locals>.Subclassc                 S   s   t |f| S r
  )r   rM   rp  )rr  r   r   r   r   rs  $  r  zKTestRegression.test_subclass_int_tuple_assignment.<locals>.Subclass.__new__N)r;  r<  r=  rs  r   r   r   r   Subclass#  rI  r(  r^   r)   r*  r   )r   r   r   )r   r(  r"   r   r   r   "test_subclass_int_tuple_assignment!  s   z1TestRegression.test_subclass_int_tuple_assignmentc                 C   sJ   G dd dt j}t g d|}t |||}tt|t| d S )Nc                   @   s   e Zd ZdS )z@TestRegression.test_ufunc_no_unnecessary_views.<locals>.SubclassN)r;  r<  r=  r   r   r   r   r(  -  s    r(  r  )r   r   r   rp  rA   r   r  )r   r(  r"   ry   r   r   r   test_ufunc_no_unnecessary_views+  s   z.TestRegression.test_ufunc_no_unnecessary_viewsc                 C   s   t jdtd}d|_t dt}t j|jd |jd}t|}z|j	|dd|d	 W n	 t
y4   Y nw t|}t|| d S )
NrA  r#   r  )r-   rg   )rg   )ro   r$   r   r  )rG  moder   )r   ra   r   ro   rM   r%   r$   r  r  r{  r   r   )r   r6   lutrgbac1c2r   r   r   test_take_refcount3  s   

z!TestRegression.test_take_refcountc                 C   s   t  }|j}|tjddd  |d tj|ddd}t	|tj
g ddd t	| d |d	 tj
g d
dd| t	| d |d	 |d}t	|d |d |d tj|ddd}t	|tj
g ddd |  d S )N   u1r#   r{  rg   )countr$   rz  r  r_  r  r  r,   s   P   )r$   r3  )T   U   V   W   )tempfileNamedTemporaryFilefilewriter   ra   r  r4   fromfiler   r   telltofilereadclose)r   r  r8   r"  r   r   r   r   test_fromfile_tofile_seeksB  s$   






z)TestRegression.test_fromfile_tofile_seeksc              	   C   sv   t jt jt jfD ]0}|d}tt jt| t }|t j t	t|t|j
 W d    n1 s3w   Y  qd S Nr   )r   csinglecdoubleclongdoubler   ComplexWarningr   r   r   r   r[  )r   tpr"   r   r   r   r   test_complex_scalar_warning]  s   z*TestRegression.test_complex_scalar_warningc                 C   s0   t jt jt jfD ]}|d}tt|d qd S rC  )r   rD  rE  rF  r   r$  r   rH  r"   r   r   r    test_complex_scalar_complex_caste  s   z/TestRegression.test_complex_scalar_complex_castc                 C   sn   t jt jt jfD ],}t jg d|d}t|tt jg dtd tt 	| tt 
|dd   qd S )N)r   y              ?y      ?        r#   rx  r!   )r   rD  rE  rF  r   r   rY   r  r   rn  r   rJ  r   r   r   test_complex_boolean_castj  s   z(TestRegression.test_complex_boolean_castc                 C   s   d}t tt|| d S )Nl    )r   rJ   r   uint64r   r   r   r   test_uint_int_conversionr  s   z'TestRegression.test_uint_int_conversionc                 C   sB   t jdd tdD dd}d|j_t| ttt|jdd d S )	Nc                 s   s     | ]}|d  |d fV  qdS )r,   r)   Nr   r   r   r   r   	<genexpr>w  s    zCTestRegression.test_duplicate_field_names_assign.<locals>.<genexpr>rU   zi8,f8r#   )r  r  r   )r  r  )	r   r  r1   r$   r   r  r   r   setattr)r   r  r   r   r   !test_duplicate_field_names_assignv  s   z0TestRegression.test_duplicate_field_names_assignc                 C   sH   t jddgtd}t ddg}t||kddg t||kddg d S )Nr6   r9   r#   r[   TF)r   r   r  r	   r  r   r   r   test_eq_string_and_object_array|  s   z.TestRegression.test_eq_string_and_object_arrayc                 C   sT   t jg dt jd}t j|_t| d dg |  }t| d dg d S )N)           r   r#   r   r!   )	r   r   r  r  r$   r   r   rf  r   rO   r   r   r   test_nonzero_byteswap  s
   z$TestRegression.test_nonzero_byteswapc                 C   s   t tg ddgdk d S )N?)r   r   find_common_typer'   r   r   r   test_find_common_type_boolean  r_  z,TestRegression.test_find_common_type_booleanc                 C   s0   t dg}|dd  d9  < t|dg d S )Nr?   r!   r)   r  rO   r   r   r   test_empty_mul  s   zTestRegression.test_empty_mulc                 C   sD   t tdjd tjddgddggtjd t tdjd d S )Nr  rU   r  r)   zlong   
0123456789r#   )r   r   r$   rh   r   string_r'   r   r   r   test_array_side_effect  s   z%TestRegression.test_array_side_effectc                 C   s.   t ddg}tt | tt | d S )Ng?g?)r   r   r   rn  r   rO   r   r   r   test_any_float  s   zTestRegression.test_any_floatc                 C   s.   t jddd}t|jdd|d  d S )Ni'  r8   r#   r   )r   ra   r   rj  rY   rO   r   r   r   test_large_float_sum  s    z#TestRegression.test_large_float_sumc                 C   sN   t jdt jd}t jdt jd}t jdt jd}t j|||d t|d d S )Nr?   r#   r   r  )r   r   r  r   rA   r   r   r6   r9   r[   r   r   r   test_ufunc_casting_out  s
   z%TestRegression.test_ufunc_casting_outc                 C   sX   t tdjj t tdjj t ttdjj t ttdjj d S r  )r   r   r   rR   r  r  r  r'   r   r   r   test_array_scalar_contiguous  s   z+TestRegression.test_array_scalar_contiguousc                 C   s`   t d }t jdddd d d d d d df  }t|jj t|jj t|jj d S )Nr(  )r)   r)   r)   rL   rF   r)   )r   rI   r   r   rR   r  r  r   r   r   r   test_squeeze_contiguous  s
   *z&TestRegression.test_squeeze_contiguousc                 C   s  G dd dt j}|t dgdgdgg}tt |t g d tt j|d dt g d tt t j|dd W d    n1 sHw   Y  tt t j|dd W d    n1 scw   Y  tt t jt dgdgdggdd W d    d S 1 sw   Y  d S )	Nc                       s$   e Zd Zdd Z fddZ  ZS )z=TestRegression.test_squeeze_axis_handling.<locals>.OldSqueezec                 S   s   t || }|S r
  )r   rN   rp  )rr  input_arrayrt  r   r   r   rs    s   zETestRegression.test_squeeze_axis_handling.<locals>.OldSqueeze.__new__c                    s
   t   S r
  )superr   r'   	__class__r   r   r     rr   zETestRegression.test_squeeze_axis_handling.<locals>.OldSqueeze.squeeze)r;  r<  r=  rs  r   __classcell__r   r   re  r   
OldSqueeze  s    rh  r!   r)   r,   r  rF  r   )r   r   r   r   r   r   r   r   )r   rh  
oldsqueezer   r   r   test_squeeze_axis_handling  s"   



""z)TestRegression.test_squeeze_axis_handlingc                 C   sP   t jt dd}t jt dd}t|jj t|jj t|jj d S )N)r)   r!   r)   r  r!   )r   rA   rB   rI   r   rR   r  r  r   r   r   r   test_reduce_contiguous  s
   z%TestRegression.test_reduce_contiguousz"Pyston disables recursion checkingc                 C   s:   t jdtd}||d< ttt| ttt| d |d< d S Nr   r#   r   )r   r   r  r   RecursionErrorrJ   r   rO   r   r   r    test_object_array_self_reference  s
   z/TestRegression.test_object_array_self_referencec                 C   sl   t jdtd}t jdtd}||d< ||d< ttt| d |d< t jdtd}|d  d7  < t|d d S )Nr   r#   r   .r!   )r   r   r  r   rm  rJ   r   r   r   r   r   $test_object_array_circular_reference  s   z3TestRegression.test_object_array_circular_referencec                 C   sL   t jdtd}t jdtd}||d< tt|td tt|td d S rl  )r   r   r  r   rJ   r   r   r   r   r   test_object_array_nested  s
   z'TestRegression.test_object_array_nestedc                 C   sD   t jt td}t || trtt|d dk |d j d S )Nr#   r   r)   )	r   r   r  copytor   r   r  r  rf  rO   r   r   r   test_object_array_self_copy$  s
   z*TestRegression.test_object_array_self_copyc                 C   s8   t jddggt jd}tt j|dddf g  dS )zTicket #1733*   r   r#   Nr`   )r   r   r  r   rA   r  r   r   r   r   test_zerosize_accumulate-  s   "z'TestRegression.test_zerosize_accumulatec                 C   s*   t jg dtd}tt|jdt jd d S )Nr  r#   rg   r   )r   r   r  r   r   r  r=   r   r   r   r   test_objectarray_setfield2  s   z(TestRegression.test_objectarray_setfieldc                 C   s   d}d}t jddd}||d< t|t | t ||d< t|t | t jddd}d|d< t|t d t d|d< t|t d d	S )
zTicket #1736s   hello1s   hello2r   r  r#   f4r,   rg   N)r   rI   r   r   )r   r  r  r6   r   r   r   test_setting_rank0_string7  s   z(TestRegression.test_setting_rank0_stringc                 C   sZ   d}d}d}t |g|g|gg}t|jt d |t d}t|jt d dS )zTicket #1748s   blacks   whites   otherS5S0N)r   r   r   r$   rY   )r   r  r  s3r6   r9   r   r   r   test_string_astypeG  s   z!TestRegression.test_string_astypec                 C   sZ   d}t |gd }tddD ]}t |d| }t |d | gd }t|| qd S )Ns   0123456789abcdefr^   r!      z|S%d)r   r   r1   r   )r   r   r6   r   r  r  r   r   r   test_ticket_1756Q  s   zTestRegression.test_ticket_1756c                 C   s   t jddd}t|ddd d |d ddd  t|ddd d d |ddd d d  t|ddd d d d |ddd d d d  t|ddd d d j|ddd d d j d	S )
zgh-2355s   abcdefghijklmnopabcdefghijklmnopabcdefghijklmnopabcdefghijklmnopabcdefghijklmnopabcdefghijklmnopabcdefghijklmnopabcdefghijklmnopabcdefghijklmnopabcdefghijklmnopabcdefghijklmnopabcdefghijklmnopz
i4,(2,3)u2r#   r   r,   r)   r  r   N)r   r   r   r   r  r   r   r   test_fields_stridesZ  s
   &.66z"TestRegression.test_fields_stridesc                 C   s.   t d}t|jj d|_t|jj  d S )NrU   r,   )r   ra   r   rR   alignedr   rO   r   r   r   test_alignment_updateb  s   
z$TestRegression.test_alignment_updatec                 C   sT   ddl }z|jddgd}d|d< d|d< W dS  ty!   Y dS  ty)   tw )	z Should not segfault on python 3kr   Nr    )r  r8   r#   r!   r  r  )rl  rI   r   	Exceptionrn  )r   r   r6   r   r   r   test_ticket_1770i  s   zTestRegression.test_ticket_1770c                 C   s>   t ddgddggj}t |j t|ddgddgg dS )zx.flat shouldn't modify datar!   r)   r,   rg   N)r   r   r  r  r   r   r   r   r   test_ticket_1608u  s   zTestRegression.test_ticket_1608c                 C   st   dd l }tjdgdd}tj|dd}t|}|ddd}t|d d	 d
|d< |ddd}t|d d	 d S )Nr   r!   r9   r#   r.   za(.)z\1a_   )rer   r   r   rW  rP  subr   )r   r  r   blobr   r   r   r   test_pickle_string_overwrite{  s   
z+TestRegression.test_pickle_string_overwritec                 C   sh   t dtjd D ])}tjdgdd}ttj||d}d|d< dd	}t|dd d
d	 qd S )Nr)   r!   r9   r#   r.      r   z  asciir  )	r1   r   r2   r   r   rP  rW  encoder   )r   r7   r   
bytestringr   r   r   test_pickle_bytes_overwrite  s   
z*TestRegression.test_pickle_bytes_overwritec                 C   s>   d}t j|dd}t|tjdgdd ttt j|dd d S )Ns   cnumpy.core.multiarray
_reconstruct
p0
(cnumpy
ndarray
p1
(I0
tp2
S'b'
p3
tp4
Rp5
(I1
(I1
tp6
cnumpy
dtype
p7
(S'i1'
p8
I0
I1
tp9
Rp10
(I3
S'|'
p11
NNNI-1
I-1
I0
tp12
bI00
S'\x81'
p13
tp14
b.ra  rN  r  r9   r#   koi8-r)r   rP  r	   r   r   r   r  )r   r   rU  r   r   r   !test_pickle_py2_array_latin1_hack  s   z0TestRegression.test_pickle_py2_array_latin1_hackc                 C   s   t dddft dddft dddfg}|D ]4\}}}tj|d	d
}t|| |dkr<tj|dd
}t||k q|dkrJtt	tj|dd
 qt	|d S )Nu   毒s   cnumpy.core.multiarray
scalar
p0
(cnumpy
dtype
p1
(S'U1'
p2
I0
I1
tp3
Rp4
(I3
S'<'
p5
NNNI4
I4
I0
tp6
bS'\xd2k\x00\x00'
p7
tp8
Rp9
.r  rL  s   cnumpy.core.multiarray
scalar
p0
(cnumpy
dtype
p1
(S'f8'
p2
I0
I1
tp3
Rp4
(I3
S'<'
p5
NNNI-1
I-1
I0
tp6
bS'O\x81\xb7Z\xaa:\xabY'
p7
tp8
Rp9
.   s{   cnumpy.core.multiarray
scalar
p0
(cnumpy
dtype
p1
(S'S1'
p2
I0
I1
tp3
Rp4
(I3
S'|'
p5
NNNI1
I1
I0
tp6
bS'\x9c'
p7
tp8
Rp9
.	differentra  rN  r  )
r   r   r   bytes_r   rP  r   r   r   r   )r   datasrT  r   koi8r_validityrU  r   r   r   "test_pickle_py2_scalar_latin1_hack  s.   
z1TestRegression.test_pickle_py2_scalar_latin1_hackc                 C   s|   t jddgdd}t jdtd}d|d< d|d< t|t| t |}||d< t|| t |}||d< t|| d S )	Nr  )r,   r)   zi4,i8r#   r|   r   r!   .)r   r   r%   r  r   rY   
empty_like)r   a_reca_objr9   r   r   r   test_structured_type_to_object  s   


z-TestRegression.test_structured_type_to_objectc                 C   s   t jdtd}| }dg|d< dg|d< dg|d< dg|d< dgdgdgdgg|d< t|| t jdtd}ddgg|d< t|ddgddgg d S )	Nrg   r#   r!   r   r)   r,   .r'  )r   rI   r  r  r   r   r   r   r   test_assign_obj_listoflists  s   




z*TestRegression.test_assign_obj_listoflistsc                 C   s"   t dD ]
}tjddd}~qd S )Nrf   )i i1r#   )r1   r   r%   )r   r   r6   r   r   r   test_memoryleak  s   zTestRegression.test_memoryleakc                 C   s4   t d}t|}t j| tt|| d S )Nr   )r   ra   r  r  rA   rB   r   )r   r6   acntr   r   r   test_ufunc_reduce_memoryleak  s   

z+TestRegression.test_ufunc_reduce_memoryleakc                 C   s"   t jdddd}tt|jd d S )Nr   rg   zdatetime64[D]r#   r!   )r   ra   r   r   r*  r   r   r   r   $test_search_sorted_invalid_arguments  s   z3TestRegression.test_search_sorted_invalid_argumentsc                 C   s   dddt ddfD ]g}tdftdffD ]\\}}tj||dg|d	}t||d
 || tj|d|g|d	}t||d || tj||dg|d	}t||d
 || tj|d|g|d	}t||d || qq	d S )NTi  g^@r!      r  rS  xxr#   r   
xxxxxxxxxx)r$  r   r   r   r   r   )r   valtostrr$   r9   r   r   r   test_string_truncation   s   z%TestRegression.test_string_truncationc                 C   s   t dg}t|jjd d S )NabcdrA  )r   r   r   r$   rh   rO   r   r   r   test_string_truncation_ucs2  s   z*TestRegression.test_string_truncation_ucs2c                 C   s`   t dgd dgd  dgd  d }t j|dd}t g d	t g d
f}t|| d S )Nr   r^   r!   r   r)   rg   T)return_indexr  )r   r^   rV   )r   r   uniquer   )r   r   restgtr   r   r   test_unique_stable  s   (z!TestRegression.test_unique_stablec                 C   s   t jdgt jdd }~d S )Nr  r#   r   r   rO   r   r   r    test_unicode_alloc_dealloc_match  s   z/TestRegression.test_unicode_alloc_dealloc_matchc                 C   s6   t jdddjdd}|| }t|}t|dk d S )Nr|   z>i2r#   r   )rx  z[0 0])r   rI   r  rR  r   )r   r6   r"   ry   r   r   r   test_refcount_error_in_clip&  s   z*TestRegression.test_refcount_error_in_clipc                 C   s^   t jdgdd}ttt j|d t ddgg g }t d|}ddg|d	< ttt j|d
 d S )N)r6   r!   zS1, intr#   g333333?r   r|   r(  r)  .r!   )r   r   r   r   r*  format_parserr   )r   r6   r$   r   r   r   test_searchsorted_wrong_dtype/  s   z,TestRegression.test_searchsorted_wrong_dtypec                 C   sN   t j}t jd|d}t |d}|d}t j|j|j|dd}t|| d S )NrU   r#   )r)   r^   rL   )r   rG   )	r   	complex64ra   rb   r  r   ro   r$   r	   )r   dttr  r  data_str	data_backr   r   r   test_complex64_alignment:  s   
z'TestRegression.test_complex64_alignmentc                 C   s4   t ddgdd d }t |}t|d d S )Nr   r!   z	i4, (2)i4)r   r   rY   count_nonzeror   )r   r  r3  r   r   r   test_structured_count_nonzeroH  s   
z,TestRegression.test_structured_count_nonzeroc                 C   sV   t jddd}t|}t|}t|jj t|jj t|jj t|jj d S )Nr'  rL   rF   )r   r%   r  r  r   rR   fortranr  r_  r   r   r   &test_copymodule_preserves_f_contiguityM  s   

z5TestRegression.test_copymodule_preserves_f_contiguityc                 C   sX   dd l }|jddggddd}|jg dd|d	}|g d
g dgg}t|| d S )Nr   HelloFoobU5rL   )r$   rG   )r!   r)   r^   U1)ro   r$   r   )r  r)  r	  r	  o)rL   r  r  r9   r  )rl  r   r   r	   )r   r   r6   r  r  r   r   r   test_fortran_order_bufferV  s   
z(TestRegression.test_fortran_order_bufferc                 C   sJ   t g d}tt|jtd ddg |td dg t|g d d S )Nr  r*   )r*   r*   r*   )r   r   r   r   __setitem__slicer   r   r  r   r   r   test_assign_from_sequence_error^  s   z.TestRegression.test_assign_from_sequence_errorc                 C   s@   t ddg}t dg|}d|d }t|t|d  d S )N)datez<M8[D])r  rW   )z
2000-01-01r!   z{0}r   )r   r$   r   formatr   rR  )r   r   r  	formattedr   r   r   !test_format_on_flex_array_elemente  s   z0TestRegression.test_format_on_flex_array_elementc                 C   s`   t d}t|}t|| t|j|j tt|t| t||u tt|t	| d S r   )
r   r   r  r  r   ro   rJ   r   rQ  r   )r   r  arr_cpr   r   r   test_deepcopy_on_0d_arrayl  s   


z(TestRegression.test_deepcopy_on_0d_arrayc                 C   s   ddi}ddi}t j||g||ggdd}t|}t|| t||u t|d |d u t|d |d u  t|d |d u  d S )	Nr6   r!   r9   r)   rL   rF   r  r!   r!   )r   r   r  r  r   r   )r   r6   r9   r  r  r   r   r   "test_deepcopy_F_order_object_arrayw  s   

z1TestRegression.test_deepcopy_F_order_object_arrayc                 C   s,   t jg td}t|}t|j|jk d S )Nr#   )r   r   r  r  r  r   ro   r   r   r   r    test_deepcopy_empty_object_array  s   
z/TestRegression.test_deepcopy_empty_object_arrayc                 C   s6   t jddg}|t ddg }|j}~~|j d S )Nr  r!  TF)r   r   r   baser$   )r   r[   maskedr  r   r   r   test_bool_subscript_crash  s
   
z(TestRegression.test_bool_subscript_crashc                 C   st   dd l }G dd d}| }td}|j|j|j|jfD ]	}tt||| qt	|
||  t	||| d S )Nr   c                   @   rL  )z2TestRegression.test_richcompare_crash.<locals>.Fooi  c                 _   s   t  r
  )r  )r   argskwargsr   r   r   	__array__  s   z<TestRegression.test_richcompare_crash.<locals>.Foo.__array__N)r;  r<  r=  __array_priority__r  r   r   r   r   r    rP  r  r!   )operatorr   r   ltlegtger   r   r   eqne)r   opr  rhslhsr8   r   r   r   test_richcompare_crash  s   
z%TestRegression.test_richcompare_crashc                 C   sb   G dd dt j}t g d|}td|kd tt d|kd tt dg|kd d S )Nc                   @   rF  )z@TestRegression.test_richcompare_scalar_and_subclass.<locals>.Fooc                 S   r4  )NOKr   )r   otherr   r   r   __eq__  r7  zGTestRegression.test_richcompare_scalar_and_subclass.<locals>.Foo.__eq__N)r;  r<  r=  r  r   r   r   r   r    rI  r  r  rU   r  )r   r   r   rp  r   r=   )r   r  r"   r   r   r   $test_richcompare_scalar_and_subclass  s
   z3TestRegression.test_richcompare_scalar_and_subclassc                 C   s>   t dtjd D ]}td}tttj||d| qd S )Nr)   r!   r  r.   )r1   r   r2   r   r[  r   rP  rW  )r   r7   r  r   r   r   test_pickle_empty_string  s   
z'TestRegression.test_pickle_empty_stringc                 C   s   dd }t ttj|dd d S )Nc                  W   s   d S r
  r   )r  r   r   r   passer  r7  z8TestRegression.test_frompyfunc_many_args.<locals>.passerr  r!   )r   r   r   r  )r   r  r   r   r   test_frompyfunc_many_args  s   z(TestRegression.test_frompyfunc_many_argsc                 C   sV   t dddd}tt|j |jd gD ]}t|jd|d|jdg|d qd S )N<   r,   rg   r^   r)   rF  )r   ra   rb   r   r1   r   r   r|  )r   r6   rG  r   r   r   test_repeat_broadcasting  s   "z'TestRegression.test_repeat_broadcastingc                 C   sr   dd }t |dd}t jg dddgg dgtd	}t||d
 t jg dddgg dgtd	}t|| d S )Nc                 S   s   | d | d | d< | d< d S )Nr`   r   r   r  r   r   r   r8     rb  z0TestRegression.test_frompyfunc_nout_0.<locals>.fr!   r   r  rg   r^   )r   r+   r-   r*   r#   r   )r,   r)   r!   )r*   r+   r-   r   )r   r  r   r  r   r	   )r   r8   ufr6   expectedr   r   r   test_frompyfunc_nout_0  s     z%TestRegression.test_frompyfunc_nout_0c                 C   s   t dt jfdt jfdtdffg}t jd|d}tdD ]}||k qtt	|dk  t	|}|d	 |d
 }}||k ~~t
  t	|}t|| d S )Nr6   r9   r   r^   r)   r#   r  rU   r   r!   )r   r$   r   r=   rR  rI   r1   r   r  r  gccollectr   )r   
recordtyper6   r   beforeur   afterr   r   r   (test_leak_in_structured_dtype_comparison  s   



z7TestRegression.test_leak_in_structured_dtype_comparisonc                 C   s"   t ttdg tg  d S r  )r	   r   
percentilera   r   r'   r   r   r   test_empty_percentile  s   "z$TestRegression.test_empty_percentilec                 C   s   t jdddgd}|  d S )Nr,   )r  r   )rJ   z<i2r#   )r   rM   rZ   rO   r   r   r   test_void_compare_segfault  s   z)TestRegression.test_void_compare_segfaultc                 C   sB   t dd d d }t t jjdkrd}nd}tt|j| d S )Nr{  r)   r-   )r)   ry  i  i  i7  l   Sb )r)   r+   r+   i)r   rM   r$   intprh   r   r   rb   )r   r6   	new_shaper   r   r   test_reshape_size_overflow  s
   z)TestRegression.test_reshape_size_overflow)r+   r,   r-   zPyPy bug in error formattingc                 C   s   t ttjddgf t ttjddgf t ttjdddgfgf t ttjddgdf t ttjd t ttjd	dd
if t ttjd	ddif t ttjddgddgf tjdddgfd}t|d d |d | u sqJ t|d tu s{J d S )Nr   )r;   r@  r@  )r;   r   r;   )r6   r   )r9   r   )r@  r   r   )r   r   titleoops)r   	wrongtyper  )r6   r   )r9   r   )r[   r   )r   r   r!   r#   r   )	r   r   r   r$   rM   r   r  r   rJ   rO   r   r   r   test_invalid_structured_dtypes	  s(   

z-TestRegression.test_invalid_structured_dtypesc                 C   sv   t tj tjh }|D ]+}| }zt| W n ty0 } zt|jd  W Y d }~qd }~ww t	|jd k qd S r
  )
setr   r  r  voidhashr   r   __hash__r   )r   	all_typesr  r  r)  r   r   r   test_correct_hash_dict	  s   z%TestRegression.test_correct_hash_dictc                 C   s\   t tj }tjdtjdtjdtjdi}|D ]}|||d}t		|}t
|| qd S )Nr"  r6   z
2017-08-25r!   )r  r   r  r  r  r  r   
datetime64getr  r   )r   scalar_typesr  sctyper  item2r   r   r   test_scalar_copy*	  s   
zTestRegression.test_scalar_copyc                 C   s4   t dd}|d d  }d|d< ~t|d d S )NrU   V4r!   s   r   s       )r   rI   r  r   )r   var"   r   r   r   test_void_item_memview7	  s
   z%TestRegression.test_void_item_memviewc                 C   st   t tdgdddk t tdgdddk t tdgdddk t tdgd	ddk d S )
Nr"  V1r   s   abV2r  V3s   abcdr
  )r   r   r   rY   r'   r   r   r   test_void_getitem>	  s    z TestRegression.test_void_getitemc                 C   sF   t dD ]}tjdgdtjfgd}tdg|d d< t  qd S )Nr^   r!   )r"   r  r#   r)   r   r"   )r1   r   r   r  r  r  )r   r  	structurer   r   r   test_structarray_titleE	  s
   
z%TestRegression.test_structarray_titlec                 C   sv   ddd}t jd D ].}|dv rq
t |j}|||d}dD ]}|j|d}t|| tt|t| q!q
d S )	Nr"  z
2018-06-20)rS  MAllr   r,   )Nr   rF  )r   r  r$   r   r  r   r   )r   r  chr  scvaluerG  squeezedr   r   r   test_dtype_scalar_squeezeO	  s   
z(TestRegression.test_dtype_scalar_squeezec                 C   sj   d}t r	t|}t|dftjfg}td|}tdD ]}t|dg  t r2t	|t|k qd S )NzSome long field namer  rU   )
r   r  r  r   r$   r   rI   r1   rR  r   )r   r   r  r  r   r   r   r   r   test_field_access_by_title_	  s   
z)TestRegression.test_field_access_by_titler  )rU   rU   r=   r#   rU   r/   r)   c                 C   sN   t ||}d|vsJ |dkrt|jdkrd|v sJ d S d|v s%J d S )Ns   _multiarray_umathr^   r   s   numpy.core.numerics   numpy.core.multiarray)r   rW  lenro   )r   r/   r  r   r   r   r   test_pickle_modulek	  s
   
z!TestRegression.test_pickle_modulec                 C   s$   t jg dtd}tt|jd d S )N)AAAAA   EqAr  r#   c8)r   r   r  r   r   rY   r  r   r   r   test_object_casting_errors}	  s   z)TestRegression.test_object_casting_errorsc                 C   s^   t jg dt jd}t j|dt ddgd}t|g d t j|ddd}t|g d	 d S )
N)r!   r)   rg   r+   r   r#   X   c   )to_beginto_end)r   r!   r)   r,   r!  r"  i   )r   r!   r)   r,   r%  r   )r   r   r  ediff1dr   )r   r"   r  r   r   r   test_eff1d_casting	  s
   z!TestRegression.test_eff1d_castingc                 C   sP   t dd}t |g}tdtjd D ]}tj||d}tt|| qd S )Nz2015-07-04 12:59:59.50nsr)   r!   r.   )	r   r  r   r1   r   r2   rW  r   rP  )r   r   r  r7   dumpedr   r   r   test_pickle_datetime64_array	  s   z+TestRegression.test_pickle_datetime64_arrayc                 C   sJ   G dd d}t t t| g W d    d S 1 sw   Y  d S )Nc                   @   s   e Zd Zi ZdS )z2TestRegression.test_bad_array_interface.<locals>.TN)r;  r<  r=  rf  r   r   r   r   r  	  s    r  r  )r   r  r   r   r   test_bad_array_interface	  s   
"z'TestRegression.test_bad_array_interfacec                 C   s2   G dd d}| }t |g}|jdksJ d S )Nc                   @   s,   e Zd Zdd Zdd Zdd Zdd Zd	S )
z/TestRegression.test_2d__array__shape.<locals>.Tc                 S   s   t jddS )Nr  rn   )r   r   r'   r   r   r   r  	  r  z9TestRegression.test_2d__array__shape.<locals>.T.__array__c                 S   s   t g S r
  )iterr'   r   r   r   __iter__	     z8TestRegression.test_2d__array__shape.<locals>.T.__iter__c                 S   s   t d)Nz__getitem__ was called)rn  )r   rd   r   r   r   r:  	  r.  z;TestRegression.test_2d__array__shape.<locals>.T.__getitem__c                 S   r4  r   r   r'   r   r   r   r6  	  r7  z7TestRegression.test_2d__array__shape.<locals>.T.__len__N)r;  r<  r=  r  r-  r:  r6  r   r   r   r   r  	  s
    r  )r!   r   r   )r   r   ro   )r   r  r  r  r   r   r   test_2d__array__shape	  s   z$TestRegression.test_2d__array__shape       zoverflows 32-bit pythonc                 C   s>   t dd}|j|j dksJ t j|}t|j|j d S )N)r0  r9   rS  )r   rI   r  rh   	ctypeslib	as_ctypesr   _length_)r   r  c_arrr   r   r   test_to_ctypes	  s   zTestRegression.test_to_ctypesc                 C   sF   t jtdd ttdtj W d    d S 1 sw   Y  d S )NzUnable to convert dtype.*)matchnow)pytestraisesr   r$  r   r   r  r'   r   r   r   test_complex_conversion_error	  s   "z,TestRegression.test_complex_conversion_errorc                 C   sJ   t tddgddgt jt jgd}t jd|djd }|dgks#J d S )	Nr6   r9   r   )r   offsetsr   r  r#   r   )r  z|V8)r   r$   dictr&   r   rf  )r   r   r   r   r   r   test__array_interface__descr	  s   
z+TestRegression.test__array_interface__descrg   Ј B)
free_bytesc                 C   st   t t jj}|d }t j|gt jd}|d d |d  }d|d< |jd ||jj ks.J t 	||dks8J d S )Nr,   r#   r!   .r   r  )
r   r  r=   r   r%   r  r   r$   rh   r   )r   	int32_maxr  r6   r9   r   r   r   test_dot_big_stride	  s   z"TestRegression.test_dot_big_stridec                 C   s*   dd }t |dd}t|dksJ d S )Nc                 S   s   | S r
  r   r  r   r   r      cassé	  r7  u3   TestRegression.test_frompyfunc_name.<locals>.cassér!   u   <ufunc 'cassé (vectorized)'>)r   r  rR  )r   rA  r8   r   r   r   test_frompyfunc_name	  s   z#TestRegression.test_frompyfunc_name	operation)rA   r  multiplyfloor_divider  fmodsquare
reciprocalpowerabsolutenegativepositivegreatergreater_equalless
less_equalequal	not_equallogical_andlogical_not
logical_orbitwise_and
bitwise_orbitwise_xorinvert
left_shiftright_shiftgcdlcmrG   ))zb->zB->)zh->zH->)zi->zI->)zl->zL->)zq->zQ->c                 C   sJ   dd }t t|j}||d |||d |k s#J d| d| dd S )Nc                 S   s0   t |D ]\}}| |v r|  S qt|  d)Nz not in list)	enumerater   )stringstr_lstr   r   r   r   r   get_idx	  s
   z0TestRegression.test_ufunc_order.<locals>.get_idxr   r!   z#Unexpected types order of ufunc in zfor z>. Possible fix: Use signed before unsignedin generate_umath.py)r  r   types)r   rC  rG   ra  rb  r   r   r   test_ufunc_order	  s   zTestRegression.test_ufunc_orderN(!  r;  r<  r=  r   r(   r:   r>   rC   rK   rP   rT   r\   re   rl   rt   rw   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/  r0  r2  r?  rD  rH  rJ  rK  rV  rX  r\  r^  r`  ra  rh  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r8  markskipifr   rM   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/  r0  r5  r7  r8  r9  r:  r;  rE  rK  rQ  rT  rY  rZ  r]  r`  rk  ro  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*  r0  rB  rI  rK  rL  rN  rQ  rR  rU  rX  rY  r\  r]  r^  r`  ra  rb  rj  rk  r   rn  ro  rp  rr  rt  ru  rw  r{  r}  r~  r  r  r  r  r  r  r  r  r  	slow_pypyr  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  implementationversionr  r  r	  r  r  r  r  r  parametrizerM  r1   r   r2   r  r  r'  r*  r+  r/  maxsizer5  r:  r=  r   r@  rB  rc  r   r   r   r   r      sH   
	


		"*"
		"
g	

H

	


=	
	,		 


r   )#r  r  r  r9  r8  osr   ior   	itertoolsr   rl  r   numpy.testingr   r   r   r   r	   r
   r   r   r   r   r   r   r   numpy.testing._private.utilsr   r   numpy.compatr   r   r   r   r   r   r   r   <module>   s    <