U
    #ckd                    @   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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IS_WASM)_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)e*j+j,e-dOdPe*j+j.dQe/j0dRe1dSe/2dRgdTdUgdVdWdX Z3dYdZ Z4d[d\ Z5d]d^ Z6d_d` Z7dadb Z8dcdd Z9dedf Z:dgdh Z;didj Z<dkdl Z=dmdn Z>dodp Z?dqdr Z@dsdt ZAdudv ZBdwdx ZCdydz ZDd{d| ZEd}d~ ZFdd ZGdd ZHdd ZIdd ZJdd ZKdd ZLdd ZMdd ZNdd ZOdd ZPdd ZQdd ZRdd ZSdd ZTdd ZUdd ZVdd ZWdd ZXdd ZYdd ZZe*j+j[e/0dj\d e/]e/j^j_kddP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 Zdd Zdd Zdd Zdd Zdd Ze*j+j[e/0dj\d e/]e/j^j_kddPdd Zdd Zdd 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) Zed*d+ Zd,d- Zd.d/ Zd0d1 Zd2d3 Zd4d5 Zd6d7 Zd8d9 Zd:d; Zd<d= Zd>d? Zd@dA ZdBdC ZdDdE ZdFdG ZdHdI ZdJdK ZdLdM Ze*j+j[e dNdPdOdP ZdQdR ZdSdT ZdUdV ZdWdX ZdYdZ Zd[d\ Zd]d^ Zd_d` Zdadb Zdcdd Zdedf Zdgdh Zdidj Ze*j+j[e dNdPdkdl Zdmdn ZÐdodp ZĐdqdr ZŐdsdt ZƐdudv Zǐdwdx ZȐdydz 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*j+j[eՐddPdd Ze*j+j[eՐddP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 Ze*j+jdd Ze*j+j[e dNdP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 Ze*j+j[e dNdPdd Zdd Zdd Zdd Ze*j+j[e
oej	j
dkddPdd Zdd Zdd Zdd Zdd Zdd Zd d Zdd Ze*j+.de/j0dddSe/dRge*j+.dedejd d	d
 Zdd Zdd Zdd Zdd Zdd Ze*j+j[ejdk ddPdd Zdd Zdd Z e*j+j[ejdk ddPe!dddd  Z"d!d" Z#e*j+.d#d$d%d&d'd(d)d*d+d,d-d.d/d0d1d2d3d4d5d6d7d8d9d:d;d<d=d>d?d@ge*j+.dAdBdCdDdEdFgdGdH Z$dIS (J  TestRegressionc                 C   s    d}t t|gt| d S )Ng
ףp=
@)r	   nparrayselfv r   D/tmp/pip-unpacked-wheel-b2rbor69/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 ]D}t *}tj|||d |d t	|}W 5 Q R X t
|| q2d 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.   s    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k d S )Nr*   FrF   )r   onesr   asarrayr   r7   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flagsZ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   r7   cr   r   r   test_sort_bigendianB   s    z"TestRegression.test_sort_bigendianc                 C   s@   t dd}t dddg}t |}||  t|| d S )N}   )   r]   r]   r   r"   )r   arangereshaper   r	   )r   rZ   Zorigidxidxr   r   r   test_negative_nd_indexingI   s
    
z(TestRegression.test_negative_nd_indexingc              
   C   sl   t jjt dddd}tdtjd D ]>}t .}tj|||d |	d t j
|d	d
}W 5 Q R X q(d S )N  i     )itemsizer*   r"   r/   r   T)Zallow_pickle)r   charr   r_   r2   r   r3   r   r4   r5   r6   )r   car8   r9   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rT   shaper   r:   r   r   rs_   s    z2TestRegression.test_noncontiguous_fill.<locals>.rs)r   rI   r   AttributeError)r   r7   rm   r   rl   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   s    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)zZc16r*   y              @y              @r$   rt   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#   i4ru   r-   r*   r$   r#   rv   rw   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 5 Q R X t|d dk d S )	NtestautoFTr"   r   rT   rU   )r   r   r	   r   rW   r   filterFutureWarning)r   r7   r:   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-   rd   zU%sr$   )r   r   newbyteorder)r   ZulenZ	ucs_valueZ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 )Nr7   foo)namesformatsr"   )Z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$   rV   r*      rA   )r   r_   wherer
   nonzeror   all)r   r7   r:   ZxaxbZyaZybr   r   r   test_endian_bool_indexing   s    z(TestRegression.test_endian_bool_indexingc                 C   sV   t jddd}d|d< d|d< | }t |dk||}t d	dd	g}t|| d S )
Nr-   >f4r$   g?gar?r"   gN)]?r*           gk]?)r   rI   maxr   r   r
   )r   netZ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bufrz   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"   rT   )r   rT   out)r   randomZrandnrM   r&   libstride_tricks
as_stridedrk   stridesdotr1   r   core
multiarray)r   r#   rs   Z_zZ_dummyrt   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 )NrT   rV   r$   r   )r   r_   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"   rT   r^   )r   r_   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float64r_   Z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"   )rd   r]   r   r,   r.   )r   r   normalr2   ndimargmax)r   r7   ir   r   r   test_argmax   s    zTestRegression.test_argmaxc                 C   s(   t dD ]}tt|gd d qd S NrT   r   )r2   divmodr   r   )r   r   r   r   r   test_mem_divmod  s    zTestRegression.test_mem_divmodc                 C   s6   t dd}t dddg}ttt j||f d S )Nr+   )r-   r-   r   )r   r_   r`   r   r   
ValueErrorhstackr   r#   rs   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k tt| t jk d S Nr-   )r   r   r   typesqueezendarrayr   r7   r:   r   r   r   test_squeeze_type  s    
z TestRegression.test_squeeze_typec                 C   s   t dtjj d S Nr   )r   r   rB   identityr(   r   r   r   test_add_identity  s    z TestRegression.test_add_identityc                 C   s(   t ddd  }t|ddd   d S )Ng      7@r*      )r   Zfloat_r   rO   r   r   r   %test_numpy_float_python_long_addition  s    z4TestRegression.test_numpy_float_python_long_additionc                 C   s   t dtd d S )N0r   r   r   Z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   r9   )sz|S3)r"   皙?z1.0)r*   g@z2.0r$   r   c                 S   s   g | ]}|qS r   r   .0r   r   r   r   
<listcomp>&  s     z3TestRegression.test_rec_iterate.<locals>.<listcomp>)r   r%   rJ   floatrecr   tolist)r   rx   r#   r   r   r   test_rec_iterate   s    zTestRegression.test_rec_iteratec                 C   s$   t dt j}t d}||k d S )NZhelloZ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&   r_   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   r_   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   r_   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_assignmentznot sure why)reasonindexrT   r$   zboolean-arr-indexzinteger-arr-index)idsc              
   C   sp   t d}tt t j||< W 5 Q R X t jdd0 tjtdd t 	t j||< W 5 Q R X W 5 Q R X d S )NrT   warninvalidzinvalid valuematch)
