
    Owg                     l    d Z ddlZddlmZmZmZmZmZm	Z	m
Z
 ddlmZ  G d d      Zd Zd Zd Zd	 Zy)
zC
Tests for DataFrame.mask; tests DataFrame.where as a side-effect.
    N)NA	DataFrameFloat64DtypeSeriesStringDtype	Timedeltaisnac                   0    e Zd Zd Zd Zd Zd Zd Zd Zy)TestDataFrameMaskc                    t        t        j                  j                  d      j	                  d            }|dkD  }|j                  |t        j                        }t        j                  ||j                  |dk               t        j                  ||j                  |              t        t        j                  j                  d      j	                  d            }|j                  ||      }t        j                  ||j                  |dk  |             t        j                  ||j                  | |             y )N         r   )
r   nprandomdefault_rngstandard_normalwherenantmassert_frame_equalmask)selfdfcondrsothers        \/var/www/horilla/myenv/lib/python3.12/site-packages/pandas/tests/frame/indexing/test_mask.py	test_maskzTestDataFrameMask.test_mask   s    ryy,,Q/??GHAvXXdBFF#
b"''"'"23
b"''4%.1"))//2BB6JKXXdE"
b"''"'5"9:
b"''4%"78    c                     t        ddg      }|j                  dgdgg      }t        t        j                  dg      }t	        j
                  ||       y N   r   TFr   r   r   r   r   r   )r   r   resexps       r   
test_mask2zTestDataFrameMask.test_mask2!   sI    1vggvw'($
c3'r!   c                 P   t        t        j                  j                  d      j	                  d            }|dkD  }|j                         }|j                  |d      }|J t        j                  ||j                  |             t        j                  ||j                  |              |j                         }|j                  || d      }|J t        j                  ||j                  ||              t        j                  ||j                  | |              y )Nr   r   r   Tinplace)
r   r   r   r   r   copyr   r   r   r   )r   r   r   rdfreturn_values        r   test_mask_inplacez#TestDataFrameMask.test_mask_inplace)   s    ryy,,Q/??GHAvggiyyty4###
c288D>2
c277D5>2ggiyysDy9###
c288D2##67
c277D52##67r!   c                     t        ddgg      }|j                  t        ddgg            }t        t        j                  dgg      }t	        j
                  ||       y r#   r%   )r   r   r&   expecs       r   test_mask_edge_case_1xN_framez/TestDataFrameMask.test_mask_edge_case_1xN_frame;   sO    Ax ggi$01BFFA;-(
c5)r!   c                    t        g dg dg dg      }|j                  d d       }t        g dg dg dg      }t        j                  ||       t        j                  ||j                  |dkD  |d	z                |j                  d
 d       }t        g dg dg dg      }t        j                  ||       t        j                  ||j                  |dz  dk(  d             |dz   j                  d d       }t        g dg dg dg      }t        j                  ||       t        j                  ||dz   j                  |dz   dkD  |dz   dz                y )N)r$   r   r   )   r      )      	   c                     | dkD  S )Nr4    xs    r   <lambda>z6TestDataFrameMask.test_mask_callable.<locals>.<lambda>E   s
    1q5 r!   c                     | dz   S )Nr$   r:   r;   s    r   r=   z6TestDataFrameMask.test_mask_callable.<locals>.<lambda>E   s
    AE r!   )r4   r5   r6   )r7   r8   
   r4   r$   c                 &    | dz  dk(  j                   S )Nr   r   )valuesr;   s    r   r=   z6TestDataFrameMask.test_mask_callable.<locals>.<lambda>K   s    AEQJ#6#6 r!   c                      y)Nc   r:   r;   s    r   r=   z6TestDataFrameMask.test_mask_callable.<locals>.<lambda>K   s    r!   )r$   rC   r   )rC   r   rC   )r6   rC   r8   r   r   rC   c                     | dkD  S )Nr7   r:   r;   s    r   r=   z6TestDataFrameMask.test_mask_callable.<locals>.<lambda>Q   s
    Q r!   c                     | dz   S )Nr?   r:   r;   s    r   r=   z6TestDataFrameMask.test_mask_callable.<locals>.<lambda>Q   s
    !b& r!   )r   r4   r   )r5   r6   r7   )         r7   r?   )r   r   r   r   )r   r   resultr'   s       r   test_mask_callablez$TestDataFrameMask.test_mask_callableB   s%   	9i89/:Iz:;
fc*
fbggb1fb1f&=> 6E[*=>
fc*
fbggb1fk2&>? q&0@AI|<=
fc*
frAvmmR!VqL26R-&PQr!   c                 R   t        t        j                  j                  d      j	                  d            }|j                  |dkD        }|dkD  }t        |      }|j                  t              j                  |      }|j                  |      }t        j                  ||       y )Nr   )d   2   )datar   )r   r   r   r   r   r   r	   astypeobjectr   r   r   )r   r   boolsr   expectedrI   s         r   test_mask_dtype_bool_conversionz1TestDataFrameMask.test_mask_dtype_bool_conversionV   s    BII11!4DDYOPXXb1fQBx<<',,T2D!
fh/r!   N)	__name__
__module____qualname__r    r(   r/   r2   rJ   rS   r:   r!   r   r   r      s!    9(8$*R(0r!   r   c                 d   t        ddddt        gig dt                     }t        dddgid	d
gt                     }t        dt        ddt        gig dt                     }| t        u r|d   }|d   }|d   }t        g d      }|j	                  ||      }t        j                  ||       y )NAfoobarbaz)id1id2id3id4)indexdtypethisthatr]   r^   )FTTF)r   r   r   r   r   r   assert_equal)frame_or_seriesobjfiltered_objrR   
filter_serrI   s         r   test_mask_stringdtyperi   a   s    
	ueUB'(*mC
 	vvu~[]L 	r662&'*mH
 & #h#C(C=23JXXj,/FOOFH%r!   c            	      *   t        t        d      D  cg c]  } t        | d       c}       }t        t        j                  dt        j
                  d            }t        j                  |j                  |j                               |       t        t        j
                  t        j
                  t        j
                  t        d      t        d      g      }t        j                  |j                  |t        dd      kD        |       y c c} w )	Nr   d)unitztimedelta64[ns]ra   z3 dayz4 dayr   )r   ranger   r   fullr   r   r   r   notnar   )ir   rR   s      r   test_mask_where_dtype_timedeltarr   {   s    	E!H=qIac*=	>BBFF2CDEH"''"((*-x8	7!3Yw5GHH "((2	!#(>#>?J >s   Dc                      t        g dt                     } | j                          }t        g d      }t        g d| j                        }| j	                  ||      }t        j                  ||       y )N)              ?       @g      @rm   )TFTF)ru   rt   ru   rt   )r   r   r	   ra   r   r   assert_series_equal)serr   r   exceptedrI   s        r   test_mask_return_dtyperz      sZ    
%\^
<CHHJ;D-.E*#))<HXXdE"F68,r!   c                      t        ddgddgd      } t        ddgddgd      }| j                  |d       t        t        j                  d	gdt        j                  gd      }t	        j
                  | |       y )
Nru   rv   r<   y)abTFr*   r   r%   )r   r   rR   s      r   test_mask_inplace_no_otherr      so    	#s3*5	6BD%=t}=>DGGD$G{#rvv?@H"h'r!   )__doc__numpyr   pandasr   r   r   r   r   r   r	   pandas._testing_testingr   r   ri   rr   rz   r   r:   r!   r   <module>r      sE       K0 K0\&4
K-(r!   