U
    #Ίc
  γ                   @   s*   d dl Zd dlmZmZ G dd dZdS )ι    N)Ϊassert_raisesΪassert_raises_regexc                   @   sP   e Zd 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S )ΪTestIndexErrorsz9Tests to exercise indexerrors not covered by other tests.c                 C   sb   t  d‘}tt|jdgdd tt|jdgdd tt|jdgddd tt|jdgddd d	S )
ztake from a 0-length dimension)ι   ι   r   ι   r   r   ©Ϊaxisι   Ϊwrap)r	   ΪmodeΪclipN)ΪnpΪemptyr   Ϊ
IndexErrorΪtake)ΪselfΪx© r   ϊE/tmp/pip-unpacked-wheel-b2rbor69/numpy/core/tests/test_indexerrors.pyΪtest_arraytypes_fasttake
   s
    
z(TestIndexErrors.test_arraytypes_fasttakec                 C   s   t jdtd}tt|jdg t jdtd}tt|jdgdd tt|jdgdd tt|jdg tt|jdgdd	 tt|jdgd
d	 d S )Nι   ©Zdtypeι   ©r   r   r
   r   r   r   )r   r   )r   ΪzerosΪobjectr   r   r   )r   Ϊdr   r   r   Ϊtest_take_from_object   s    z%TestIndexErrors.test_take_from_objectc                 C   sx   t jdtd}tt|jd t jdtd}tt|jd t jdtd}tt|jdd t jdtd}tt|jdd d S )Nr   r   ι   r   )r   r   r   )r   r   r   r   r   ΪitemΪitemset©r   Ϊar   r   r   Ϊtest_multiindex_exceptions   s    z*TestIndexErrors.test_multiindex_exceptionsc                 C   st   t  d‘}tt|jdd t jdtd}tt|jdd t  d‘}tt|jdd t jdtd}tt|jdd d S )N)r   r   ιd   r   r   )r   r   r   )r   r   r   r   Ϊputr   r"   r   r   r   Ϊtest_put_exceptions*   s    

z#TestIndexErrors.test_put_exceptionsc                    sβ  dd t  dddg‘ tt fdd tt fdd tt fd	d tt fd
d t  dddg‘ tt fdd tt fdd t  dddg‘ tt fdd tt fdd t  dddg‘ tt fdd tt fdd t  dddg‘ tt fdd tt fdd t  dddg‘ tt fdd tt fdd t  dddg‘ tt fdd tt fdd t  dddg‘ tt fdd tt fdd dS )zcases in iterators.cc                 S   s   || |< d S ©Nr   ©ΪobjΪindΪvalr   r   r   Ϊassign6   s    z9TestIndexErrors.test_iterators_exceptions.<locals>.assignr
   r   r   c                      s    d S )N©r   r   Nr   r   r   ©r#   r   r   Ϊ<lambda>:   σ    z;TestIndexErrors.test_iterators_exceptions.<locals>.<lambda>c                      s    d S )N©r   r   r   r   r   r   r/   r   r   r0   ;   r1   c                      s    ddS )Nr.   r
   r   r   ©r#   r-   r   r   r0   <   r1   c                      s    ddS )Nr2   r
   r   r   r3   r   r   r0   =   r1   r   c                      s    d S )N©r   r   Nr   r   r   r/   r   r   r0   @   r1   c                      s    ddS )Nr4   r
   r   r   r3   r   r   r0   A   r1   c                      s
    j d S ©Nι
   ©Ϊflatr   r/   r   r   r0   D   r1   c                      s    j ddS ©Nr6   r   r7   r   r3   r   r   r0   E   r1   c                      s
    j d S r5   r7   r   r/   r   r   r0   G   r1   c                      s    j ddS r9   r7   r   r3   r   r   r0   H   r1   c                      s    j t d‘ S r5   ©r8   r   Ϊarrayr   r/   r   r   r0   K   r1   c                      s    j t d‘dS r9   r:   r   r3   r   r   r0   L   r1   c                      s    j t d‘ S r5   r:   r   r/   r   r   r0   N   r1   c                      s    j t d‘dS r9   r:   r   r3   r   r   r0   O   r1   c                      s    j t dg‘ S r5   r:   r   r/   r   r   r0   R   r1   c                      s    j t dg‘dS r9   r:   r   r3   r   r   r0   S   r1   c                      s    j t dg‘ S r5   r:   r   r/   r   r   r0   U   r1   c                      s    j t dg‘dS r9   r:   r   r3   r   r   r0   V   r1   N©r   r   r   r   ©r   r   r3   r   Ϊtest_iterators_exceptions4   s6    z)TestIndexErrors.test_iterators_exceptionsc                    s$  dd t  d‘ tt fdd t  d‘ tt fdd tt fdd t  d	‘ tt fd