r   r_   pytestraisesr   nanerrstateZwarnsRuntimeWarningr   )r   r   r7   r   r   r   test_nonarray_assignmentI  s    
z'TestRegression.test_nonarray_assignmentc              
   C   st   t dtfdt jfdg}tdtjd D ]D}t *}tj|||d |	d t
|}W 5 Q R X t|| q*d S )Nr#   rs   )rt   r   r*   r"   r/   r   )r   r%   rJ   object_r2   r   r3   r   r4   r5   r6   r   )r   r   r8   r9   Zdt_r   r   r   test_unpickle_dtype_with_objectY  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#   rs   r"   object)r"   r   )r   r%   rJ   r   r   r   r   r   r   r   r   r   -test_mem_array_creation_invalid_specificationc  s    z<TestRegression.test_mem_array_creation_invalid_specificationc                 C   sV   t jdddgt jd}| }t jj|ddgdgd}t|| t||d d  d S )	Nr"   r*   r-   r$   Z3i4r   )rk   r   r   r   )r   r   r>   copyr   r	   r   )r   r7   r:   rr   r   r   test_recarray_single_elementk  s
    
z+TestRegression.test_recarray_single_elementc                    s$   t g   fdd}tt| d S )Nc                      s    t d  d S NrT   rv   r   tmpr   r   	index_tmpw  s    z@TestRegression.test_zero_sized_array_indexing.<locals>.index_tmp)r   r   r   
IndexError)r   r  r   r  r   test_zero_sized_array_indexings  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   Z	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-   rd   r$   r-   r*   r*   r"   r*   r-   rd   r   )r-   r   r]   r   )r   r   r   r   rk   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   Zaroundabs)r   r#   rs   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   rf   r   r   )r   r#   rZ   r   r   r   test_character_array_strip  s    z)TestRegression.test_character_array_stripc                 C   s2   t ddddddddd	d
g
}tt |d d S )Nr"   r*   r-   rd   r]   r   r,   r.   r+   rT   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                   @   s   e Zd Zdd Zdd ZdS )zCTestRegression.test_lexsort_invalid_sequence.<locals>.BuggySequencec                 S   s   dS Nrd   r   r(   r   r   r   __len__  s    zKTestRegression.test_lexsort_invalid_sequence.<locals>.BuggySequence.__len__c                 S   s   t d S N)KeyError)r   keyr   r   r   __getitem__  s    zOTestRegression.test_lexsort_invalid_sequence.<locals>.BuggySequence.__getitem__N)__name__
__module____qualname__r  r  r   r   r   r   BuggySequence  s   r!  )r   r  r   r  )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(td|_t |fjd dksHtd S )Ni8r$   r   )   )r   r   r  rk   AssertionErrorr   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s8td|_d|_t j|fddjd dksbtd S )	Nr#  r$   r   r*   )r$  r$  r   axis)r*   r   r*   )r   r   rk   r   r  r%  r&  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*   r*  rT   )r   r   Z	AxisErrorr  r_   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s6td S )Nrd   r   )r   r%   r&   r  rk   r%  )r   r   r'  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\}}tj|d	d
}t|| t|t j	r@|j
jd k	r@|j
jD ]}tt|t qq@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.)r/  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   Z	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/   )r2   r   r3   dumpsr   )r   r8   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 )Nrd   z>c8r$   r   z<c8      @)r   r   r_   imagr   realr(   r   r   r   test_swap_real  s    zTestRegression.test_swap_realc                 C   s   t tdd dgjdk d S )Nr"   Ar  )r   r   r   rk   r(   r   r   r   test_object_array_from_list  s    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  s    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   sx  ddddddddd	d
dddddddddg}dddg}|D ]}t jdd}| }t|trn|d }|d }n|}t|| }tt ||}|d kr|}|jjdkrt	||k
 | q8t	t||  dk | q8|D ]}t jdd}	t jdd}d }|dkr|	 }	t|||	}nd| t }|d krHt|	||}tt ||	|}t	t||  dk | qd S )Nr   argminsum)productprod)Zsometrueany)alltruer   cumsum)Z
cumproductcumprodptprP  rL  stdvarmeanroundminr   argsortrY   compresstakerepeatr.   r,   r"   r   Zuibg:0yE>   )r   r   r   r   r4  tuplegetattrr%   kindr   r   r  r   rQ   rX   rJ   )
r   Zfuncs1Zfuncs2funcarrarr2Z	func_methZres1Zres2arr1r   r   r   test_method_args  sX               




zTestRegression.test_method_argsc                 C   s   dddg}t |f d S )NabcZcdeZfgh)r   r  )r   lstr   r   r   test_mem_lexsort_strings1  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   rk   r   r   r   r   test_fancy_index6  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#   rs   )r"   gffffff@r$          @)r   int16r   r   r   r   )r   r   rarbr   r   r   test_recarray_copy;  s
    z!TestRegression.test_recarray_copyc                 C   sV   t ddgddgddgg}t ddd	g}t d
ddg}t jj|||gdd d S )Nr"   r*   r-   rd   r]   r   r7   ddZxyzr   z(2,)i4,a3,f8)r   )r   r   r   
fromarrays)r   x1Zx2Zx3r   r   r   test_rec_fromarrayC  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   r   r   test_object_array_assignJ  s    
z'TestRegression.test_object_array_assignc                 C   sN   t jdddg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$   )r%   ndmin)r   r   r   r   float32r   r   r   r   r   test_ndmin_float64O  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   rs  rL   r  rF   rs  )r   r   r   rR   c_contiguousf_contiguousrM   r(   r   r   r   test_ndmin_orderU  s     zTestRegression.test_ndmin_orderc                 C   s   t d}t j||}d S Nr]   )r   r_   rB   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   r<  r(   r   r   r   test_mem_float_imaga  s    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_tuplee  s    zTestRegression.test_dtype_tuplec                 C   s   t dg d S )N)Zcol1z()i4r   r%   r(   r   r   r   test_dtype_posttuplei  s    z#TestRegression.test_dtype_posttuplec                 C   s   t tdgdd d S )NXrZ      X)r   r   r   r(   r   r   r   test_numeric_carray_comparem  s    z*TestRegression.test_numeric_carray_comparec                 C   s    t ttjdgdddggd d S )Nr  z|S1r   r   r   r   r(   r   r   r   test_string_array_sizeq  s
      z%TestRegression.test_string_array_sizec                 C   s*   t d}t d}t| |  d S )N)uint32r*   )r  ru   )r   r%   r   __repr__)r   dt1Zdt2r   r   r   test_dtype_reprv  s    

