
    .iM                     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        c/var/www/app/trading-bot/venv/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                 X   t        t        j                  j                  d      j	                  d            }|dkD  }|j                         }|j                  |d      }||u sJ t        j                  ||j                  |             t        j                  ||j                  |              |j                         }|j                  || d      }||u s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results        r   test_mask_inplacez#TestDataFrameMask.test_mask_inplace)   s    ryy,,Q/??GHAvggi4.}}
c288D>2
c277D5>2ggi4"d3}}
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   r.   r'   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   expectedr.   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   rI   rR   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dddt        gig dt                     }| t        u r|d   }|d   }|d   }t        g d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   r   assert_equal)frame_or_seriesobjfiltered_objrQ   
filter_serr.   s         r   test_mask_stringdtyperh   a   s    
	ueUB'(*mC
 	vvu~[]L 	uffb)**mH
 & #h#C(C="*J XXj,/FOOFH%r!   c            	      2   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d      }|j                  |t        d	d      kD        }t        j                  ||       y c c} w )
Nr   D)unitztimedelta64[s]r`   z3 dayz4 dayzm8[s]r   )r   ranger   r   fullr   r   r   r   notnar   )ir   rQ   r.   s       r   test_mask_where_dtype_timedeltarq   ~   s    	E!H=qIac*=	>BBFF2BCDH"''"((*-x8	7!3Yw5GHH XXb9QS112F&(+ >s   Dc                      t        g dt                     } | j                          }t        g d      }t        g d| j                        }| j	                  ||      }t        j                  ||       y )N)              ?       @g      @rl   )TFTF)rt   rs   rt   rs   )r   r   r	   r`   r   r   assert_series_equal)serr   r   exceptedr.   s        r   test_mask_return_dtypery      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 )
Nrt   ru   r<   y)abTFr*   r   r%   )r   r   rQ   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   rh   rq   ry   r~   r:   r!   r   <module>r      sD       K0 K0\&:,-(r!   