o
    d-                     @   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d9g d:id;d<ej(d=ed9g d>id?d<ej(d@ed9g dAidBd<ej(d ed9g dCidDd<ej(dEed9g dFidGd<ej(dHed9g dIidJd<gdKdL Z)dMdN Z*dOdP Z+ej&'d7ej(dQeg dRg dSdTd;d<ej(d eg dCg dUdTdDd<ej(dEeg dFg dVdTdWd<ej(d=dXdYeg dZg d[dTd\d<ej(ddEdYeg dFg d]dTd^d<ej(dHd@dEgdYed_d`d@dEggg dadTdbd<gdcdd Z,dS )e    N)	DataFrameSeriesfrom_dummiesget_dummiesc                   C   (   t g dg dg dg dg ddS )N   r   r   r   r   r   r   r   r   r   r   r   col1_acol1_bcol2_acol2_bcol2_cr    r   r   Z/app/.heroku/python/lib/python3.10/site-packages/pandas/tests/reshape/test_from_dummies.pydummies_basic      r   c                   C   r   )Nr
   r	   r   r   r   r   r   r   r   r   r   r   dummies_with_unassigned   r   r   c                  C   sD   g d} t jtdd t|  W d    d S 1 sw   Y  d S )Nr	   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   R   t g dg dd} tjtdd t|  W d    d S 1 s"w   Y  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      
"r)   c                  C   sZ   t g dg dd} tjtdd t| ddgd W d    d S 1 s&w   Y  d S )	Nr   r   r   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   "r2   c                  C   r"   )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   r*   r3   c                  C   sV   t g dddtjgd} tjtdd t|  W d    d S 1 s$w   Y  d S )Nr
   r   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   
"r6   c                  C   sX   t g dg dg dd} tjtdd t|  W d    d S 1 s%w   Y  d S )N)r         r   )r   r   r      )c1c2c3Zc4r$   r%   r-   (Passed DataFrame contains non-dummy datar   r1   r   r   r   r   test_error_contains_non_dummies\   s   
"r?   c                  C   sb   t g dg dg dg dd} tjtdd t| dd W d    d S 1 s*w   Y  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   "rC   c                 C   sB   t jtdd t| dgd W d    d S 1 sw   Y  d S )NzJExpected 'sep' to be of type 'str' or 'None'; Received 'sep' of type: listr   r@   rA   r   r   r   r   r   %test_error_with_prefix_sep_wrong_typew   s   "rE   c                 C   s@   t jtdd t| dd W d    d S 1 sw   Y  d S )Nr&   r   r@   rA   r   r   r(   r   r   r   r   r   *test_error_with_prefix_contains_unassigned   s   "rH   c                 C   sF   t jtdd t| dddgd W d    d S 1 sw   Y  d S )Nr,   r   r@   xyrB   r0   r   rG   r   r   r   2test_error_with_prefix_default_category_wrong_type   s   "rL   c                 C   sF   t jtdd t| dddid W d    d S 1 sw   Y  d S )Nz^Length of 'default_category' \(1\) did not match the length of the columns being encoded \(2\)r   r@   col1rI   rK   rF   rG   r   r   r   9test_error_with_prefix_default_category_dict_not_complete   s   "rN   c                 C   sL   t j| jd< tjtdd t| dd W d    d S 1 sw   Y  d S )Nr9   r   z5Dummy DataFrame contains NA value in column: 'col2_c'r   r@   rA   )r4   r5   locr   r   r(   r   rD   r   r   r   #test_error_with_prefix_contains_nan   s   "rQ   c                 C   sJ   d| j d< tjtdd t| dd W d    d S 1 sw   Y  d S )NstrrO   r>   r   r@   rA   )rP   r   r   r   r   rD   r   r   r   +test_error_with_prefix_contains_non_dummies   s   
"rS   c                  C   sh   t g dg dg dg dg dd} tjtdd t| d	d
 W d    d S 1 s-w   Y  d S )Nr   )r   r   r   r	   r
   r   r   zHDummy DataFrame contains multi-assignment\(s\); First instance in row: 0r   r@   rA   r'   r   r   r   r   (test_error_with_prefix_double_assignment   s   	"rT   c                  C   s<   t g d} t| }t|}tdg di}t|| d S )Nr$   r%   r-   r$    )r   r   r   r   tmassert_frame_equal