zTestRegression.test_dtype_reprc                 C   s   t djdddd}t|dddgddd	g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   rd   r"   r]   r,   r.   )r   r_   r`   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  )rk   r   r]   r   )r   rM   r   r   r   r   r`   r   rO   r   r   r   test_reshape_zero_strides  s    
z(TestRegression.test_reshape_zero_stridesc                 C   s   t d}d|_d S )Nr)  )r^   r*   )r   rM   rk   rO   r   r   r   test_reshape_zero_size  s    
z%TestRegression.test_reshape_zero_sizer"   r   zUsing relaxed stride debugc                 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*   )r$  r.   r.   r.   )r.      0   r  r-   r"   rL   rF   r   rd   rd   )r   rI   r>   r   r`   r   r   )r   r7   Z	strides_cZ	strides_fr   r   r   "test_reshape_trailing_ones_strides  s    z1TestRegression.test_reshape_trailing_ones_stridesc                 C   sJ   t dddd d df }t|dddddddddddddg d S )Nr  rd   r-   r*   r]   r.   rU   )r   r_   r`   r   rZ  rO   r   r   r   test_repeat_discont  s    z"TestRegression.test_repeat_discontc                 C   sL   t dddg}t dddgg}t|t |dk |t |dk  d S )Nr"   r*   r-   )r   r   r   r   )r   r7   a2r   r   r   test_array_index  s    zTestRegression.test_array_indexc                 C   s(   t jdddgtd}t| dk d S )Nr"   r*   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k qjd S )N)f0r|   )f1r|   )r  r#  )r  r#  r  r  zi4,i4)r   r%   r   r   rn  r   )r   Zdt0r  r7   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   r*  )r   r_   r`   r   r   shuffler   rY   r   r   r   r   test_random_shuffle  s    z"TestRegression.test_random_shufflec                 C   s   t tj d S r  )r   r   Zvdotr(   r   r   r   test_refcount_vdot  s    z!TestRegression.test_refcount_vdotc                 C   s(   t jddg}t|dddg d S )NZHiZThereHTF)r   rf   r   r   
startswith)r   rg   r   r   r   test_startswith  s    zTestRegression.test_startswithc              	   C   s   t d}t dddg}tt j|d tt j|d tt j|t ddd	d
dg tt j|t dddg d S )Nr]   rh  rA   g      ?r   g      0@r   r^   ig      @)	r   r_   r   r   subtractrC   divider	   
accumulate)r   Z
tosubtractZ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 rp   )r   r   r   Zconvolver(   r   r   r   test_convolve_empty  s    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"   r*  r+  r   )r   r_   r`   rY  Z
zeros_liker	   )r   r#   r7   r:   r   r   r   test_take_output  s
    
zTestRegression.test_take_outputc                 C   sf   d}t j|dgtd}tr$t|}z|ddg W n tk
rJ   Y nX trbt|t|k d S )Ng     ^@r"   r$   r   d   )	r   r   r   r   sysgetrefcountrY  r  r   )r   r   r7   Zref_dr   r   r   test_take_object_fail  s    
z$TestRegression.test_take_object_failc              	   C   s<   t jdt jgt jd}t jdd t | W 5 Q R X d S )Nr"   r$   raise)r   )r   r   r   r   r   Z	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$   rV   )mathr  r   
frompyfuncr   r   rX   r   )r   r  ZuradiansZ
big_endianZlittle_endianr   r   r   test_frompyfunc_endian   s    z%TestRegression.test_frompyfunc_endianc                 C   s   d}g }t ||f d S )NZ$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*   r$  )r   r   r   r1   listr2   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 )Nr7       mr^  )r   r   r	   rW  r_   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   r_   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 r  )r   r_   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 #583Z12 Z13N)r   r   r   fromiterr5  r(   r   r   r   test_mem_on_invalid_dtype)  s    z(TestRegression.test_mem_on_invalid_dtypec                 C   sr   t dddddgg}t dgdgdgd	gd
gg}|d d d  }|d d d }tt ||t || d S )Nr"   r]      g     @_@iq  g      4@g      d@g      @g      @g      @r^   )r   r   r   r   r   )r   r#   rs   rt   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#   rs   r   r   r   rm   9  s    z.TestRegression.test_object_casting.<locals>.rs)r   r   )r   rm   r   r   r   test_object_casting5  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 )NZDRONDZDROND1ZU6r$   r"   r*   r/   )r   r   r2   r   r3   r3  r9  r   )r   r#   elr8   newr   r   r   test_unicode_scalar@  s
    z"TestRegression.test_unicode_scalarc                 C   sZ   dD ]P}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$   rA   r]   )r   r%   r   r_   )r   Tr   r   r   r   test_arange_non_native_dtypeH  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 )NrT   r$   )r[  c                 S   s   || |dk< d S r   r   )r#   r   r   r   r   r   iaT  s    zFTestRegression.test_bool_flat_indexing_invalid_nr_elements.<locals>.iar+   rU   )	r   rM   r   r   r   r  rI   r   r   )r   r   r#   r  r   r   r   +test_bool_flat_indexing_invalid_nr_elementsP  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#   r   r   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-   )widthZ000r   r(   r   r   r   test_binary_repr_0_widthd  s    z'TestRegression.test_binary_repr_0_widthc                 C   s    t tjdtdddddg d S )Nz12:09:09:)r%   sepr  r+   )r   r   
