
    .iC                     l    d dl Zd dlZd dlmZ d dlmZ d dlmZ d dl	m
Z
 d dlZd dlmZ  G d d      Zy)    N)np_version_gt2)'construct_1d_object_array_from_listlike)is_extension_array_dtype)ExtensionDtypec                   j    e Zd ZdZd Zd Zd Zd Zd Zd Z	d Z
d	 Zd
 Zd Zd Zd Zd Zd Zd Zy)BaseInterfaceTestsz,Tests that the basic interface is satisfied.c                 $    t        |      dk(  sJ y N
   )lenselfdatas     c/var/www/app/trading-bot/venv/lib/python3.12/site-packages/pandas/tests/extension/base/interface.pytest_lenzBaseInterfaceTests.test_len   s    4yB    c                 &    |j                   dk(  sJ y r
   )sizer   s     r   	test_sizezBaseInterfaceTests.test_size   s    yyBr   c                 &    |j                   dk(  sJ y )N   )ndimr   s     r   	test_ndimzBaseInterfaceTests.test_ndim   s    yyA~~r   c                 $    |j                   du sJ y )NT)_can_hold_nar   s     r   test_can_hold_na_validz)BaseInterfaceTests.test_can_hold_na_valid   s      D(((r   c                    |j                   j                  }||j                             }|d   |v sJ |d   |v sJ ||v sJ ||vsJ t        j                  D ]  }||u st        |      t        |      k(  r||vsJ |rit        |t              rYt        |t        j                  j                  j                  t        j                  j                  j                  f      r||v rJ ||vrJ  y )Nr   )dtypena_valueisnatmNULL_OBJECTStype
isinstancefloatpdcorearraysBaseMaskedArrayArrowExtensionArray)r   r   data_missingusing_nan_is_nar   na_value_objs         r   test_containsz BaseInterfaceTests.test_contains"   s    ::&&TYY[L! Aw$A,... <'''t### OO 	8Lx'4+=h+Ot+++|U366:: $|333#<777'	8r   c                 t    t        j                  |      }|j                  d      }||j                  k(  sJ y )NF)index)r&   Seriesmemory_usagenbytes)r   r   sresults       r   test_memory_usagez$BaseInterfaceTests.test_memory_usageJ   s1    IIdOe,!!!r   c                 8   t        j                  |      }|d   |d   k(  sJ t        j                  |t              }t        j                  t        |      t              }|j                  dkD  rt        t        |            }t        j                  ||       y )Nr   r   r   )nparrayobjectlistr   r   r!   assert_numpy_array_equalr   r   r5   expecteds       r   test_array_interfacez'BaseInterfaceTests.test_array_interfaceO   ss    $ayDG###$f-88DJf5==1>tDzJH
##FH5r   c                 J   t        j                  |d      }t        j                  |d      }t        j                  ||      rJ t        sy 	 t        j                  |d      }t        j                  |d      }t        j                  ||      sJ y # t        $ r Y y w xY w)NT)copyF)r9   r:   may_share_memoryr   
ValueError)r   r   result_copy1result_copy2result_nocopy1result_nocopy2s         r   test_array_interface_copyz,BaseInterfaceTests.test_array_interface_copyZ   s    xx40xx40&&|\BBB	XXd7N
 $U3"">>BBB  		s   B 	B"!B"c                     t        |      sJ t        |j                        sJ t        t        j                  |            sJ t	        |j                  t
              sJ y N)r   r   r&   r1   r$   r   r   s     r   test_is_extension_array_dtypez0BaseInterfaceTests.test_is_extension_array_dtypem   sL    '---'

333'		$888$**n555r   c                 <    t        |d      rJ t        |d      rJ y )Nvalues_values)hasattrr   s     r   test_no_values_attributez+BaseInterfaceTests.test_no_values_attributes   s'     4***4++++r   c                     t        j                  |      }t        |j                  d      r<|j                  j                  d   j
                  |j                  j                  u sJ y y )Nblocksr   )r&   r1   rP   _mgrrS   
is_numericr   _is_numericr   r   r5   s      r   test_is_numeric_honoredz*BaseInterfaceTests.test_is_numeric_honoredy   sO    46;;);;%%a(33tzz7M7MMMM *r   c                     |j                         }t        |      rc|j                  d      sJ |j                         sJ |j                  d      rJ |j	                         rJ |j
                  j                  sJ y y )Nanyall)r    r   _reducerZ   r[   r   _is_boolean)r   r+   nas      r   test_isna_extension_arrayz,BaseInterfaceTests.test_isna_extension_array~   sq      #B'::e$$$668O8zz%(((vvx<88'''' (r   c                     |d   |d   k7  sJ |j                         }|j                  j                  r#t        j                  d|j                   d       |d   |d<   |d   |d   k7  sJ y )Nr   r   z!test_copy assumes mutability and  is immutable)rB   r   _is_immutablepytestskiprW   s      r   	test_copyzBaseInterfaceTests.test_copy   sm    Aw$q'!!!::##KK;DJJ<}UVq'QayF1I%%%r   c                 <   |d   |d   k7  sJ |j                         }||usJ t        |      t        |      k(  sJ |j                  j                  r#t	        j
                  d|j                   d       |d   |d<   |d   |d   k(  sJ |j                  d        y )Nr   r   z!test_view assumes mutability and ra   r8   )viewr#   r   rb   rc   rd   rW   s      r   	test_viewzBaseInterfaceTests.test_view   s     Aw$q'!!!T!!!F|tDz)))::##KK;DJJ<}UV1Iq	Aw$q'!!! 				r   c                 l    |j                         }t        |      }t        |t              sJ ||k(  sJ y rK   )tolistr<   r$   r>   s       r   test_tolistzBaseInterfaceTests.test_tolist   s4    :&$'''!!!r   N)__name__
__module____qualname____doc__r   r   r   r   r.   r6   r@   rI   rL   rQ   rX   r_   re   rh   rk    r   r   r   r      sS    6)&8P"
	6C&6,N
(	&$"r   r   )numpyr9   rc   pandas.compat.numpyr   pandas.core.dtypes.castr   pandas.core.dtypes.commonr   pandas.core.dtypes.dtypesr   pandasr&   pandas._testing_testingr!   r   rp   r   r   <module>ry      s)      . K > 4  ^" ^"r   