d tt fdd t  d‘ tt fdd t  d‘ tt fdd t  d‘ tt fdd tt fdd t  d	‘ tt fdd tt fdd dS )zcases from mapping.cc                 S   s   || |< d S r(   r   r)   r   r   r   r-   [   s    z,TestIndexErrors.test_mapping.<locals>.assign)r   r6   c                      s    d S )Nι   r   r   r/   r   r   r0   _   r1   z.TestIndexErrors.test_mapping.<locals>.<lambda>©r   r   c                      s    d S )N©r6   r   r   r   r/   r   r   r0   b   r1   c                      s    ddS )NrA   r
   r   r   r3   r   r   r0   c   r1   )r   r   c                      s    d S )N©r
   r   r   r   r/   r   r   r0   e   r1   c                      s    ddS )NrB   r
   r   r   r3   r   r   r0   f   r1   )r6   c                      s    ddS ©Nr6   r
   r   r   r3   r   r   r0   i   r1   )r   c                      s    ddS rC   r   r   r3   r   r   r0   k   r1   c                      s    dddgf S ©Nr
   r   r   r   r/   r   r   r0   n   r1   c                      s    dddgfdS rD   r   r   r3   r   r   r0   o   r1   c                      s    dddgf S ©Nr
   r   r   r   r/   r   r   r0   q   r1   c                      s    dddgfdS rE   r   r   r3   r   r   r0   r   r1   Nr<   r=   r   r3   r   Ϊtest_mappingX   s&    






zTestIndexErrors.test_mappingc                    s(   t  d‘ dttd fdd d S )Nr@   )r
   r   r   r   r   zFtoo many indices for array: array is 2-dimensional, but 5 were indexedc                      s     S r(   r   r   ©r#   Ϊindexr   r   r0   {   r1   z<TestIndexErrors.test_mapping_error_message.<locals>.<lambda>)r   r   r   r   r=   r   rG   r   Ϊtest_mapping_error_messaget   s    
όz*TestIndexErrors.test_mapping_error_messagec                    s`   t  d‘ tt fdd tt fdd t  d‘ tt fdd tt fdd dS )	zcases from methods.c)r   r   c                      s
      d‘S ©Nr%   ©r    r   r/   r   r   r0      r1   z.TestIndexErrors.test_methods.<locals>.<lambda>c                      s      dd‘S ©Nr%   r
   ©r!   r   r/   r   r   r0      r1   )r   r   c                      s
      d‘S rJ   rK   r   r/   r   r   r0      r1   c                      s      dd‘S rL   rM   r   r/   r   r   r0      r1   Nr<   r=   r   r/   r   Ϊtest_methods}   s    

zTestIndexErrors.test_methodsN)Ϊ__name__Ϊ
__module__Ϊ__qualname__Ϊ__doc__r   r   r$   r'   r>   rF   rI   rN   r   r   r   r   r      s   
$	r   )Znumpyr   Znumpy.testingr   r   r   r   r   r   r   Ϊ<module>   s   