fromstringrJ   r(   r   r   r   test_fromstringg  s    zTestRegression.test_fromstringc                 C   s6   t dddg}t ddg}t||ddg d S )Nr7   Zaar:   r   er-   )r   r   r   searchsortedr   r   r   r   !test_searchsorted_variable_lengthk  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	   rW  r   r   r   r   r   test_string_argsort_with_zerosp  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	   rY   r   r   r   r   test_string_sort_with_zerosv  s    z*TestRegression.test_string_sort_with_zerosc                 C   s   t djdd d S N)r   r-   rd   r^   r-   r   indicesr  r`   r(   r   r   r   test_copy_detection_zero_dim|  s    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 )NrT   >i4rD  )r   r_   r	   rX   r   r   r   r   r   test_flat_byteorder  s    
 z"TestRegression.test_flat_byteorderc                 C   s(   t dddg}ttt |d d S )Nr   g       z
[0. 0. 0.])r   r   r   r5  r  r   r   r   r   test_sign_bit  s    zTestRegression.test_sign_bitc                 C   sJ   t dt dfD ]0}t jdddg|d}t|jd j|d j qd S )NrD  r  r^   r   r"   r$   )r   r%   r   r   r   rG  r   r   r   test_flat_index_byteswap  s    z'TestRegression.test_flat_index_byteswapc                 C   s   t djdd d S r  r  r(   r   r   r   test_copy_detection_corner_case  s    z.TestRegression.test_copy_detection_corner_casec                 C   s0   t djdd}t|jd|j |jf d S r  )r   r  r  r`   r   r   re   )r   r:   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dddg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   rT   r  .r*  r[  )hasattrr  r  r   r   rI   r   r   r   r   flattenZconcatenaterZ  rY  r   rJ   choose)r   Zcntr7   r:   rZ   Zcnt0_aZcnt0_bZcnt0_cr`  Zarr0ra  rb  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                   @   s   e Zd Zdd ZdS )z>TestRegression.test_mem_custom_float_to_array.<locals>.MyFloatc                 S   s   dS r}  r   r(   r   r   r   	__float__  s    zHTestRegression.test_mem_custom_float_to_array.<locals>.MyFloat.__float__N)r  r  r   r  r   r   r   r   MyFloat  s   r  )r   Z
atleast_1drX   r   )r   r  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                   @   s   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__  s    zSTestRegression.test_object_array_refcount_self_assign.<locals>.VictimObject.__del__N)r  r  r   r  r  r   r   r   r   VictimObject  s   r  r]   r$   r   )r   rI   r   r   r  )r   r  r   r`  r   r   r   &test_object_array_refcount_self_assign  s    z5TestRegression.test_object_array_refcount_self_assignc                 C   s*   dddg}t ttjdd |D dd d S )Nr"   r*   r-   c                 S   s   g | ]}|qS r   r   )r   xir   r   r   r   "  s     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   Z
setbufsizer   r   r   rM  )r   Zoldsizer7   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+  s    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littler  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 ]8}ttj||d}t d|jd f}t 	|| qd S )N)   (   r*   r"   r/   r   )
r   rI   r2   r   r3   r3  r9  rM   rk   r   )r   r#   r8   rs   rt   r   r   r   test_dot_alignment_sse2:  s
    
z&TestRegression.test_dot_alignment_sse2c              	   C   sr   t t td}t |d}t|d}tj|dd}W 5 Q R X |tj	}t
|jd d |jd d k d S )Nr   zastype_copy.pklrk  latin1r1  r   )r   joindirname__file__openr   r6   rX   r   r   r   __array_interface__)r   data_dirfilenamer9   ZxpZxpdr   r   r   test_astype_copyD  s    zTestRegression.test_astype_copyc                 C   sh   dd l }|ddgddgg}|jd|jd}z |jdd	gd|d
 tdW n tk
rb   Y nX d S )Nr   r"   r*   r-   rd   )r*   r"   r$   TFr  zQcompress with an out which cannot be safely casted should not return successfully)numpyr   rI   ZsinglerX  r%  r   )r   r   r7   r:   r   r   r   test_compress_small_typeP  s    z'TestRegression.test_compress_small_typec                 C   sR  G dd dt j}|ddddgddd	d
ggd}t|jdk |d t|jdk |  t|jdk |d t|jdk |dddgdddg 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|dddgjdk t| jdk t| jdk t| jdk |ddddgd}ddddgddddgddddgddddg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|-dddg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k tt2|3 d t jk d S )Nc                   @   s   e Zd Zdd Zdd ZdS )z1TestRegression.test_attributes.<locals>.TestArrayc                 S   s   t |}|| }||_|S r  )r   r   viewinfo)clsr   r  r7  r   r   r   __new__a  s    

z9TestRegression.test_attributes.<locals>.TestArray.__new__c                 S   s   t |dd| _d S )Nr  r  )r]  r  )r   objr   r   r   __array_finalize__g  s    zDTestRegression.test_attributes.<locals>.TestArray.__array_finalize__N)r  r  r   r  r  r   r   r   r   	TestArray`  s   r  r"   r*   r-   rd   r]   r   r,   r.   Zjubba)rd   r*   r   rT   rU   r                 r     r  !   )r*   rd   )4r   r   r   r  resizerY   r   putsetfieldr>   Zsetflagsr   rM  r   rI  rW  rX   rF  cliprX  Zconj	conjugater   r  rP  rO  Zdiagonalr  Zgetfieldr<  r   rT  rV  r   rL  rQ  rQ   r=  rZ  r`   rU  r   rR  rJ  ZswapaxesrY  r1   r  rS  r  r   r   )r   r  ZdatZdat2choicesr   r   r   test_attributes^  sz    



 
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   r7   r:   r   r   r   test_recarray_tolist  s
    z#TestRegression.test_recarray_tolistc                 C   s   t d}tt|j d S rz  )r   r_   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 dddg}t|| d S )NZ123rZ   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}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 charsr7   zS%d)r:   ZU2)r	  r:   r$   z[(b'a', 'b')]err_msg)r2   r   r%   r   r   r5  )r   r   msgr  r#   r   r   r   test_unaligned_unicode_access  s
    z,TestRegression.test_unaligned_unicode_accessc              	   C   sf   t jddP t t j dddt jt jg}t |}t dddddt jg}t|| W 5 Q R X d S )	Nignorer   y             ?r   y       @      y              y                y      ?        )r   r   r   r   r   signr   )r   rE   ZhaveZ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   barrT   Znotfoor   r"   )r   r%   r   rI   r  r   r   )r   r   r7   r:   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 k tt|tk tt|tk tt|t jk t|jtk t|jtk d S )Nr-   r;  rd   r]   )	r   r   r   r   rJ   r   r   r%   r   )r   r7   r:   Zb2rZ   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>      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   rv  rv   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  s    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)johnrd   )Zmaryr]   ))z	source:yyr<   r   )z	source:xxidr$   r   r?  r"   rd   )rJ   r   r   r   )r   r   Z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   Zscalarr%   re   r   r   r  rM   r2   r   r3   r3  r9  )r   test_stringZtest_string_void_scalarZtest_recordZtest_record_void_scalarr8   r   r   r   test_void_scalar_constructor  s.    
  z+TestRegression.test_void_scalar_constructorc                 C   s   dD ]}dD ]}t dD ]}tjdgtjd}trF|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)Zrefcheck)
