'Vfi7(ddlZddlZddlZddlZddlmZddlmZ ddl m Z m Z m Z ddlmZejdZejdZejdZejdZejd Zejd Zejd Zejd Zejd ZejdZejdZejej dGddZ dS)N)option_context) DataFrameIndexSeries) expressionscttjddt ddS)Ni'ABCDfloat64columnsdtypernprandom default_rngstandard_normallistLc:\PYTHON\DbComparer\venv\Lib\site-packages\pandas/tests/test_expressions.py_framersF  a  00<<V    rcttjddt ddS)Nr )dr r r rrrrr_frame2rsF  a  00::V    rct|d|dd|dd|dddS NABfloat32Cint64Dint32)r r!r#r%rcopyastypers r_mixedr+#sp !!####I..##G,,##G,,     rct|d|dd|dd|dddSrr'rs r_mixed2r./sp ""$$$$Y//$$W--$$W--     rcttjddddt ddS) Nr rr sizer r$rrrrrintegersrrrr_integerr5;sM  a  ))!Sz)BBV    rc|tjdddtj|zS)Nr rr1)rrrr4shape)r5s r_integer_integersr8Ds> bi++A..77128HCUCU7VV VVrcttjddddt ddS) Nr r0r)er r1r r$rr3rrr _integer2r;JsM  a  ))!Sx)@@V    rc@|djSNr valuesr(r*s r_arrayr@S #;  " " $ $$rc@|djSr=r>r-s r_array2rCX 3<  # # % %%rc@|djSNr%r>)r+s r _array_mixedrG]rArc@|djSrFr>)r.s r _array_mixed2rIbrDrznot using numexpr)reasonc BeZdZededefdZej dgdej dddgej dgd d Z ej dgdej dddgd Z d Z ej d ej dgdej dddgdZej dddgdZej dddgej dgddZej dgddZej dgddZej degdgdggd eddgddggd!d"g fegd#gd$gd%ggd eddgddgddggd!d"g fgd&Zej dd ej d'd(d)Zej d*gd+ej d,eeegej d-d.d/gd0Zd1S)2TestExpressionsflexopnamec|r fd}|_ntt}tdd5|||}dddn #1swxYwYt j|||}||fS)Nc6t||S)N)getattr)xyrNs rz)TestExpressions.call_op..ls0ga0033rcompute.use_numexprF)__name__rQoperatorrexprget_test_result)dfotherrMrNopexpectedresults ` rcall_opzTestExpressions.call_opis  +3333B BKK6**B 15 9 9 % %r"e}}H % % % % % % % % % % % % % % % Bxs AAAfixture)r5r;r8rrr+r.TFarith)addsubmulmodtruedivfloordivc||}|5}|tdd|||||\}} |dkr%t d| jjDsJtj | |tt|j D]h} ||j dd| f|j dd| f||\}} |dkr| jjdksJtj | |i ddddS#1swxYwYdS)N _MIN_ELEMENTSrrfc3,K|]}|jdkVdS)fN)kind).0rRs r z6TestExpressions.test_run_arithmetic..s(IIQ16S=IIIIIIrrk)getfixturevaluecontextsetattrrXr_alldtypesr?tm assert_equalrangelenrilocrrl) selfrequestr`rMra monkeypatchrZmr^r]is rtest_run_arithmeticz#TestExpressions.test_run_arithmeticys" $ $W - -  " " 2a IIdOQ / / /#||BD%@@ FH !!II(/2HIIIIIIII OHf - - -3rz??++ 2 2#'<<GAAAqDM27111a4=$$$ I%%#>.#5555&1111  2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2sDD::D>D>c||}|j}tdd5|dz}dddn #1swxYwY|5} | t ddt jd|||||\} } t j } | s Jdtj | | tt|jD]=} |jdd| fdz}||jdd| f||d > ddddS#1swxYwYdS) z tests solely that the result is the same whether or not numexpr is enabled. Need to test whether the function does the correct thing elsewhere. rUFr0NrirTz Did not use numexpr as expected.rb)rorVrr(rprqrX set_test_moder_rYrtrurvrwrrx)ryrzr`rM comparison_opr{rZrar[r|r^r] used_numexprr} binary_comps rtest_run_binaryzTestExpressions.test_run_binarys& $ $W - -& 15 9 9 " "GGIIME " " " " " " " " " " " " " " " " " Fa IIdOQ / / /  t $ $ $#||BtUCC FH/11L C C!C C C< OHf - - -3rz??++ F F#jA.2  RWQQQT]KuEEEE F F F F F F F F F F F F F F F F F F Fs$AAA0CEE!$E!ctjdd}tjdd}t jt jd||d}|rJt jt jd||d}|rJt jt jd||d}|sJdS)Nr iABrevaluate+)rrrrrX_can_use_numexprrWrb)ryarrayarray2r^s r test_invalidzTestExpressions.test_invalids %%a((88CC&&q))99#>>&x|T5%TTz&x|S&&*UUz&x|S%TT v rz2ignore:invalid value encountered in:RuntimeWarningz opname,op_str))rbr)rc-)rd*)rf/)pow**zleft_fix,right_fix)r@rC)rGrIcR||}||}d}tdd5|||||dddn #1swxYwYtjd|||||tj|||||dS)Nc&|dkrtj|}tt|}t j|||d}t j|||d}t j||t j||||d}|rJdS)NrT use_numexprFr) rabsrQrWrXrrtassert_numpy_array_equalr)leftrightrNop_strr\r^r]s rtestitz/TestExpressions.test_binary_ops..testitsvd||6**B]2tTtDDDF}RtGGGH  ' 9 9 9*2vueZPPF  :  rrUFr0rorrXset_numexpr_threads) ryrzrNrleft_fix right_fixrrrs rtest_binary_opszTestExpressions.test_binary_opss &&x00'' 22   15 9 9 0 0 F4 / / / 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  ###tUFF+++  """tUFF+++++sAA AcH||||fd}tdd5|dddn #1swxYwYtjd|tj|dS)Ncdz}dz}}tj||d}tj||d}tj||tj|||d}|rJdS)Nr0TrFr)rXrrtrr)f12f22r\r^r]rrrs rrz3TestExpressions.test_comparison_ops..testits(C!)CB]2tSdCCCF}RsFFFH  ' 9 9 9*2r5#zJJF  :  rrUFr0r)ryrzrrrrrrs ` @@rtest_comparison_opsz#TestExpressions.test_comparison_opss&&x00'' 22       15 9 9   FHHH                 ###  """s AA #A cond)rrr+r.c||fd}tdd5|dddn #1swxYwYtjd|tj|dS)Nc2tjjtj}|t j|jjdz}tj|jjdz}tj ||dS)N)rr0) remptyr7bool_fillrXwherer?rtr)cr^r]rrZs rrz*TestExpressions.test_where..testitsy222A FF4LLLZ29bi!m<Y**1--44R883>    E6DDD Hf % %)C.. ].g > > >   Ab"III               ].g > > >   AbdBDMMM               ].g > > >   AbdDMMM               ].g > > >   AeRTNNN               ].g > > >   AeRLLL               ].g > > >   Ab$KKK                  sl CC"%C"D''D+.D+ E++E/2E/F//F36F3 G..G25G2 H..H25H2))rrb)rrd)rrcc`d}ttjd|dktjd|dkd}dddd}d d d d }t t |}t t |||}|d krdSt jdd5t j5|||} |||} t j | | dddn #1swxYwYt j5||j |j } ||j |j } t j | | dddn #1swxYwYt j5||j d} ||j d} t j | | dddn #1swxYwYt j5|d|j } |d|j } t j | | dddn #1swxYwYt j5|d|} |d|} t j | | dddn #1swxYwYt j5||d} ||d} t j | | dddn #1swxYwYddddS#1swxYwYdS)Nrr rr|&^)rrror_and_xor)rrrrT) min_elementsF) rrrrrQrWrtrassert_produces_warningassert_frame_equalrrassert_series_equal) ryrrNnrZsubs sub_funcsrkferes r test_bool_ops_warn_on_arithmeticz0TestExpressions.test_bool_ops_warn_on_arithmeticDs  Y**1--44Q77#=Y**1--44Q77#=    s--f599 Hf % % Xyf6 7 7 S== F ^Dq 1 1 1 , ,+-- , ,Ab"IIBr2JJ%a+++ , , , , , , , , , , , , , , , +-- - -AbdBDMMBrtRTNN&q!,,, - - - - - - - - - - - - - - - +-- - -AbdDMMBrtTNN&q!,,, - - - - - - - - - - - - - - - +-- - -AeRTNNBubdOO&q!,,, - - - - - - - - - - - - - - - +-- , ,AeRLLBubMM%a+++ , , , , , , , , , , , , , , , +-- , ,Ab$KKBr4LL%a+++ , , , , , , , , , , , , , , ,5 , , , , , , , , , , , , , , , , , ,sL#1.D+ L#+D/ /L#2D/ 3L# AF L#F L#F L#58G9- L#9G= =L#G= L#8I L#I L#"I #L#9.J3' L#3J7 7L#:J7 ;L#.L ? L# L L#L L##L'*L'ztest_input,expected)rr0r aa)rrrr)rrr)rr r)rr r r)rr0r0bbc|jddddgf|jddddgf}tj||dS)Nrr)locnertr)ry test_inputr]r^s rtest_bool_ops_column_name_dtypez/TestExpressions.test_bool_ops_column_name_dtypeysX.C> 1255jnQQQgEV6WXX fh/////raxis)rr0c|}|dkr|jdddf}n|jdddf}|5}|tddt ||}t dd5|||} dddn #1swxYwY|||} t j| | ddddS#1swxYwYdS)Nr0rrirUF)r)rxrprqrXrQrrtr) ryrrarr{rZr[r|op_funcr]r^s rtest_frame_series_axisz&TestExpressions.test_frame_series_axissu 199GAqqqDMEEGAAAqDME  " " 4a IIdOQ / / /b%((G 5u== 5 5"75t444 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5WU...F  !(F 3 3 3 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4s6=C=B CB CB %CCCr\)__mod____rmod__ __floordiv__ __rfloordiv__boxscalarrc|5}|tddtjdd}||}t ||}||} t dd5||} dddn #1swxYwYtj| | t|D]g\} } |tkr| j | df} n| | } t t| ||} | | ksJX#t$rYdwxYw ddddS#1swxYwYdS)Nriri2rUF)rprqrXrarangerQrrtru enumeraterrxintZeroDivisionError)ryr\rrr{r|dataobjmethodr^r]r}elem scalar_results r,test_python_semantics_with_numexpr_installedz> * * * * * * * * * * * * * * * OFH - - -%T?? 5 54)##$*K1$5MM$*1IM55ws4yy"55f==H)H44444)D 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5s[A(D:= B D:B D:B AD:-&D D: D)&D:(D))D::D>D>N)rV __module__ __qualname__ staticmethodboolstrr_rmark parametrizer~rrfilterwarningsrrrrrrrrrrrrrrrLrLgs    s    \   [      [VdE]33 [DDD2243   2$ [      [VdE]33FF43  F2  [ TUU [SSS [46WX,, VU,4 [46WX2 [VdE]33 [Y(R(R(RSSTS43$ [NNN< [CCC0,0,0,d [ $__ooo6@X@X@X E5>E5>:S'NSSS   $__oooG444 U^eU^eU^D 'N  *00+*0  [D [VV,,44-,4( [     [UY$>?? [XAw//550/@?555rrL)!rWrnumpyrrpandasrpandas._testing_testingrtpandas.core.apirrrpandas.core.computationrrXr`rrr+r.r5r8r;r@rCrGrIrskipif USE_NUMEXPRrLrrrrs>  !!!!!! 877777WWW %%%&&&%%%&&&((1DEEj5j5j5j5j5j5j5FEj5j5j5r