3
Ud\                 @   s  d dl mZ d dlZd dlmZ d dlZd dlZd dlm	Z	m
Z
mZ d dljZd dlmZmZ dd Zejdd	d
dddddddg
ddd Zejdd Zejjdd ZejjejjejjdG dd dZejjejjejjddddgdd  ZdS )!    )dedentN)randint)	DataFrame
get_optionread_clipboard)clipboard_getclipboard_setc             C   s(   i }|dkr||d< | dkr$| |d< |S )Ndefaultexcelsep )r   r
   kwargsr   r   R/var/www/html/virt/lib64/python3.6/site-packages/pandas/tests/io/test_clipboard.pybuild_kwargs   s    r   delimsutf8utf16stringlongnonasciicolwidthmixedfloatint)paramsc          	      s  | j }|dkr&tjddgddgdS |dkrFtjdd	gd
dgdS |dkrftjddgddgdS |dkrtjddddd gd gdS |dkrtd}tj|d ddd ddd gd gdS |dkrtjdj dj dS |d krtd!d  tjdd fd"dddd gd gdS |d#krPttjd$d%d& tjdd'j	tj
td(d)S |d*krztjddd+d ddd gd gdS |d,krtjddd-d ddd gd gdS td S ).Nr   z"a,	"b|cu   d	ef´zhi'jzk''lm)abr   u   µasdu	   Ωœ∑´u   øπ∆˚¬u	   œ∑´®r   u   👍👍abcdefr         si)
c_idx_type
r_idx_typec_idx_namesr_idx_namesr   zdisplay.max_rows   c              W   s   t dS )N   )r   )argsr   r   r   <lambda>9   s    zdf.<locals>.<lambda>)Z
data_gen_fr#   r$   r%   r&   r   z
in Englishu   en español)enesr   zdisplay.max_colwidthc                 s   d  S )Nxr   )r)   )_cwr   r   r*   F   s    r   g      ?g      @g{Gz?   Zabcde)r   r   cr   c             S   s   t | d S )Ng{Gz?)r   )rr0   r   r   r   r*   X   s    r   c              W   s   t dS )Nr(   )r   )r)   r   r   r   r*   b   s    )parampdr   tmZmakeCustomDataframer   splitnpZarangeZastypeZint64list
ValueError)requestZ	data_typeZmax_rowsr   )r.   r   df   sr    








r:   c             #   sB   i   fdd} fdd}| j d| | j d|  V  dS )aM  Fixture mocking clipboard IO.

    This mocks pandas.io.clipboard.clipboard_get and
    pandas.io.clipboard.clipboard_set.

    This uses a local dict for storing data. The dictionary
    key used is the test ID, available with ``request.node.name``.

    This returns the local dictionary, for direct manipulation by
    tests.
    c                s   |  j j< d S )N)nodename)data)
_mock_datar9   r   r   	_mock_set|   s    z!mock_clipboard.<locals>._mock_setc                  s    j j S )N)r;   r<   r   )r>   r9   r   r   	_mock_get   s    z!mock_clipboard.<locals>._mock_getz!pandas.io.clipboard.clipboard_setz!pandas.io.clipboard.clipboard_getN)setattr)Zmonkeypatchr9   r?   r@   r   )r>   r9   r   mock_clipboardl   s    rB   c             C   sF   dd l }|jjjd dt| j ks*t|jjj }|dksBtd S )Nr   r   )pandas.io.clipboardio	clipboardr   setvaluesAssertionErrorr   )rB   pandasresultr   r   r   test_mock_clipboard   s
    rK   c               @   s   e Zd Zd$ddZdd Zejjdddd	gd