r2   r   r   r   r   r!  r   r   r   rk   )r   r  nkr#   rs   rt   r   r   r   !test_blasdot_uninitialized_memory  s    z0TestRegression.test_blasdot_uninitialized_memoryc              	   C   s(   d}t td t| W 5 Q R X d S )N            z"Maximum allowed dimension exceeded)r   r   r   r&   r   szr   r   r   
test_zeros)  s
    zTestRegression.test_zerosc              	   C   s6   d}t td t| ttj|k W 5 Q R X d S )NrH  zMaximum allowed size exceeded)r   r   r   r_   r   sizerI  r   r   r   test_huge_arange1  s    
zTestRegression.test_huge_arangec                 C   s   t jttddd}t jttddd}tt |t ddddd	d
ddddg
k tt |t ddddd	d
ddddg
k d S NrT   r:   r$   Br   r"   r*   r-   rd   r]   r   r,   r.   r+   r   r  r  r2   r   rN  r   r   r   r   r   test_fromiter_bytes:  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$   ru   r   r"   r!   )r   r   rM   r   r   rk   r%   rO   r   r   r   %test_array_from_sequence_scalar_arrayA  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$   ru   )r   r   r   r   rk   r%   )r   r  r   r   r   &test_array_from_sequence_scalar_array2P  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_bigV  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%   Zuintr   r  r  r  r   r   r   r   r   test_dtype_keyerrors_[  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>   r  r   r_   rJ   )r   r7   r:   r   r   r   r   test_lexsort_buffer_lengthb  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 )
NZabcdefghZijklmnopr$   r.   r]   ZabcdeZijklmr  ru   )r   r   r   Zstr_r   r&   )r   r7   r:   rZ   r   r  r   r   r   !test_object_array_to_fixed_stringi  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 )Nrd  u   ΣZasdfZerwUr$   ZS4)r   r   r   UnicodeEncodeErrorrO   r   r   r   test_unicode_to_string_castv  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      ZU3r$   r  r-   +   r^   )r   r   r   rZ  r`   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 dddg}t|jdk t dddg}t|jdk t dddg}t|jdk d S )NZ1234s   123r$  Z12345r  s   12345s   1234)r   r   r   re   rO   r   r   r   %test_mixed_string_byte_array_creation  s    z4TestRegression.test_mixed_string_byte_array_creationc                 C   s   t jddd}t dddddd	d
dddg
d}||d< t| t |d  d|d d< d|d< t j|d dd t |d  |  t| d S )Nri   O,cr$   r7   r:   rZ   r   r  r9   grz   r   jS10r  ZFOOr"   r  )	r   rI   r   reprr   r   rY   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)r7   Foozc,Or$   )r:   Barr  ZBazrv   )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"   r7   )r   r7   ra  r$   )rd   r7   )r*   r7   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 ]}t dg|}|d }| }|jj|jjkrdt|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=  r<  )r   r%   rt   r#   rs   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 )Nrt  ru  r   r"   rv  r*   )r  r  r   r   rQ   r   r   )r   ry  rz  ZnumbZ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))r7   r7   r   )r:   r   )r   r   r   r%   )r   Zdtspecr   r   r   test_duplicate_title_and_name  s    z,TestRegression.test_duplicate_title_and_namec              	   C   sH   dd }t jdd* t jt jt jt jtfD ]}|| q,W 5 Q R X d S )Nc                 S   s    t t | jg}|d }d S )Nr^   )r   r   iinforV  )r  rV  r   r   r   	test_type  s    zGTestRegression.test_signed_integer_division_overflow.<locals>.test_typer4  )Zover)r   r   r(  ri  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dddgtdd}t|| d d S )	Nr   )sha256r"   r*   r-   rD  r$   Z@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  s    z$TestRegression.test_0d_string_scalarc                 C   s   t tttd d S )Ni)r   r   isfinitelog1pZexp2r(   r   r   r   test_log1p_compiler_shenanigans  s    z.TestRegression.test_log1p_compiler_shenanigansc                 C   s   t jttddd}t jttddd}tt |t ddddd	d
ddddg
k tt |t ddddd	d
ddddg
k d S rN  rP  r   r   r   r   test_fromiter_comparison  s    ,z'TestRegression.test_fromiter_comparisonc              	   C   s&   t t tjddd W 5 Q R X 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 ]V}||}|D ]B}||}zt || W q< tk
r|   |||f Y q<X q<q*|rt	d| d S )Nc                 S   s(   g | ] }t |tjrt |tjs|qS r   )
issubclassr   numberZtimedelta64)r   r#   r   r   r   r     s    z3TestRegression.test_ticket_1539.<locals>.<listcomp>zFailures: %r)
r   
sctypeDictvaluesr   rq   rX   r   r   appendr%  )r   Zdtypesr7   Zfailuresr#   r:   rs   rZ   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 tinyr0  )r   r   rt  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||k t||jdd |jd|d}t||k t||jdd d S )N)rq  rd   r]   r   )r,   r.   r+   r  r"   r  r*  )r   r   rI   rS  r   r	   rR  )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   Z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                   @   s   e Zd Zdd ZdS )zCTestRegression.test_subclass_int_tuple_assignment.<locals>.Subclassc                 S   s   t |f| S r  )r   rM   r  )r  r   r   r   r   r  %  s    zKTestRegression.test_subclass_int_tuple_assignment.<locals>.Subclass.__new__N)r  r  r   r  r   r   r   r   Subclass$  s   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   sL   G dd dt j}t dddg|}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   r   r   r  rB   r   r@  )r   r  r#   rs   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
k
rj   Y nX t|}t|| d S )
Nr$  r$   r  )r.   rd   )rd   )rk   r%   r   r$  )r+  moder   )r   r_   r   rk   rM   r&   r%   r  r  rY  r   r   )r   r7   ZlutZrgbaZc1c2r   r   r   test_take_refcount4  s    

z!TestRegression.test_take_refcountc                 C   s  t  }|j}|tjddd  |d tj|ddd}t	|tj
dddd	gdd t	| d
 |d tj
dddgdd| t	| d |d |d}t	|d |d |d tj|ddd}t	|tj
ddddgdd |  d S )N   u1r$   r  rd   )countr%   r  r  r  r  r  r"   r*   r-   r^  s   P   )r%   r  T   U   V   W   )tempfileNamedTemporaryFilefilewriter   r_   r   r5   Zfromfiler   r   tellZtofilereadclose)r   r  r9   r  r   r   r   r   test_fromfile_tofile_seeksC  s$    






z)TestRegression.test_fromfile_tofile_seeksc              
   C   sb   t jt jt jfD ]L}|d}tt jt| t &}|t j t	t|t|j
 W 5 Q R X qd S Nr~   )r   csinglecdoubleclongdoubler   Z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 r  )r   r  r  r  r   r  r   r  r#   r   r   r    test_complex_scalar_complex_castf  s    z/TestRegression.test_complex_scalar_complex_castc                 C   sr   t jt jt jfD ]\}t jdddg|d}t|tt jdddgtd tt 	| tt 
|dd   qd S )Nr   y              ?y      ?        r$   r"   )r   r  r  r  r   r   rX   boolr   rM  r   r  r   r   r   test_complex_boolean_castk  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_conversions  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>x  s     zCTestRegression.test_duplicate_field_names_assign.<locals>.<genexpr>rT   zi8,f8r$   )r  rU  r   )r  r  )	r   r  r2   r%   r   re  r   r   setattr)r   rj  r   r   r   !test_duplicate_field_names_assignw  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 )Nr7   r:   r$   rZ   TF)r   r   r   r	   rg  r   r   r   test_eq_string_and_object_array}  s    z.TestRegression.test_eq_string_and_object_arrayc                 C   sV   t jdddgt jd}t j|_t| d dg |  }t| d dg d S )N           r   r$   r"   )	r   r   r  rt  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   Zfind_common_typer(   r   r   r   test_find_common_type_boolean  s    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 )Nrd  rT   rd  r*   zlong   
0123456789r$   )r   r   r%   re   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   rM  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'  r9   r$   r   )r   r_   r   rJ  rX   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   rh  )r   r   rt  r   rB   r   r   r7   r:   rZ   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   rw  rx  rt  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   rw  rx  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 dddg tt j|d dt dddg tt t j|dd W 5 Q R X tt t j|dd W 5 Q R X tt& t jt dgdgdggdd W 5 Q R X 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   r  )r  Zinput_arrayr  r   r   r   r    s    zETestRegression.test_squeeze_axis_handling.<locals>.OldSqueeze.__new__c                    s
   t   S r  )superr   r(   	__class__r   r   r     s    zETestRegression.test_squeeze_axis_handling.<locals>.OldSqueeze.squeeze)r  r  r   r  r   __classcell__r   r   r  r   
OldSqueeze  s   r  r"   r*   r-   r*  r   )r   r   r   r   r   r   r   r   )r   r  Z
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*   rw  r"   )r   rB   rC   rI   r   rR   rw  rx  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   r  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 r  )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r6tt|d dk |d j d S )Nr$   r   r*   )	r   r   r   Zcopytor   r   r  r  r  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   rB   r  r   r   r   r   test_zerosize_accumulate.  s    z'TestRegression.test_zerosize_accumulatec                 C   s,   t jdddgtd}tt|jdt jd d S )Nr"   r*   r-   r$   rd   r   )r   r   r   r   r   r#  r>   r   r   r   r   test_objectarray_setfield3  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   rd  r$   Zf4r-   rd   N)r   rI   r   r   )r   rl  rm  r7   r   r   r   test_setting_rank0_string8  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   otherZS5ZS0N)r   r   r   r%   rX   )r   rl  rm  Zs3r7   r:   r   r   r   test_string_astypeH  s    z!TestRegression.test_string_astypec                 C   sZ   d}t |gd }tddD ]6}t |d| }t |d | gd }t|| qd S )Ns   0123456789abcdefr]   r"      z|S%d)r   r   r2   r   )r   r   r7   r   rh  r  r   r   r   test_ticket_1756R  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_strides[  s
    &.6z"TestRegression.test_fields_stridesc                 C   s.   t d}t|jj d|_t|jj  d S )NrT   r-   )r   r_   r   rR   Zalignedr   rO   r   r   r   test_alignment_updatec  s    
z$TestRegression.test_alignment_updatec                 C   s\   ddl }z$|jddgd}d|d< d|d< W n* tk
r@   Y n tk
rV   tY nX dS )	z Should not segfault on python 3kr   Nr!   )r  r9   r$   r"   r  rU  )r  rI   r   	Exceptionr%  )r   r   r7   r   r   r   test_ticket_1770j  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-   rd   N)r   r   r  r   r   r   r   r   r   test_ticket_1608v  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"   r:   r$   r/   za(.)z\1Za_j   )rer   r   r   r9  r3  subr   )r   r  r   Zblobr   r   r   r   test_pickle_string_overwrite|  s    
z+TestRegression.test_pickle_string_overwritec                 C   sh   t dtjd D ]R}tjdgdd}ttj||d}d|d< dd	}t|dd d
d	 qd S )Nr*   r"   r:   r$   r/   r\   r   z  asciir  )	r2   r   r3   r   r   r3  r9  encoder   )r   r8   r   Z
bytestringr   r   r   test_pickle_bytes_overwrite  s    
z*TestRegression.test_pickle_bytes_overwritec                 C   s@   d}t j|dd}t|tdg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.r  r1  r]  r:   koi8-r)r   r3  r	   r   r   rX   r   r  )r   r   r7  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 ]j\}}}tj|d	d
}t|| |dkrxtj|dd
}t||k q2|dkrtt	tj|dd
 q2t	|q2d 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   r/  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
.Z	differentr  r1  r  )
r   r   r   bytes_r   r3  r   r   r   r   )r   Zdatasr6  r   Zkoi8r_validityr7  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 )	Nrw  )r-   r*   zi4,i8r$   ru   r   r"   .)r   r   r&   r   r   rX   Z
empty_like)r   Za_recZa_objr:   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 )	Nrd   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 )Nrc   )i i1r$   )r2   r   r&   )r   r   r7   r   r   r   test_memoryleak  s    zTestRegression.test_memoryleakc                 C   s4   t d}t|}t j| tt|| d S )Nr   )r   r_   r  r  rB   rC   r   )r   r7   Z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   rd   zdatetime64[D]r$   r"   )r   r_   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 ]}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"      rY  r  Zxxr$   r   Z
xxxxxxxxxx)r  r   r   r   r   r   )r   valZtostrr%   r:   r   r   r   test_string_truncation  s    z%TestRegression.test_string_truncationc                 C   s   t dg}t|jjd d S )NZabcdr$  )r   r   r   r%   re   rO   r   r   r   test_string_truncation_ucs2  s    z*TestRegression.test_string_truncation_ucs2c                 C   sd   t dgd dgd  dgd  d }t j|dd}t dddgt ddd	gf}t|| d S )
Nr   r]   r"   r   r*   rd   T)Zreturn_indexrU   )r   r   uniquer   )r   r   resZtgtr   r   r   test_unique_stable  s    ( z!TestRegression.test_unique_stablec                 C   s   t jdgt jdd }~d S )Nrd  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 )Nru   z>i2r$   r   )rV  z[0 0])r   rI   r$  r5  r   )r   r7   r#   rs   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)r7   r"   zS1, intr$   g333333?r|   ru   r  r  .r"   )r   r   r   r   r  Zformat_parserr   )r   r7   r%   r   r   r   test_searchsorted_wrong_dtype0  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 )NrT   r$   )r*   r]   rL   )ry   rG   )	r   Z	complex64r_   r`   r   r   rk   r%   r	   )r   Zdttr`  ra  Zdata_strZ	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   rX   Zcount_nonzeror   )r   r`  r  r   r   r   test_structured_count_nonzeroI  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   rf  r   rR   Zfortranrx  r  r   r   r   &test_copymodule_preserves_f_contiguityN  s    

