U
    sVc-                     @   s  d dl Zd dlZd dlmZmZmZmZ d dlm	Z
 ejdd Zejdd Zdd Zd	d
 Zdd Zdd Zdd Zdd Zdd Zdd Zdd Zdd Zdd Zdd Zdd  Zd!d" Zd#d$ Zd%d& Zd'd( Zd)d* Zd+d, Z d-d. Z!d/d0 Z"d1d2 Z#d3d4 Z$d5d6 Z%ej&'d7ej(d8ed9d:d;d8gid<d=ej(d>ed9d:d;d>gid?d=ej(d@ed9d:d;d@gidAd=ej(d ed9d:d;d gidBd=ej(dCed9d:d;dCgidDd=ej(dEed9d:d;dEgidFd=gdGdH Z)dIdJ Z*dKdL Z+ej&'d7ej(dMed:d;dMgdMd:d8gdNd<d=ej(d ed:d;d gd d:d8gdNdBd=ej(dCed:d;dCgdCd:d8gdNdOd=ej(d>dPdQed:d;dPgd>d:d8gdNdRd=ej(ddCdQed:d;dCgdd:d8gdNdSd=ej(dEd@dCgdQed:d;d@dCggdEd:d8gdNdTd=gdUdV Z,dS )W    N)	DataFrameSeriesfrom_dummiesget_dummiesc                   C   s2   t dddgdddgdddgdddgdddgdS N   r   col1_acol1_bcol2_acol2_bcol2_cr    r   r   J/tmp/pip-unpacked-wheel-xj8nt62q/pandas/tests/reshape/test_from_dummies.pydummies_basic   s    r   c                   C   s2   t dddgdddgdddgdddgdddgdS r   r   r   r   r   r   dummies_with_unassigned   s    r   c               	   C   s0   dddg} t jtdd t|  W 5 Q R X d S )Nr   r   zBExpected 'data' to be a 'DataFrame'; Received 'data' of type: listmatchpytestraises	TypeErrorr   dummiesr   r   r   test_error_wrong_data_type'   s    
r   c               	   C   s@   t dddgdddgd} tjtdd t|  W 5 Q R X d S )Nr   r   abHDummy DataFrame contains unassigned value\(s\); First instance in row: 2r   r   r   r   
ValueErrorr   r   r   r   r   (test_error_no_prefix_contains_unassigned0   s    r"   c               	   C   sH   t dddgdddgd} tjtdd t| ddgd W 5 Q R X d S )	Nr   r   r   rExpected 'default_category' to be of type 'None', 'Hashable', or 'dict'; Received 'default_category' of type: listr   cddefault_categoryr   r   r   r   r   r   r   r   r   0test_error_no_prefix_wrong_default_category_type<   s    r)   c               	   C   s@   t dddgdddgd} tjtdd t|  W 5 Q R X d S )Nr   r   r   zHDummy DataFrame contains multi-assignment\(s\); First instance in row: 2r   r    r   r   r   r   %test_error_no_prefix_multi_assignmentH   s    r*   c               	   C   sB   t dddgddtjgd} tjtdd t|  W 5 Q R X d S )Nr   r   r   z0Dummy DataFrame contains NA value in column: 'b'r   )r   npnanr   r   r!   r   r   r   r   r   !test_error_no_prefix_contains_nanT   s     r-   c               	   C   sN   t ddddgddddgdddd	gd
} tjtdd t|  W 5 Q R X d S )Nr         r      Zc1c2c3Zc4r   r   r$   (Passed DataFrame contains non-dummy datar   r(   r   r   r   r   test_error_contains_non_dummies\   s    "r5   c               	   C   sT   t dddgdddgdddgdddgd} tjtdd t| dd W 5 Q R X d S )Nr   r   )r	   r
   zcol2-azcol2-bz*Separator not specified for column: col2-ar   _sepr    r   r   r   r   *test_error_with_prefix_multiple_seperatorsg   s    r9   c              	   C   s,   t jtdd t| dgd W 5 Q R X d S )NzJExpected 'sep' to be of type 'str' or 'None'; Received 'sep' of type: listr   r6   r7   r   r   r   r   r   %test_error_with_prefix_sep_wrong_typew   s
    r;   c              	   C   s*   t jtdd t| dd W 5 Q R X d S )Nr   r   r6   r7   r   r   r!   r   r   r   r   r   *test_error_with_prefix_contains_unassigned   s
    r>   c              	   C   s0   t jtdd t| dddgd W 5 Q R X d S )Nr#   r   r6   xyr8   r'   r   r=   r   r   r   2test_error_with_prefix_default_category_wrong_type   s
    rB   c              	   C   s0   t jtdd t| dddid W 5 Q R X d S )Nz^Length of 'default_category' \(1\) did not match the length of the columns being encoded \(2\)r   r6   col1r?   rA   r<   r=   r   r   r   9test_error_with_prefix_default_category_dict_not_complete   s
    rD   c              	   C   s6   t j| jd< tjtdd t| dd W 5 Q R X d S )Nr0   r   z5Dummy DataFrame contains NA value in column: 'col2_c'r   r6   r7   )r+   r,   locr   r   r!   r   r:   r   r   r   #test_error_with_prefix_contains_nan   s     rG   c              	   C   s4   d| j d< tjtdd t| dd W 5 Q R X d S )NstrrE   r4   r   r6   r7   )rF   r   r   r   r   r:   r   r   r   +test_error_with_prefix_contains_non_dummies   s    
