3
Ud*              	   @   s  d dl Z d dlZd dlZd dljjZd dlZ	d dl
jZdd Zdd Zdd Zdd	 Zejjd
dddge jdfdddge jdfddge jdfgdd Zdd Zdd Zdd Zdd Zdd Zejjdddd  Zejjddd!d" Zd#d$ Zd%d& Zd'd( Zejjd)d*d+gd,d- Z d.d/ Z!ejjd0d*d+gejjd1dd2d3 Z"ejjd4d5d6gejjd0d*d+gd7d8 Z#ejjd4d5d6gejjd9e	j$ddddgd:d;e	j%ddddgd:d;gd<d= Z&ejjd0d*d+gejjd1dd>d? Z'ej(d@dAdBdCdD Z)ej(d@dEdBdFdG Z*dHdI Z+ejjdJe	j%dddgej%d+d+d+gfe	j%dddgej%d+d+d*gfgdKdL Z,dMdN Z-ejjdOej.ej/ej0gdPdQ Z1dS )R    Nc              C   sf   t jdt jdt jdgddi} d}t| |ks4td}t| j|ksJtd}t| jj|ksbtd S )	NAabstring)dtypez      A
0     a
1  <NA>
2     bz40       a
1    <NA>
2       b
Name: A, dtype: stringz7<StringArray>
['a', <NA>, 'b']
Length: 3, dtype: string)pd	DataFramearrayNAreprAssertionErrorr   )dfexpected r   [/var/www/html/virt/lib64/python3.6/site-packages/pandas/tests/arrays/string_/test_string.py	test_repr   s     r   c              C   s:   t jjjdd dg} | d d k	s$t| d t jks6td S )Nr   r      )r   arraysStringArray_from_sequencer   r
   )r   r   r   r   test_none_to_nan   s    r   c              C   sh   t jjjddg} tjtdd d| d< W d Q R X tjtdd tjdd	g| d d < W d Q R X d S )
Nr   r   10)match
   r   stringsr      )	r   r   r   r   pytestraises
ValueErrornpr	   )r   r   r   r   test_setitem_validates   s
    r    c              C   s<   t jddgdd} d| d< t jddgdd}tj| | d S )Nr   cr   )r   dr   )r   r	   tmassert_extension_array_equal)arrr   r   r   r   test_setitem_with_scalar_string'   s    r&   zinput, methodr   r   r!   
capitalizeza bza bc. dec             C   sV   t j| dd}t j| dd}||j}||j}|jjdks@ttj|jt	| d S )Nr   )r   object)
r   Seriesstrr   namer   r#   assert_series_equalastyper(   )inputmethodr   r   resultr   r   r   r   test_string_methods0   s    	

r1   c              C   s<   t jt jddd} d | d< | jdjd}tj||  d S )N2000   )Zperiodsr   r   zdatetime64[ns])r   r)   Z
date_ranger-   r#   r,   )sr0   r   r   r   test_astype_roundtripB   s    r5   c              C   s   t jdddd d gdd} t jddd dd gdd}| | }t jd	d
d d d gdd}tj|| | j|}tj|| | j|}t jddd d d gdd}tj|| | j|dd}t jd	d
ddd gdd}tj|| d S )Nr   r   r!   r   )r   xyzaxZbyxaZyb-)Z
fill_valuezc-z-z)r   r)   r#   r,   addZradd)r   r   r0   r   r   r   r   test_addJ   s    

r=   c              C   s|   t jdddgdd} tjdddggtd}tjtdd | |  W d Q R X t j| }tjtdd ||  W d Q R X d S )Nr   r   r!   r   )r   z3 != 1)r   )r   r	   r   r(   r   r   r   r)   )r   r   r4   r   r   r   test_add_2d^   s    
r>   c              C   sz   t jddd d gdd} dd dd g}| | }t jdd d d gdd}tj|| ||  }t jdd d d gdd}tj|| d S )	Nr   r   r   )r   r6   r7   r9   r:   )r   r	   r#   r$   )r   otherr0   r   r   r   r   test_add_sequencei   s    r@   c              C   sT   t jddd gdd} | d }t jddd gdd}tj|| d|  }tj|| d S )Nr   r   r   )r   r   ZaaZbb)r   r	   r#   r$   )r   r0   r   r   r   r   test_mulv   s    rA   zGH-28527)reasonc              C   s   t jddddgdd} t jddd	d
gg}| j|tks<t| | }t jddddggjd}tj|| ||  }t jddddggjd}tj|| d S )Nr   r   r!   r"   r   )r   tuvwZatZbuZcvZdwtaZubZvcwd)	r   r	   r   __add__NotImplementedr   r-   r#   assert_frame_equal)r	   r   r0   r   r   r   r   test_add_strings   s    rL   c              C   s   t jddtjtjgdd} t jdtjdtjgg}| j|tksDt| | }t jdtjtjtjggjd}t	j
|| ||  }t jdtjtjtjggjd}t	j
|| d S )	Nr   r   r   )r   r6   r7   r9   r:   )r   r	   r   nanr   rI   rJ   r   r-   r#   rK   )r	   r   r0   r   r   r   r   test_add_frame   s      rN   c                s   |  t jdd dgdd}dt| }tj fdd|D td}t j|dd}tj|| t| t j}t jd d d gdd}tj|| d S )Nr   r!   r   )r   c                s   g | ]}t | qS r   )getattr).0item)op_namer?   r   r   
<listcomp>   s    z2test_comparison_methods_scalar.<locals>.<listcomp>boolean)r   r	   rO   r   r(   r#   r$   r
   )all_compare_operatorsr   r0   r   r   )rR   r?   r   test_comparison_methods_scalar   s    rV   c             C   s   | }t jdd dgdd}d d dg}t|||}tj|dd}t|d ||d	 |d