z5TestRegression.test_copymodule_preserves_f_contiguityc                 C   sf   dd l }|jddggddd}|jddd	gd
|d}|dddddgdddddggg}t|| d S )Nr   ZHelloZFoobZU5rL   )r%   rG   r"   r*   r]   ZU1)rk   r%   ry   r  r  r  or:   r  )r  r   r   r	   )r   r   r7   r`  ra  r   r   r   test_fortran_order_bufferW  s    z(TestRegression.test_fortran_order_bufferc                 C   sN   t dddg}tt|jtd ddg |td dg t|dddg d S )Nr"   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  rV   )z
2000-01-01r"   z{0}r   )r   r%   r   formatr   r5  )r   r   r`  	formattedr   r   r   !test_format_on_flex_array_elementf  s    z0TestRegression.test_format_on_flex_array_elementc                 C   s`   t d}t|}t|| t|j|j tt|t| t||k	 tt|t	| d S r   )
r   r   r   rf  r   rk   rJ   r   r4  r   )r   r`  arr_cpr   r   r   test_deepcopy_on_0d_arraym  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||k	 t|d |d k	 t|d |d k t|d |d k d S )	Nr7   r"   r:   r*   rL   rF   rw  r"   r"   )r   r   r   rf  r   r   )r   r7   r:   r`  r  r   r   r   "test_deepcopy_F_order_object_arrayx  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   rf  r   rk   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 )Nrq  r  TF)r   r   r   baser%   )r   rZ   Z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                   @   s   e Zd ZdZdd ZdS )z2TestRegression.test_richcompare_crash.<locals>.Fooi  c                 _   s
   t  d S r  )r  )r   argskwargsr   r   r   	__array__  s    z<TestRegression.test_richcompare_crash.<locals>.Foo.__array__N)r  r  r   Z__array_priority__r  r   r   r   r   rj    s   rj  r"   )operatorr   r   ltlegtger   r   r   eqne)r   oprj  rhslhsr9   r   r   r   test_richcompare_crash  s    
