B @`}@sbdZddlZddlZddlmZmZmZmZm Z m Z ddl m Z ddZddZGdd d ZdS) z common utilities N) DataFrame Float64Index MultiIndexSeries UInt64Index date_rangecsfddt|DS)Ncsg|]}|qSr).0i)prefixr@/tmp/pip-unpacked-wheel-q9tj5l6a/pandas/tests/indexing/common.py sz_mklbl..)range)r nr)r r _mklbl srcCs tdg|j}|||<t|S)N)slicendimtuple)objkeyaxisaxesrrr _axifysrc @s^eZdZdZddhZdddddd d d d h Zd dZdddZdddZdddZ dddZ dS)Basez# indexing comprehensive base class ZseriesframeintsZuintslabelsmixedtsZfloatsemptyZts_revZmulticCsttjdtdddd|_ttjddtdddtdddd|_ttjdt tdddd|_ ttjddt t dddt t dddd|_ ttjdt t dddd|_ttjddt t dddt t dddd|_td dgddggtd d gd dggtd dgddggg}ttjd|dd|_ttjdd|d|d d|_ttjdtdd|_ttjddtdtdd|_ttjdddddgd|_ttjddddddgd|_ttjdtdddd|_ttjddtdddd|_tdddjdd}ttjd|d|_ttjdd|d|_t|_tt d|_!xJ|j"D]@}i}x(|j#D]}t$||d|||<qWt%|||qWdS)Nr)index )r#columns ZabcdABCDnullZ20130101)ZperiodsF)Z ascending)Zdtype_)&rnprandomZrandZarangeZ series_intsrZrandnZ frame_intsrZ series_uintsrZ frame_uintsrZ series_floatsZ frame_floatsrZ from_productZ series_multiZ frame_multilistZ series_labelsZ frame_labelsZ series_mixedZ frame_mixedrZ series_tsZframe_tsZ sort_valuesZ series_ts_revZ frame_ts_revZ frame_emptyobjectZ series_empty_kinds_typsgetattrsetattr)selfmethodZm_idcesZ dates_revkinddtyprrr setup_method%sP ,"         zBase.setup_methodFcCs"|j}|rdd|D}tj|S)zv generate the indices if values is True , use the axis values is False, use the range css|]}ttt|VqdS)N)r3rlen)r axrrr osz(Base.generate_indices..)r itertoolsproduct)r9fvaluesrrrr generate_indicesgszBase.generate_indicescCs:|r|j|S|dkr |j|S|dks,t|j|SdS)z% return the value for the location i ZiatZatN)rEZilocAssertionErrorloc)r9namerDr rErrr get_valuess    zBase.get_valuec Csx|dkr dS|j}tj|}xV|D]N}t|||}|rD|j|}n |}xt|D]} || }qRWt||q"WdS)N) rrBrCr7rEreversed __getitem__tmZassert_almost_equal) r9rDfuncrErZindiciesr resultexpectedarrr check_valuess   zBase.check_valuesNc sfdd}|dkr|j}|dkr.ddg}n|dks:t|g}xb|jD]X}t||}xH|D]@} x:|D]2} | |jksxt|| } | | jkrf|| | |dqfWq\WqHWdS)Nc sft|||}yt||Wn@tttfk r`}zdk rNt|rNdSWdd}~XYnXdS)z compare equal for these 2 keys N)rr7rL IndexError TypeErrorKeyError isinstance)rrrZaxifiedZdetail)failsr:rr _eqs  zBase.check_result.._eqrr')rr')rrr)r6rGr5r7r) r9r:rZtypsrrWrXr;r<r@r=rr)rWr:r check_results       zBase.check_result)F)F)F)NNN) __name__ __module__ __qualname____doc__r5r6r>rFrJrRrYrrrr rs B r)r]rBZnumpyr1ZpandasrrrrrrZpandas._testingZ_testingrMrrrrrrr s