d Zdd Z	dd Z
dd Zejjddddgejjddddgdd Zejjdddgejjddgdd Zdd Zdd Zejjddd d!gd"d# ZdS )%TestClipboardNc             C   s2   |j |||d t|pdd|d}tj|| d S )N)r
   r   encoding	r   )r   Z	index_colrM   )to_clipboardr   r4   assert_frame_equal)selfr=   r
   r   rM   rJ   r   r   r   check_round_trip_frame   s    z$TestClipboard.check_round_trip_framec             C   s   | j | d S )N)rR   )rQ   r:   r   r   r   test_round_trip_frame   s    z#TestClipboard.test_round_trip_framer   rN   ,|c             C   s   | j ||d d S )N)r   )rR   )rQ   r:   r   r   r   r   test_round_trip_frame_sep   s    z'TestClipboard.test_round_trip_frame_sepc             C   s<   |j dd d t }|j |j ks(t|j|jks8td S )NF)r
   r   )rO   r   	to_stringrH   shape)rQ   r:   rJ   r   r   r   test_round_trip_frame_string   s    z*TestClipboard.test_round_trip_frame_stringc             C   s&   t j  |jddd W d Q R X d S )NTz\t)r
   r   )r4   assert_produces_warningrO   )rQ   r:   r   r   r   test_excel_sep_warning   s    
z$TestClipboard.test_excel_sep_warningc             C   s&   t j  |jddd W d Q R X d S )NFrN   )r
   r   )r4   rZ   rO   )rQ   r:   r   r   r   test_copy_delim_warning   s    
z%TestClipboard.test_copy_delim_warningr	   r
   Tc             C   s6   t ||}|jf | ||jj |jddks2td S )NrN   )r   )r   rO   r;   r<   Zto_csvrH   )rQ   r   r
   r:   r9   rB   r   r   r   r    test_clipboard_copy_tabs_default   s    
z.TestClipboard.test_clipboard_copy_tabs_defaultFc             C   sH   t ||}|jf | tdd}|j |j ks4t|j|jksDtd S )Nz\s+)r   )r   rO   r   rW   rH   rX   )rQ   r   r
   r:   r   rJ   r   r   r   test_clipboard_copy_strings   s
    

z)TestClipboard.test_clipboard_copy_stringsc             C   s   t dd}tdj }|||jj< tjf |}|jd d dksDttdj }|||jj< tjf |}tdj }|||jj< tjf |}t	j
|| d S )Npython)Zenginez^
            John James	Charlie Mingus
            1	2
            4	Harry Carney
            r'   zHarry Carneyz@
            a	 b
            1  2
            3  4
            z@
            a  b
            1  2
            3  4
            )dictr   stripr;   r<   r3   r   ZilocrH   r4   rP   )rQ   r9   rB   Zclip_kwargstextr:   resexpr   r   r   test_read_clipboard_infer_excel   s    



z-TestClipboard.test_read_clipboard_infer_excelc             C   sH   t jt |jdd W d Q R X t jt tjdd W d Q R X d S )Nascii)rM   )pytestZraisesr8   rO   NotImplementedErrorr3   r   )rQ   r:   r   r   r   test_invalid_encoding   s    z#TestClipboard.test_invalid_encodingenczUTF-8zutf-8r   c             C   s   | j ||d d S )N)rM   )rR   )rQ   rj   r:   r   r   r   test_round_trip_valid_encodings   s    z-TestClipboard.test_round_trip_valid_encodings)NNN)__name__
__module____qualname__rR   rS   rg   markparametrizerV   rY   r[   r\   r]   r^   re   ri   rk   r   r   r   r   rL      s   
(rL   r=   u   👍...u   Ωœ∑´...zabcd...c             C   s   t |  | t kstd S )N)r   r   rH   )r=   r   r   r   test_raw_roundtrip   s    rq   )textwrapr   Znumpyr6   Znumpy.randomr   rg   rI   r3   r   r   r   Zpandas._testingZ_testingr4   rC   r   r   r   Zfixturer:   rB   ro   rE   rK   ZsingleZusefixturesrL   rp   rq   r   r   r   r   <module>   s6   
	J
i