z%TestRegression.test_richcompare_crashc                 C   sd   G dd dt j}t dddg|}td|kd tt d|kd tt dg|kd d S )Nc                   @   s   e Zd Zdd ZdS )z@TestRegression.test_richcompare_scalar_and_subclass.<locals>.Fooc                 S   s   dS )NOKr   )r   otherr   r   r   __eq__  s    zGTestRegression.test_richcompare_scalar_and_subclass.<locals>.Foo.__eq__N)r  r  r   r*  r   r   r   r   rj    s   rj  r"   r*   r-   rT   r(  )r   r   r   r  r   r>   )r   rj  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/   )r2   r   r3   r   r  r   r3  r9  )r   r8   rC  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  s    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-   rd   r]   r*   r*  )r   r_   r`   r   r2   r   r   rZ  )r   r7   r+  r   r   r   test_repeat_broadcasting  s    z'TestRegression.test_repeat_broadcastingc                 C   s~   dd }t |dd}t jdddgddgd	d
ddggtd}t||d t jdddgddgdd
dd	ggtd}t|| d S )Nc                 S   s   | d | d  | d< | d< d S )Nr^   r   r   r   r   r   r   r9     s    z0TestRegression.test_frompyfunc_nout_0.<locals>.fr"   r   r*   r-   rd   r]   r   r,   r.   r+   r$   r   )r   r  r   r   r   r	   )r   r9   Zufr7   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 )Nr7   r:   r   r]   r*   r$   r  rT   r   r"   )r   r%   r   r>   r5  rI   r2   r   r  r  gccollectr   )r   Z
recordtyper7   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   Z
percentiler_   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   rY   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*   r  i  i  i7  l   Sb )r*   r,   r,   i)r   rM   r%   intpre   r   r   r`   )r   r7   Z	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 | kstt|d t	kstd S )Nr   )r<   r#  r#  )r<   r   r<   )r7   r|   )r:   r|   )r#  r   r   )r   r   titleZoops)r   Z	wrongtyper=  )r7   r   )r:   r   )rZ   r   )r   r   r"   r$   r   )
r   r   r   r%   rM   r   r  r%  r   rJ   rO   r   r   r   test_invalid_structured_dtypes	  s(    

z-TestRegression.test_invalid_structured_dtypesc                 C   st   t tj tjh }|D ]T}| }zt| W n. tk
r^ } zt|jd  W 5 d }~X Y qX t	|jd k qd S r  )
setr   r  r  voidhashr   r   __hash__r   )r   Z	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	  r7   z
2017-08-25r"   )r?  r   r  r  r@  r  r   
datetime64getr   r   )r   Zscalar_typesr  sctyper  Z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 )NrT   V4r"   s   r   s       )r   rI   r  r   )r   var#   r   r   r   test_void_item_memview8	  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	  ZV1r   s   abZV2r  ZV3s   abcdrH  )r   r   r   rX   r(   r   r   r   test_void_getitem?	  s    z TestRegression.test_void_getitemc                 C   sF   t dD ]8}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#   )r2   r   r   r   r3  r4  )r   rc  Z	structurer   r   r   test_structarray_titleF	  s    z%TestRegression.test_structarray_titlec                 C   sv   ddd}t jd D ]\}|dkr"qt |j}|||d}dD ],}|j|d}t|| tt|t| qBqd S )	Nr	  z
2018-06-20)r  MZAllr   r-   )Nr   r*  )r   rr  r%   r   rE  r   r   )r   r  chrF  Zscvaluer+  Zsqueezedr   r   r   test_dtype_scalar_squeezeP	  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 r<t	|t|k q<d S )NzSome long field namer  rT   )
r   r  r  r   r%   r   rI   r2   r5  r   )r   r   r  r  r   r   r   r   r   test_field_access_by_title`	  s    
z)TestRegression.test_field_access_by_titler  )rT   rT   r>   r0   r*   c                 C   sL   t ||}d|kst|dkr<t|jdkr<d|ksHtnd|ksHtd S )Ns   _multiarray_umathr]   r   s   numpy.core.numerics   numpy.core.multiarray)r   r9  r%  lenrk   )r   r0   r  r   r   r   r   test_pickle_modulel	  s
    