rI   c               	   C   s\   t dddgdddgdddgdddgdddgd} tjtdd t| dd W 5 Q R X d S )Nr   r   r   zHDummy DataFrame contains multi-assignment\(s\); First instance in row: 0r   r6   r7   r    r   r   r   r   (test_error_with_prefix_double_assignment   s    	rJ   c                  C   sD   t ddddg} t| }t|}tdddddgi}t|| d S )Nr   r   r$    )r   r   r   r   tmassert_frame_equal
categoriesr   resultexpectedr   r   r   "test_roundtrip_series_to_dataframe   s
    rR   c                  C   s<   t dddddgi} t| }t|dd}| }t|| d S )NrK   r   r   r$   r6   r7   r   r   r   rL   rM   rN   r   r   r   &test_roundtrip_single_column_dataframe   s
    rT   c                  C   sB   t dddgdddgd} t| }t|dd}| }t|| d S Nr   r   r$   rC   col2r6   r7   rS   rN   r   r   r   test_roundtrip_with_prefixes   s
    rX   c                  C   sT   t ddddgddddgddddgd} t dddddgi}t| }t|| d S )Nr   r   r3   rK   r   r   r$   r   r   rL   rM   r   rQ   rP   r   r   r    test_no_prefix_string_cats_basic   s    (r[   c                  C   sT   t ddddgddddgddddgd} t dddddgi}t| }t|| d S )NTFr3   rK   r   r   r$   rY   rZ   r   r   r   ,test_no_prefix_string_cats_basic_bool_values   s    


r\   c                  C   sT   t ddddgddddgddddgd} t dddd	dgi}t| }t|| d S )
Nr   r   FTr3   rK   r   r   r$   rY   rZ   r   r   r   2test_no_prefix_string_cats_basic_mixed_bool_values   s    "r]   c                  C   sb   t ddddgddddgddddgddddgd} t dddddgidd	}t| }t|| d S )
Nr   r   )r      r0      rK   r^   r0   r_   objectZdtyperY   rZ   r   r   r   test_no_prefix_int_cats_basic   s    ,rb   c                  C   sb   t ddddgddddgddddgddddgd} t dddddgid	d
}t| }t|| d S )Nr   r   )      ?      9@      @\(\@rK   rc   rd   re   rf   r`   ra   rY   rZ   r   r   r   test_no_prefix_float_cats_basic  s    ,rg   c               
   C   sx   t dddddgdddddgdddddgdddddgdddddgd} t dddddd gid	d
}t| }t|| d S )Nr   r   )Gz?r$   r0   FNrK   rh   r$   r0   Fr`   ra   rY   rZ   r   r   r   test_no_prefix_mixed_cats_basic  s    	ri   c                  C   sL   t dddgdddgdddgd} t ddddgi}t| }t|| d S )Nr   r   )r   r   NaNrK   r   r   rj   rY   rZ   r   r   r   :test_no_prefix_string_cats_contains_get_dummies_NaN_column  s    "rk   zdefault_category, expectedr$   rK   r   r   zdefault_category is a str)idr   zdefault_category is a intg      ?zdefault_category is a floatzdefault_category is a 0Fzdefault_category is a bool)r   r0   zdefault_category is a tuplec                 C   s6   t dddgdddgd}t|| d}t|| d S )Nr   r   r   r&   rY   )r'   rQ   r   rP   r   r   r   +test_no_prefix_string_cats_default_category%  s    $rm   c                 C   s6   t dddgdddgd}t| dd}t|| d S rU   rY   )r   rQ   rP   r   r   r   test_with_prefix_basicN  s    rn   c               
   C   sx   t dddgdddgdddgdddgdddgdddgdddgd} t dddgdddgd}t| d	d
}t|| d S )Nr   r   )r	   r
   Zcol1_NaNr   r   r   Zcol2_NaNr   r   rj   r$   rV   r6   r7   rY   rZ   r   r   r   0test_with_prefix_contains_get_dummies_NaN_columnT  s    ro   r?   rV   zdefault_category is a Falsere   )rW   rC   z4default_category is a dict with int and float valuesz4default_category is a dict with bool and None valuesz5default_category is a dict with list and tuple valuesc                 C   s   t | d|d}t|| d S )Nr6   rA   )r   rL   rM   )r   r'   rQ   rP   r   r   r   !test_with_prefix_default_categorye  s    &  rp   )-Znumpyr+   r   Zpandasr   r   r   r   Zpandas._testingZ_testingrL   Zfixturer   r   r   r"   r)   r*   r-   r5   r9   r;   r>   rB   rD   rG   rI   rJ   rR   rT   rX   r[   r\   r]   rb   rg   ri   rk   markZparametrizeparamrm   rn   ro   rp   r   r   r   r   <module>   s   

				#
#