
    Phe                     @   d Z ddlZddlmZ ddlmZ ddlZddlm	Z	m
Z
mZ ej                  dfej                  dfej                  dfej                  d	fej                   d
fej"                  dfej$                  dfej&                  dfej(                  dfej*                  dfej,                  dfej.                  dfej0                  dfej2                  dfej4                  dfej6                  dfej8                  dfej:                  dfgZ ee \  Z Z! G d d      Z"y)z2
Test scalar buffer interface adheres to PEP 3118
    N)rational)get_buffer_info)assert_assert_equalassert_raises?bhilqBHILQefdgZfZdZgc            	          e Zd Zej                  j                  dee      d        Zej                  j                  dee      d        Z	ej                  j                  de
e      d        Zej                  j                  dee      d        Zd Zd	 Zd
 Zej                  j                  d ej                   dd       ej                   dd       ej                   dd      g      d        Zd Zy)TestScalarPEP3118scalar)idsc                      |       }t        j                  g t        j                  |            }t        |      }t        |      }t	        |j
                  |j
                         y )Ndtype)nparrayr    
memoryviewr   format)selfr   xamv_xmv_as         mC:\Users\daisl\Desktop\realtime-object-detection\venv\Lib\site-packages\numpy/core/tests/test_scalarbuffer.pytest_scalar_match_arrayz)TestScalarPEP3118.test_scalar_match_array%   sF    HHHRrxx/0!}!}T[[$++.    c                 >    |       }t        |      }t        |j                  t        j                  |      j                         t        |j
                  d       t        |j                  d       t        |j                  d       t        |j                  d       y )Nr    )	r#   r   itemsizer!   r    ndimshapestrides
suboffsets)r%   r   r&   r(   s       r*   test_scalar_dimz!TestScalarPEP3118.test_scalar_dim-   sg    H!}T]]BHHV$4$=$=>TYY"TZZ$T\\2&T__b)r,   zscalar, codec                      |       }t        d|j                  j                  dd|d      }t        |      }| j	                  |      |k(  sJ y )Nr.   r   Tr2   r/   r0   r1   r$   readonly)dictr    r/   r#   _as_dict)r%   r   coder&   expectedr(   s         r*   test_scalar_code_and_propertiesz1TestScalarPEP3118.test_scalar_code_and_properties7   sL    HQWW-=-=A > !}}}T"h...r,   c                      |       }t        j                  t        d      5  t        |dg       d d d        y # 1 sw Y   y xY w)Nscalar buffer is readonlymatchWRITABLE)pytestraisesBufferErrorr   )r%   r   r&   s      r*   test_scalar_buffers_readonlyz.TestScalarPEP3118.test_scalar_buffers_readonly@   s1    H]];.IJA
|, KJJs	   :Ac                 4   t        j                  dt         j                  dfdt         j                  dfg      }t        j                  d|      d   }t        t        |t         j                               t        |      }dt        j                  t         j                  df      j                  z  }|d	t        j                  t         j                        j                  z  z  }t        |j                  |       t        |j                  d
       t        |j                  d       t        |j                  d       t        |j                  d       t        j                  ddg|      }t        t        |t         j                               t        |      }t        |j                  |j                         t        |j                   |j                          t#        j$                  t&        d      5  t)        |dg       d d d        y # 1 sw Y   y xY w)Nname   grades)   )ndarray_scalar)g333333?g      @r   r.      rJ   r   )Sarah)g       @      @)John)g      @rN   r>   r?   rA   )r!   r    str_float64r"   r   
isinstancevoidr#   r/   r   r0   r1   r2   r3   ndarrayr$   rB   rC   rD   r   )r%   dtr&   r(   expected_sizer'   r)   s          r*    test_void_scalar_structured_dataz2TestScalarPEP3118.test_void_scalar_structured_dataF   si   XX,xT.JKLHH32>rB
1bgg&'!}RXXrwwl3<<<RXXbjj1::::T]]M2TYY"TZZ$T\\2&T__b) HH+-AB"M
1bjj)*!}T]]DMM2T[[$++. ]];.IJA
|, KJJs   7HHc                     t        |j                  |j                  |j                  |j                  |j
                  |j                        S )N)r2   r1   r/   r0   r$   r7   )r8   r2   r1   r/   r0   r$   r7   )r%   ms     r*   r9   zTestScalarPEP3118._as_dict_   s6    AIIQWWqzz1::G 	Gr,   c                    t        j                  d      }t        j                  d      }t        dddddd      }t        |      }| j	                  |      |k(  sJ t        ||z
        }| j	                  |      |k(  sJ t        j
                  d	d
g      }t        j                  d|      }t        t        t        ft        |d          t        j                  t        d      5  t        |dg       d d d        y # 1 sw Y   y xY w)Nz
2016-01-01z
2017-01-01)rL   rL   )   r   Tr6   )r'   uint16)r	   zM8[s]r   r>   r?   rA   )r!   
datetime64r8   r#   r9   r    emptyr   
ValueErrorrD   rB   rC   r   )r%   dt1dt2r;   vrU   r'   s          r*   test_datetime_memoryviewz*TestScalarPEP3118.test_datetime_memoryviewc   s     mmL)mmL)qq"T3sO}}Q8+++sSy!}}Q8+++XX78HHQOz;/QqTB ]];.IJC*. KJJs   'C>>Ds22ascii)idu   ️️zbasic multilingualu   💻💻znon-BMPc           	         t        j                  |      }t        dddddd      }t        |      }| j	                  |      |k(  sJ t        j
                  |d      }t        ||D cg c]  }t        |       c}       t        j                  t        d	
      5  t        |dg       d d d        y c c}w # 1 sw Y   y xY w)Nr.   r[   r   2wTr6   i4r   r>   r?   rA   )r!   rP   r8   r#   r9   
frombufferr   ordrB   rC   rD   r   )r%   rd   r;   rb   code_pointscs         r*   test_str_ucs4zTestScalarPEP3118.test_str_ucs4z   s     GGAJ QQb!%' qM}}Q8+++ mmAT2[1"51a3q61"56 ]];.IJA
|, KJ #6 KJs   )B4
B99Cc                     t        d      }t        t              5  t        |       d d d        t	        j
                  t        d      5  t        |dg       d d d        y # 1 sw Y   ;xY w# 1 sw Y   y xY w)NrL   r>   r?   rA   )r   r   	TypeErrorr#   rB   rC   rD   r   )r%   rs     r*   test_user_scalar_fails_bufferz/TestScalarPEP3118.test_user_scalar_fails_buffer   sX    QK9%qM & ]];.IJA
|, KJ	 &% KJs   A!
A-!A*-A6N)__name__
__module____qualname__rB   markparametrizescalars_only
codes_onlyr+   r4   scalars_and_codesr<   rE   rW   r9   rc   paramro   rs   r.   r,   r*   r   r   #   s   [[X|D/ E/ [[X|D* E* [[^->JO/ P/ [[X|D- E-
-2G/. [[SZG,^(<=+	:# 
-
-&-r,   r   )#__doc__numpyr!   numpy.core._rational_testsr   numpy.core._multiarray_testsr   rB   numpy.testingr   r   r   bool_byteshortintcint_longlongubyteushortuintcuint	ulonglonghalfsingledouble
longdoublecsinglecdoubleclongdoubler{   zipry   rz   r   r.   r,   r*   <module>r      s    / 8  > > XXsOWWcNXXsOWWcNWWcN[[#XXsOYYXXsOWWcN\\3WWcNYYYY]]CZZZZ^^T% (  12 jv- v-r,   