z!TestRegression.test_pickle_modulec                 C   s&   t jdddgtd}tt|jd d S )NZAAAAAg   EqAr$   Zc8)r   r   r   r   r   rX   r  r   r   r   test_object_casting_errors~	  s    z)TestRegression.test_object_casting_errorsc              	   C   sv   t jdddddgt jd}t j|dt dd	gd
}t|ddddddd	g t j|ddd
}t|ddddddg d S )Nr"   r*   rd   r,   r   r$   iX   c   )Zto_beginZto_endr-   ii   )r   r   ri  Z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   rD  r   r2   r   r3   r9  r   r3  )r   r   r`  r8   Zdumpedr   r   r   test_pickle_datetime64_array	  s
    z+TestRegression.test_pickle_datetime64_arrayc              	   C   s4   G dd d}t t t| g W 5 Q R X d S )Nc                   @   s   e Zd Zi ZdS )z2TestRegression.test_bad_array_interface.<locals>.TN)r  r  r   r  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.t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 )Nrx  rj   )r   r   r(   r   r   r   r  	  s    z9TestRegression.test_2d__array__shape.<locals>.T.__array__c                 S   s   t g S r  )iterr(   r   r   r   __iter__	  s    z8TestRegression.test_2d__array__shape.<locals>.T.__iter__c                 S   s   t dd S )Nz__getitem__ was called)r%  )r   ra   r   r   r   r  	  s    z;TestRegression.test_2d__array__shape.<locals>.T.__getitem__c                 S   s   dS r   r   r(   r   r   r   r  	  s    z7TestRegression.test_2d__array__shape.<locals>.T.__len__N)r  r  r   r  r[  r  r  r   r   r   r   r  	  s   r  )r"   r   r   )r   r   rk   r%  )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 tt j|}t|j|j d S )N)r]  r:   r  )	r   rI   rL  re   r%  Z	ctypeslibZ	as_ctypesr   _length_)r   r`  Zc_arrr   r   r   test_to_ctypes	  s    zTestRegression.test_to_ctypesc              	   C   s0   t jtdd ttdtj W 5 Q R X d S )NzUnable to convert dtype.*r   now)r   r   r   r  r   r   rD  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sFtd S )	Nr7   r:   r   )r   offsetsr   r  r$   rx   )r  z|V8)r   r%   dictr'   r   r  r%  )r   r   rx   r   r   r   test__array_interface__descr	  s    
z+TestRegression.test__array_interface__descrg   Ј B)Z
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\t	t 
||dkspt	d S )Nr-   r$   r"   .r   rh  )r   r~  r>   r   r&   rt  r   r%   re   r%  r   )r   Z	int32_maxrE  r7   r:   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&td S )Nc                 S   s   | S r  r   r   r   r   r      cassé	  s    u3   TestRegression.test_frompyfunc_name.<locals>.cassér"   u   <ufunc 'cassé (vectorized)'>)r   r  r5  r%  )r   rf  r9   r   r   r   test_frompyfunc_name	  s    z#TestRegression.test_frompyfunc_name	operationrB   r  multiplyZfloor_divider%  fmodZsquareZ
reciprocalpowerabsolutenegativeZpositiveZgreaterZgreater_equalZlessZ
less_equalequal	not_equallogical_andZlogical_not
logical_orZbitwise_andZ
bitwise_orZbitwise_xorinvertZ
left_shiftZright_shiftgcdZ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 sFtd| d| dd S )Nc                 S   s4   t |D ]\}}| |kr|  S qt|  dd S )Nz not in list)	enumerater   )stringZ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   typesr%  )r   rh  rG   rv  rw  r   r   r   test_ufunc_order	  s
    zTestRegression.test_ufunc_orderN(%  r  r  r   r    r)   r;   r?   rD   rK   rP   rS   r[   rb   rh   ro   rr   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   markZxfailr   Zparametrizer   rM   r  r_   r   r   r   r  r  r  r  r  r  r  r"  r(  r,  r-  r.  r8  r:  r>  r@  rA  rB  rH  rc  rf  rg  rl  rp  rr  ru  ry  r|  r~  r  r  r  r  r  r  r  r  Zskipifr   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  r  r   r  r  r  r  r  r'  r)  r*  r/  r3  r6  r8  r9  r:  r=  r>  rA  rD  r   rG  rK  rM  rQ  rR  rS  rT  rV  rW  rX  r[  r_  r`  ri  rn  ro  rs  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  r  r  r  r  r  r  r  r  Z	slow_pypyr  r  r  r  r  r  r  r  r  r  r  r  r
  r  r  r  r  r  r  r'  r+  r,  r.  r0  r2  r8  r9  r:  r<  r   r  implementationversionr>  rC  rG  rJ  rK  rL  rO  rP  r  r2   r   r3   rR  rS  rV  rX  rY  r\  maxsizer_  ra  rd  r   re  rg  rx  r   r   r   r   r      s  
	


		"*"
		"
g	
H

	


=	
	,		 






                     
r   )$r   r  r3  r  r   osr   ior   	itertoolsr   r  r   Znumpy.testingr   r   r   r   r	   r
   r   r   r   r   r   r   r   r   Znumpy.testing._private.utilsr   r   Znumpy.compatr   r   r   r   r   r   r   r   <module>   s   @