U
    sVc/                     @   s8  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Z	d dl
m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d dd ddeded ed ed ed g
ejdddgdd Zejddddedededgejdddgdd Zejdddededgejdddgd d! Zd"d# Zd$d% Zd&d' Zd(d) Zd*d+ Z ejd,d-d.d/gd0d1 Z!d2d3 Z"d4d5 Z#d6d7 Z$d8d9 Z%d:d; Z&d<d= Z'd>d? Z(d@dA Z)dBdC Z*dDdE Z+dFdG Z,ejdHddIegdJfdKdLegdMfgejdNddgdOdP Z-dS )Q    NNA)	is_scalarc                  C   s&   t t ksttt  } | t ks"td S N)r   AssertionErrortype)Znew_NA r   F/tmp/pip-unpacked-wheel-xj8nt62q/pandas/tests/scalar/test_na_scalar.pytest_singleton   s    
r
   c                   C   s$   t tdkstttdks td S )N<NA>)reprr   r   strr   r   r   r	   	test_repr   s    r   c                   C   sf   t tdkstt tddks"tt tddks4tt dksBttddksRttddksbtd S )Nr   z>10z
      <NA>Zxxx)formatr   r   r   r   r   r	   test_format   s    r   c               	   C   sJ   d} t jt| d tt W 5 Q R X t jt| d t  W 5 Q R X d S )Nz boolean value of NA is ambiguousmatch)pytestraises	TypeErrorboolr   msgr   r   r	   test_truthiness$   s
    r   c                  C   s0   t tt tksttdi} | t dks,td S )Ntest)hashr   r   )dr   r   r	   test_hashable.   s    r   c                 C   s   | }t dddtdtjfD ]`}|jdkr6t|tr6q|jdkrX|t |t t fks|tq|jdkrj|d7 }|t |t kstqd S )N         ?a)powrpowZrmod)divmodZrdivmodr"   )r   npint64nan__name__
isinstancer   r   )all_arithmetic_functionsopotherr   r   r	   test_arithmetic_ops4   s    

r,   c               	   C   s   t dddtdtjtdfD ]} t | kt ks4tt | kt ksDtt | kt ksTtt | kt ksdtt | k t ksttt | kt kst| t kt kst| t kt kst| t kt kst| t kt kst| t k t kst| t kt ks tq d S )Nr   r   r    T)r   r$   r%   r&   bool_r   )r+   r   r   r	   test_comparison_opsC   s    $r.   valueg        g       FasarrayTc                 C   sH   |rt | g} t|  }|r&|d }nt|t| s8t|dksDtd S )Nr   r   )r$   arrayr   r(   r   r   r/   r0   resultr   r   r	   test_pow_specialT   s    
r4   r   r   c                 C   s^   |rt | g} | t }|r&|d }n(t| t jt jt jfsNt|t| sNt|| ksZtd S Nr   )	r$   r1   r   r(   float_r-   int_r   r   r2   r   r   r	   test_rpow_specialq   s    
r8   g      c                 C   s6   |rt | g} | t }|r$|d }t|s2td S r5   )r$   r1   r   pdisnar   r2   r   r   r	   test_rpow_minus_one   s    r<   c                   C   s>   t 
 t kstt  t ksttt t ks,tt  t ks:td S r   )r   r   absr   r   r   r	   test_unary_ops   s    r>   c               	   C   sz   t d@ t kstdt @ t ks tt d@ dks0tdt @ dks@tt t @ t ksPtd} tjt| d t d@  W 5 Q R X d S NTFzunsupported operand typer      r   r   r   r   r   r   r   r   r	   test_logical_and   s    rB   c               	   C   sz   t dB dkstdt B dks tt dB t ks0tdt B t ks@tt t B t ksPtd} tjt| d t dB  W 5 Q R X d S r?   rA   r   r   r   r	   test_logical_or   s    rC   c               	   C   sz   t dA t kstdt A t ks tt dA t ks0tdt A t ks@tt t A t ksPtd} tjt| d t dA  W 5 Q R X d S r?   rA   r   r   r   r	   test_logical_xor   s    rD   c                   C   s   t  t kstd S r   )r   r   r   r   r   r	   test_logical_not   s    rE   shape)   )rG   rG   )r      rG   c                 C   sL   |}t | }|jdkr |d7 }|t|}t j|jttd}t|| d S )Nr!   r@   dtype)	r$   zerosr'   r   fullrF   objecttmassert_numpy_array_equal)rF   r)   r*   r    r3   expectedr   r   r	   test_arithmetic_ndarray   s    


rQ   c                   C   s   t tdkstd S )NT)r   r   r   r   r   r   r	   test_is_scalar   s    rR   c                   C   s(   t tdkstt tdks$td S )NTF)r:   r;   r   r   Znotnar   r   r   r	   	test_isna   s    rS   c                  C   s4   t jdtgtd} t ddg}t|  | d S )Nr   rI   FT)r:   Seriesr   rM   rN   Zassert_series_equalr;   )srP   r   r   r	   test_series_isna   s    rV   c                  C   sx   t ttkstt tdtks&tt td} | d tkrJ| d tksNtt t} | d tkrp| d tksttd S )Nr   r   )r$   logr   r   addr#   frexpr3   r   r   r	   
test_ufunc   s    
r[   c               	   C   s0   d} t jt| d tjtd W 5 Q R X d S )Nzufunc method 'at'r   r   )r   r   
ValueErrorr$   rW   atr   r   r   r   r	   test_ufunc_raises   s    r^   c                  C   s   t dddg} t jtttgtd}t | t}t|| t t| }t|| t tttkshtt tt}t	|dkstt
dd |D std S )Nr   rH   rG   rI   c                 s   s   | ]}|t kV  qd S r   r   ).0xr   r   r	   	<genexpr>   s     z/test_binary_input_not_dunder.<locals>.<genexpr>)r$   r1   r   rM   Z	logaddexprN   rO   r   modflenall)r    rP   r3   r   r   r	   test_binary_input_not_dunder   s    re   c                  C   s   t dddg} t jtttgtd}t | t}t|ts>t|D ]}t	|| t	|| qBt t| }|D ]}t	|| t	|| qpd S )Nr   rH   rG   rI   )
r$   r1   r   rM   r#   r(   tupler   rN   rO   )r    rP   r3   Zarrr   r   r	   test_divmod_ufunc   s    rg   c                  C   s8   t dtt di} | t  dks t| tt  dks4td S )NZfoobar)r   r   r   rZ   r   r   r	    test_integer_hash_collision_dict  s    ri   c                  C   s<   t tt h} t| dkstt | ks(ttt | ks8td S )NrH   )r   r   rc   r   rZ   r   r   r	   test_integer_hash_collision_set  s    rj   c                  C   s    t t t} | tkstd S r   )pickleloadsdumpsr   r   rZ   r   r   r	   test_pickle_roundtrip  s    rn   c                  C   s   t t} | tkstd S r   )rN   round_trip_pickler   r   rZ   r   r   r	   test_pickle_roundtrip_pandas%  s    
rp   zvalues, dtyperH   ZInt64ABstringas_framec                 C   s>   t t j||d}| r$|jdd}t|}t|| d S )NrI   rq   )name)r:   rT   r1   Zto_framerN   ro   Zassert_equal)rt   valuesrJ   rU   r3   r   r   r	    test_pickle_roundtrip_containers*  s
    
rw   ).rk   Znumpyr$   r   Zpandas._libs.missingr   Zpandas.core.dtypes.commonr   Zpandasr:   Zpandas._testingZ_testingrN   r
   r   r   r   r   r,   r.   markZparametrizer-   r7   r6   r4   r8   r<   r>   rB   rC   rD   rE   rQ   rR   rS   rV   r[   r^   re   rg   ri   rj   rn   rp   rw   r   r   r   r	   <module>   s|   
   


	 