< t j|dd}tj|| t||t j}t jd d d gdd}tj|| d S )Nr   r!   r   )r   r(   r   rT   rW   rW   )r   r	   rO   r   Z
empty_liker#   r$   r
   )rU   rR   r   r?   r0   r   r   r   r   test_comparison_methods_array   s    
rX   c            (   C   s  t jtdd  tjjtjddgdd W d Q R X t jtdd tjjtjg  W d Q R X t jtdd" tjjtjdtjgt	d W d Q R X t jtdd  tjjtjdd gt	d W d Q R X t jtdd" tjjtjdtj
gt	d W d Q R X d S )Nzsequence of strings)r   r   r   ZS1)r   zstrings or pandas.NA)r   r   r   r   r   r   r   r	   rM   r(   ZNaTr   r   r   r   test_constructor_raises   s    $&$rY   copyTFc             C   sn   t jdt jgtd}t jdtjgtd}tjjj|| d}tjj|}t	j
|| | rZ|n|}t	j|| d S )Nr   )r   )rZ   )r   r	   rM   r(   r   r
   r   r   r   r#   r$   assert_numpy_array_equal)rZ   Znan_arrZna_arrr0   r   r   r   r   test_from_sequence_no_mutate   s    r\   c              C   sF   t jdt jdgdd} | jd}t jdt jdgdd}tj|| d S )N13r   )r   Int64r      )r   r	   r
   r-   r#   r$   )r%   r0   r   r   r   r   test_astype_int   s    
ra   skipnazNot implemented StringArray.sumc             C   s0   t jdddgdd}|j| d}|dks,td S )Nr   r   r!   r   )r   )rb   abc)r   r)   sumr   )rb   r%   r0   r   r   r   test_reduce   s    re   r/   minmaxc             C   sZ   t jdddd gdd}t|| |d}|rH| dkr6dnd}||ksVtn|t jksVtd S )Nr   r   r!   r   )r   )rb   rf   )r   r)   rO   r   r
   )r/   rb   r%   r0   r   r   r   r   test_min_max   s    rh   r%   r   )r   c             C   s.   t t| |}| dkrdnd}||ks*td S )Nrf   r   r!   )rO   r   r   )r/   r%   r0   r   r   r   r   test_min_max_numpy   s    	ri   c             C   sJ   t jd dd ddd gdd}|j| d}| r8|dksFtnt j|sFtd S )Nr   r   r!   r   )r   )rb   rc   )r   r)   rd   r   isna)rb   r%   r0   r   r   r   test_reduce_missing  s
    rk   pyarrowz0.15.0)min_versionc              C   sP   dd l } tjdddgdd}| j|}| jt|| j dd}|j|sLtd S )	Nr   r   r   r!   r   )r   T)typeZfrom_pandas)rl   r   r	   listr   equalsr   )padatar%   r   r   r   r   test_arrow_array  s
    
rs   z
0.15.1.devc              C   s   dd l } tjddd gdd}tjd|i}| j|}|jdjdksHt|j }t	|d j
tjsfttj|| |jd tjkstd S )Nr   r   r   r   )r   r   )r   r   )rl   r   r	   r   tablefieldrn   r   Z	to_pandas
isinstancer   ZStringDtyper#   rK   locr
   )rq   rr   r   rt   r0   r   r   r   test_arrow_roundtrip  s    
rx   c              C   s   t jdddt jgdd} | jdd}t jdddgddt jgd	d
}tj|| | jdd}t jddgddgd	d
}tj|| d S )Nr   r   r   )r   F)Zdropnar   r   r_   )indexr   T)r   r	   r
   Zvalue_countsr)   r#   r,   )r%   r0   r   r   r   r   test_value_counts_na-  s    rz   zvalues, expectedc          
   C   sx   t jddb | j }tj|| t j| j }t j|}tj|| t j| j }t j|}tj|| W d Q R X d S )Nzmode.use_inf_as_naT)	r   Zoption_contextrj   r#   r[   r)   r,   r   rK   )valuesr   r0   r   r   r   test_use_inf_as_na8  s    	

r|   c              C   sL   t jdddgdd} d| j  k o>| j   ko>| jddk n  sHtd S )	Nr   r   r!   r   )r   r   T)deep)r   r)   nbytesZmemory_usager   )Zseriesr   r   r   test_memory_usageN  s    r   r   c             C   s:   t jdg| d}|jd}t jdgdd}tj|| d S )Ng?)r   r   z0.1)r   r)   r-   r#   r,   )r   r4   r0   r   r   r   r   test_astype_from_float_dtypeU  s    
r   )2operatorZnumpyr   r   Zpandas.util._test_decoratorsutilZ_test_decoratorstdZpandasr   Zpandas._testingZ_testingr#   r   r   r    r&   markZparametrizemethodcallerr1   r5   r=   r>   r@   rA   ZxfailrL   rN   rV   rX   rY   r\   ra   re   rh   r)   r	   ri   rk   Z
skip_if_nors   rx   rz   r|   r   Zfloat16Zfloat32Zfloat64r   r   r   r   r   <module>   s\   
		
$	
,