U
    _{f6                     @   s  d dl mZmZm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Zd dlmZ dd Zdd Zd	d
 Zdd Zdd Zejjde	ddddedejgeddd Zejde	ddddedejeded edddedejg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/d0 Z'd1d2 Z(ejd3d4d5d6gd7d8 Z)d9d: Z*d;d< Z+d=d> Z,d?d@ Z-dAdB Z.dCdD Z/dEdF Z0dGdH Z1dIdJ Z2dKdL Z3dMdN Z4ejdOdde	gdPfdQdRe	gdSfgejdTddgdUdV Z5dS )W    )datetime	timedeltaN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   a/var/www/html/Darija-Ai-API/env/lib/python3.8/site-packages/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_hashable3   s    r    other   g      ?a   a)Zidsc                 C   s   | }|j dkr6t|ttfr6tj|j  d| dd |j dkrX|t|ttfks|tn$|j dkrj|d7 }|t|tks|td S )N)powrpowZrmodz with NA and z not defined.)reason)divmodZrdivmodr&   r"   )__name__
isinstancer   bytesr   skipr   r	   )all_arithmetic_functionsr!   opr   r   r   test_arithmetic_ops9   s    

r/   T      c                 C   s(   | t |t kst| |t t ks$td S r   r   r	   )Zcomparison_opr!   r   r   r   test_comparison_opsJ   s    r3   valueg        g       Fasarrayc                 C   sH   |rt | g} t|  }|r&|d }nt|t| s8t|dksDtd S )Nr   r"   )nparrayr   r*   r
   r	   r4   r5   resultr   r   r   test_pow_special`   s    
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   )	r6   r7   r   r*   float_bool_int_r
   r	   r8   r   r   r   test_rpow_special}   s    
r?   g      c                 C   s6   |rt | g} | t }|r$|d }t|s2td S r;   )r6   r7   r   pdisnar	   r8   r   r   r   test_rpow_minus_one   s    rC   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    rE   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    rI   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 rF   rH   r   r   r   r   test_logical_or   s    rJ   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 rF   rH   r   r   r   r   test_logical_xor   s    rK   c                   C   s   t  t kstd S r   r2   r   r   r   r   test_logical_not   s    rL   shape)r1   )r1   r1   )r"   r0   r1   c                 C   sL   |}t | }|jdkr |d7 }|t|}t j|jttd}t|| d S )Nr%   rG   dtype)	r6   Zzerosr)   r   fullrM   objecttmassert_numpy_array_equal)rM   r-   r.   r#   r9   expectedr   r   r   test_arithmetic_ndarray   s    


rU   c                   C   s   t tdkstd S )NT)r   r   r	   r   r   r   r   test_is_scalar   s    rV   c                   C   s(   t tdkstt tdks$td S )NTF)rA   rB   r   r	   Znotnar   r   r   r   	test_isna   s    rW   c                  C   s4   t jdtgtd} t ddg}t|  | d S )Nr"   rN   FT)rA   Seriesr   rQ   rR   Zassert_series_equalrB   )srT   r   r   r   test_series_isna   s    rZ   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   )r6   logr   r	   addr(   frexpr9   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   
ValueErrorr6   r[   atr   r   r   r   r   test_ufunc_raises   s    rb   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"   r0   r1   rN   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>)r6   r7   r   rQ   Z	logaddexprR   rS   r	   modflenall)r#   rT   r9   r   r   r   test_binary_input_not_dunder   s    ri   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"   r0   r1   rN   )
r6   r7   r   rQ   r(   r*   tupler	   rR   rS   )r#   rT   r9   Zarrr   r   r   test_divmod_ufunc  s    rk   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	   r^   r   r   r    test_integer_hash_collision_dict  s    rm   c                  C   s<   t tt h} t| dkstt | ks(ttt | ks8td S )Nr0   )r   r   rg   r	   r^   r   r   r   test_integer_hash_collision_set  s    rn   c                  C   s    t t t} | tkstd S r   )pickleloadsdumpsr   r	   r^   r   r   r   test_pickle_roundtrip(  s    rr   c                  C   s   t t} | tkstd S r   )rR   round_trip_pickler   r	   r^   r   r   r   test_pickle_roundtrip_pandas.  s    
rt   zvalues, dtypeZInt64ABstringas_framec                 C   s>   t t j||d}| r$|jdd}t|}t|| d S )NrN   ru   )name)rA   rX   r7   Zto_framerR   rs   Zassert_equal)rx   valuesrO   rY   r9   r   r   r    test_pickle_roundtrip_containers3  s
    
r{   )6datetimer   r   r   ro   numpyr6   r   Zpandas._libs.missingr   Zpandas.core.dtypes.commonr   ZpandasrA   Zpandas._testingZ_testingrR   r   r   r   r   r    markZparametrizeZint64nanr   r/   r=   ZNaTr3   r>   r<   r:   r?   rC   rE   rI   rJ   rK   rL   rU   rV   rW   rZ   r_   rb   ri   rk   rm   rn   rr   rt   r{   r   r   r   r   <module>   s   
  


   

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