o
    թZh3                     @   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,dedf Z-dgdh Z.didj Z/dS )k    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   ]/var/www/html/lang_env/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   s^   | d  d| d< tj| jd< tjtdd t| dd W d    d S 1 s(w   Y  d S )Nr   Zfloat64r9   r   z5Dummy DataFrame contains NA value in column: 'col2_c'r   r@   rA   )astyper4   r5   locr   r   r(   r   rD   r   r   r   #test_error_with_prefix_contains_nan   s   "rR   c                 C   s\   | d  t| d< d| jd< tjtdd t| dd W d    d S 1 s'w   Y  d S )Nr   strrO   r>   r   r@   rA   )rP   objectrQ   r   r   r   r   rD   r   r   r   +test_error_with_prefix_contains_non_dummies   s
   
"rU   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   	"rV   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 )NrX   rW   r@   rA   r   r   r   rY   rZ   r[   r   r   r   &test_roundtrip_single_column_dataframe   s
   ra   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`   r[   r   r   r   test_roundtrip_with_prefixes   s
   re   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=   rX   rW   r   r   rY   rZ   r    r^   r]   r   r   r    test_no_prefix_string_cats_basic      rl   c                  C   rf   )N)TFFTFTFF)FFTFr=   rX   rW   rj   rk   r   r   r   ,test_no_prefix_string_cats_basic_bool_values   s   ro   c                  C   rf   )Nrg   rn   ri   r=   rX   rW   rj   rk   r   r   r   2test_no_prefix_string_cats_basic_mixed_bool_values   s   rp   c                  C   J   t g dg dg dg dd} t dg di}t| }t|| d S )Nr   r   r   r   rh   ri   r   r   r   r   )r      r9      rX   rj   rk   r   r   r   test_no_prefix_int_cats_basic      rv   c                  C   rq   )Nrr   rh   ri   rs   )g      ?g      9@      @g\(\@rX   rj   rk   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   FNrX   rT   Zdtyperj   rk   r   r   r   test_no_prefix_mixed_cats_basic  s   	r{   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%   NaNrX   rj   rk   r   r   r   :test_no_prefix_string_cats_contains_get_dummies_NaN_column!  rm   r~   zdefault_category, expectedr-   rX   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   sH   t g dg dd}t|| d}|r|d d|d< t|| d S )Nr
   r	   r#   r/   rX   zstring[pyarrow_numpy])r   r   rP   rY   rZ   )r0   r^   Zusing_infer_stringr    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 rb   rj   )r   r^   r]   r   r   r   test_with_prefix_basicU  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-   rc   r@   rA   rj   rk   r   r   r   0test_with_prefix_contains_get_dummies_NaN_column[  s   r   rI   )r$   r%   rI   )rI   r$   r-   rc   )r   r$   r-   )Fr$   r-   zdefault_category is a Falserx   )rd   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   rY   rZ   )r   r0   r^   r]   r   r   r   !test_with_prefix_default_categoryl  s   &r   c                  C   sZ   t g dg dg dd} | jd| _t| }t dttdddi}t|| d S )	Nrg   rh   ri   r=   string[python]rX   abcarz   r   columnsrP   r   r   listrY   rZ   dfr]   r^   r   r   r   test_ea_categories  s
   r   c                  C   s   t g dg dg dg dg dd} | jd| _t| dd}t ttd	dd
ttddd
d}|jd|_t|| d S )Nr   r	   r
   r   r   r   r@   rA   Zabarz   Zbacrc   r   r   r   r   r   test_ea_categories_with_sep  s"   	r   c                  C   sT   t g dg dg ddtdd} t| }t dtditdd}t|| d S )	Nrg   rh   ri   r=   abcd)indexrX   r   )r   r   r   rY   rZ   r   r   r   r   test_maintain_original_index  s   r   )0numpyr4   r   Zpandasr   r   r   r   Zpandas._testingZ_testingrY   Zfixturer   r   r!   r)   r2   r3   r6   r?   rC   rE   rH   rL   rN   rR   rU   rV   r_   ra   re   rl   ro   rp   rv   ry   r{   r~   markZparametrizeparamr   r   r   r   r   r   r   r   r   r   r   <module>   s    

	
			
#

#		