gL iotddlZddlZddlZddlmZddlmZddlm Z ddl m Z ddl Z ddlmZGddZy)N)np_version_gt2)'construct_1d_object_array_from_listlike)is_extension_array_dtype)ExtensionDtypecjeZdZdZdZdZdZdZdZdZ dZ d Z d Z d Z d Zd ZdZdZdZy)BaseInterfaceTestsz,Tests that the basic interface is satisfied.c$t|dk(sJyNd)lenselfdatas k/mnt/ssd/data/python-lab/Trading/venv/lib/python3.12/site-packages/pandas/tests/extension/base/interface.pytest_lenzBaseInterfaceTests.test_lens4yCc&|jdk(sJyr )sizer s r test_sizezBaseInterfaceTests.test_sizesyyCrc&|jdk(sJy)N)ndimr s r test_ndimzBaseInterfaceTests.test_ndimsyyA~~rc$|jdusJy)NT) _can_hold_nar s rtest_can_hold_na_validz)BaseInterfaceTests.test_can_hold_na_valid s  D(((rc|jj}||j}|d|vsJ|d|vsJ||vsJ||vsJtjD]*}||ust |t |k(r||vsJ||vr*Jy)Nr)dtypena_valueisnatm NULL_OBJECTStype)rr data_missingr na_value_objs r test_containsz BaseInterfaceTests.test_contains$s ::&&TYY[L!Aw$A,...<'''t###OO 4Lx'4 +=h+Ot+ ++|3 33  4rcttj|}|jd}||jk(sJy)NF)index)pdSeries memory_usagenbytes)rrsresults rtest_memory_usagez$BaseInterfaceTests.test_memory_usage>s1 IIdOe,!!!rc8tj|}|d|dk(sJtj|t}tjt|t}|jdkDrt t|}t j||y)Nrrr)nparrayobjectlistrrr!assert_numpy_array_equalrrr.expecteds rtest_array_interfacez'BaseInterfaceTests.test_array_interfaceCss$ayDG###$f-88DJf5 ==1 >tDzJH ##FH5rctj|d}tj|d}tj||rJtsyd}d}t j d5}t j dtj|d}t|dksJt|rd}|t|djvsJdddt j d5}t j dtj|d}t|dksJt|rd}|t|djvsJddd|stjsJyy#1swYxYw#1swY1xYw) NT)copyFzGStarting with NumPy 2.0, the behavior of the 'copy' keyword has changed)recordalwaysrr) r2r3may_share_memoryrwarningscatch_warnings simplefilterr strmessage) rr result_copy1 result_copy2warning_raisedmsgwresult_nocopy1result_nocopy2s rtest_array_interface_copyz,BaseInterfaceTests.test_array_interface_copyNs^xx40 xx40 &&|\BBB W  $ $D 1 0Q  ! !( +XXd7Nq6Q; ;1v!%c!A$,,////  0 $ $D 1 0Q  ! !( +XXd7Nq6Q; ;1v!%c!A$,,////  0&&~~F FF! 0 0 0 0s(A&E6,A&F6E?F ct|sJt|jsJttj|sJt |jt sJyN)rrr)r* isinstancerr s rtest_is_extension_array_dtypez0BaseInterfaceTests.test_is_extension_array_dtypemsL'---' 333' $888$**n555rc<t|drJt|drJy)Nvalues_values)hasattrr s rtest_no_values_attributez+BaseInterfaceTests.test_no_values_attributess'4***4++++rctj|}t|jdr<|jjdj |j jusJyy)Nblocksr)r)r*rS_mgrrV is_numericr _is_numericrrr.s rtest_is_numeric_honoredz*BaseInterfaceTests.test_is_numeric_honoredysO4 6;; );;%%a(33tzz7M7MM MM *rc|j}t|rc|jdsJ|jsJ|jdrJ|j rJ|j j sJyy)Nanyall)r r_reducer]r^r _is_boolean)rr$nas rtest_isna_extension_arrayz,BaseInterfaceTests.test_isna_extension_array~sq    #B '::e$ $$668O8zz%( ((vvx <88'' '' (rc|d|dk7sJ|j}|jjr#tjd|jd|d|d<|d|dk7sJy)Nrrz!test_copy assumes mutability and is immutable)r;r _is_immutablepytestskiprZs r test_copyzBaseInterfaceTests.test_copysmAw$q'!!! :: # # KK;DJJ<}U Vq'QayF1I%%%rc<|d|dk7sJ|j}||usJt|t|k(sJ|jjr#t j d|jd|d|d<|d|dk(sJ|jdy)Nrrz!test_view assumes mutability and rdr1)viewr#rrerfrgrZs r test_viewzBaseInterfaceTests.test_viewsAw$q'!!!T!!!F|tDz))) :: # # KK;DJJ<}U V1Iq Aw$q'!!!  rcl|j}t|}t|tsJ||k(sJyrM)tolistr5rNr7s r test_tolistzBaseInterfaceTests.test_tolists4:&$'''!!!rN)__name__ __module__ __qualname____doc__rrrrr&r/r9rKrOrTr[rbrhrkrnrrrrsR6   )44" 6G>6 , N ( &$"rr)r?numpyr2rfpandas.compat.numpyrpandas.core.dtypes.castrpandas.core.dtypes.commonrpandas.core.dtypes.dtypesrpandasr)pandas._testing_testingr!rrsrrr|s, .K>4\"\"r