categoriesr    resultexpectedr   r   r   "test_roundtrip_series_to_dataframe   s
   r]   c                  C   s8   t dg di} t| }t|dd}| }t|| d S )NrV   rU   r@   rA   r   r   r   rW   rX   rY   r   r   r   &test_roundtrip_single_column_dataframe   s
   r_   c                  C   s>   t g dg dd} t| }t|dd}| }t|| d S N)r$   r%   r$   )r%   r$   r-   rM   col2r@   rA   r^   rY   r   r   r   test_roundtrip_with_prefixes   s
   rc   c                  C   D   t g dg dg dd} t dg di}t| }t|| d S )Nr   r   r   r   r   r   r   r   r   r   r   r   r=   rV   rU   r   r   rW   rX   r    r\   r[   r   r   r    test_no_prefix_string_cats_basic      rj   c                  C   rd   )N)TFFTFTFF)FFTFr=   rV   rU   rh   ri   r   r   r   ,test_no_prefix_string_cats_basic_bool_values   s   rm   c                  C   rd   )Nre   rl   rg   r=   rV   rU   rh   ri   r   r   r   2test_no_prefix_string_cats_basic_mixed_bool_values   s   rn   c                  C   N   t g dg dg dg dd} t dg didd}t| }t|| d S )	Nr   r   r   r   rf   rg   r   r   r   r   )r      r9      rV   objectZdtyperh   ri   r   r   r   test_no_prefix_int_cats_basic      rv   c                  C   ro   )	Nrp   rf   rg   rq   )g      ?g      9@      @g\(\@rV   rt   ru   rh   ri   r   r   r   test_no_prefix_float_cats_basic  rw   ry   c                  C   sT   t g dg dg dg dg dd} t dg didd	}t| }t|| d S )
N)r   r   r   r   r   )r   r   r   r   r   )r   r   r   r   r   )r   r   r   r   r   )r   r   r   r   r   )gGz?r-   r9   FNrV   rt   ru   rh   ri   r   r   r   test_no_prefix_mixed_cats_basic  s   	rz   c                  C   sD   t g dg dg dd} t dg di}t| }t|| d S )Nr
   r	   r   r$   r%   NaNrV   rh   ri   r   r   r   :test_no_prefix_string_cats_contains_get_dummies_NaN_column  rk   r}   zdefault_category, expectedr-   rV   r=   zdefault_category is a str)idr   )r$   r%   r   zdefault_category is a int      ?)r$   r%   r   zdefault_category is a float)r$   r%   r   zdefault_category is a 0F)r$   r%   Fzdefault_category is a boolr   r9   )r$   r%   r   zdefault_category is a tuplec                 C   s2   t g dg dd}t|| d}t|| d S )Nr
   r	   r#   r/   rh   )r0   r\   r    r[   r   r   r   +test_no_prefix_string_cats_default_category$  s   $r   c                 C   s2   t g dg dd}t| dd}t|| d S r`   rh   )r   r\   r[   r   r   r   test_with_prefix_basicM  s   r   c               	   C   sf   t g dg dg dg dg dg dg dd} t g dg dd}t| d	d
}t|| d S )Nr
   r	   r   r   )r   r   Zcol1_NaNr   r   r   Zcol2_NaNr{   )r|   r$   r-   ra   r@   rA   rh   ri   r   r   r   0test_with_prefix_contains_get_dummies_NaN_columnS  s   r   rI   )r$   r%   rI   )rI   r$   r-   ra   )r   r$   r-   )Fr$   r-   zdefault_category is a Falserx   )rb   rM   )r$   r%   rx   )r   r$   r-   z4default_category is a dict with int and float values)Nr$   r-   z4default_category is a dict with bool and None valuesr$   r%   )r   r$   r-   z5default_category is a dict with list and tuple valuesc                 C   s   t | d|d}t|| d S )Nr@   rK   )r   rW   rX   )r   r0   r\   r[   r   r   r   !test_with_prefix_default_categoryd  s   &r   )-numpyr4   r   Zpandasr   r   r   r   Zpandas._testingZ_testingrW   Zfixturer   r   r!   r)   r2   r3   r6   r?   rC   rE   rH   rL   rN   rQ   rS   rT   r]   r_   rc   rj   rm   rn   rv   ry   rz   r}   markZparametrizeparamr   r   r   r   r   r   r   r   <module>   s    

				
##