
    d02                        d dl Z d dlZd dlZd dlZd dlZd dlmZ d dl	m
Z
 d dlmZmZmZ ej        d             Zej        d             Zej        d             Zej        d             Zej        d             Zej        d	             Zej        d
             Zej        d             Z G d d          Z G d dee
j                  Z G d dee
j                  Z G d dee
j                  Z G d dee
j                  Z  G d dee
j!                  Z" G d dee
j#                  Z$ G d dee
j%                  Z&ej'        (                    d          Z) G d de
j*                  Z+ G d  d!ee
j,                  Z- G d" d#ee
j.                  Z/ G d$ d%ee
j0                  Z1 G d& d'ee
j2                  Z3 G d( d)ee
j4                  Z5 G d* d+ee
j6                  Z7dS ),    N)base)	JSONArray	JSONDtype	make_datac                      t                      S N)r        a/var/www/html/t/fyr/venv311/lib/python3.11/site-packages/pandas/tests/extension/json/test_json.pydtyper      s    ;;r
   c                     t                      } t          | d                   t          | d                   k    r:t                      } t          | d                   t          | d                   k    :t          |           S )z*Length-100 PeriodArray for semantics test.r      )r   lenr   )datas    r   r   r      sf     ;;D d1g,,#d1g,,
&
&{{ d1g,,#d1g,,
&
& T??r
   c                  (    t          i ddig          S )zLength 2 array with [NA, Valid]a
   r   r	   r
   r   data_missingr   '   s     b3)_%%%r
   c                  4    t          ddiddidddg          S )Nbr   c         r   r   r   r	   r
   r   data_for_sortingr   -   s'    sAha*:*:;<<<r
   c                  .    t          ddii ddig          S )Nr   r   r   r   r   r	   r
   r   data_missing_for_sortingr   2   s    sAhS!H-...r
   c                     | j         S r   )na_value)r   s    r   r!   r!   7   s
    >r
   c                      t           j        S r   )operatoreqr	   r
   r   na_cmpr%   <   s
    ;r
   c                  L    t          ddiddii i ddddddddiddig          S )Nr   r   r   r   r   r   r   r	   r
   r   data_for_groupingr'   A   sQ    !H!H!!!H!H		
  r
   c                   :    e Zd Zed             Zed             ZdS )BaseJSONc                    |j         j        dk    r|j         |j         k    sJ t          j        t	          |j                            t                              |j        |j                  }t          j        t	          |j                            t                              |j        |j                  }t          j
        ||g|R i | d S )Njson)indexname)r   r-   pdSeriesr   valuesastypeobjectr,   tmassert_series_equal)clsleftrightargskwargss        r   r4   zBaseJSON.assert_series_equalV   s    :?f$$:,,,,9$+,,V4455TZdi  D I%,--f5566kZ  E
 	tU<T<<<V<<<<<r
   c                    |                     dd          }t          j        |j        |j        |                     dd          |                     dd          |                     dd          |                     d	d          | d
           |j        dk    j        }|D ] } | j        ||         ||         g|R i | !|                    |          }|                    |          }t          j        ||g|R i | d S )Nobj	DataFramecheck_column_typeequivcheck_namesTcheck_exactFcheck_categoricalz.columns)exactr?   r@   rA   r;   r+   )columns)	getr3   assert_index_equalrC   dtypesr,   r4   dropassert_frame_equal)r5   r6   r7   r8   r9   obj_typejsonscols           r   rH   zBaseJSON.assert_frame_equald   s,   ::e[11
LM**0'::

=$77

=%88$jj)<dCC%%%	
 	
 	
 	
 &- 	L 	LC#C#DIuSzKDKKKFKKKKyyy''

5
))
dE;D;;;F;;;;;r
   N)__name__
__module____qualname__classmethodr4   rH   r	   r
   r   r)   r)   Q   sJ        
 = = [= < < [< < <r
   r)   c                       e Zd ZdS )	TestDtypeNrL   rM   rN   r	   r
   r   rQ   rQ   {           Dr
   rQ   c                   f     e Zd Zd Zej                            d           fd            Z xZS )TestInterfacec                 .   t          t          j        ddi          t          j        ddi          t          j        ddi          g          }t          j        |          }|                     ||           |                     |                                |                                           t          j        |                    g d                    }d}t          j
        t          |	          5  |                     ||           d d d            n# 1 swxY w Y   t          j
        t          |	          5  |                     |                                |                                           d d d            d S # 1 swxY w Y   d S )
Nr   r   r   r   r   r   )r   r   r   zSeries are differentmatch)r   collectionsUserDictr.   r/   r4   rH   to_frametakepytestraisesAssertionError)selfr   r   r   msgs        r   test_custom_assertsz!TestInterface.test_custom_asserts   s    $c1X..$c1X..$c1X..
 
 IdOO  A&&&

ajjll;;;Idii			**++%]>555 	+ 	+$$Q***	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ ]>555 	@ 	@##AJJLL!**,,???	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@s$   9DD #D ;F

FFz:comparison method not implemented for JSONArray (GH-37867)reasonc                 J    t                                          |           d S r   )supertest_containsr`   r   	__class__s     r   rg   zTestInterface.test_contains   s#    
 	d#####r
   )	rL   rM   rN   rb   r]   markxfailrg   __classcell__ri   s   @r   rU   rU      ss        @ @ @, [K   $ $ $ $ $ $ $ $ $r
   rU   c                   D    e Zd Zej                            d           fd            Zej                            d           fd            Zej                            d           fd            Zej                            d           fd            Z	 xZ
S )	TestConstructorsz&not implemented constructor from dtyperc   c                 J    t                                          |           d S r   )rf   test_from_dtyperh   s     r   rq   z TestConstructors.test_from_dtype   s#     	%%%%%r
   zRecursionError, GH-33900c                     t          j                    }	 t          j        d           t                                          ||           t          j        |           d S # t          j        |           w xY wNd   )sysgetrecursionlimitsetrecursionlimitrf   *test_series_constructor_no_data_with_indexr`   r   r!   	rec_limitri   s       r   rx   z;TestConstructors.test_series_constructor_no_data_with_index   sq     )++		-!#&&&GG>>uhOOO!),,,,,C!),,,,   6A" "A8c                     t          j                    }	 t          j        d           t                                          ||           t          j        |           d S # t          j        |           w xY wrs   )ru   rv   rw   rf   ,test_series_constructor_scalar_na_with_indexry   s       r   r}   z=TestConstructors.test_series_constructor_scalar_na_with_index   sq     )++		-!#&&&GG@@QQQ!),,,,,C!),,,,r{   zcollection as scalar, GH-33901c                     t          j                    }	 t          j        d           t                                          ||           t          j        |           d S # t          j        |           w xY wrs   )ru   rv   rw   rf   )test_series_constructor_scalar_with_index)r`   r   r   rz   ri   s       r   r   z:TestConstructors.test_series_constructor_scalar_with_index   sq     )++		-!#&&&GG==dEJJJ!),,,,,C!),,,,r{   )rL   rM   rN   r]   rj   rk   rq   rx   r}   r   rl   rm   s   @r   ro   ro      s       [FGG& & & & HG& [899- - - - :9- [899- - - - :9- [>??- - - - @?- - - - -r
   ro   c                        e Zd Zej                            d           fd            Zej                            d           fd            Z xZS )TestReshapingzDifferent definitions of NArc   c                 H    t                                                       dS )z
        The test does .astype(object).stack(). If we happen to have
        any missing values in `data`, then we'll end up with different
        rows since we consider `{}` NA, but `.astype(object)` doesn't.
        N)rf   
test_stackr`   ri   s    r   r   zTestReshaping.test_stack   s!     	r
   zdict for NAc                 H    t                                          ||          S r   )rf   test_unstack)r`   r   r,   ri   s      r   r   zTestReshaping.test_unstack   s     ww##D%000r
   )	rL   rM   rN   r]   rj   rk   r   r   rl   rm   s   @r   r   r      s        [;<<    =< [m,,1 1 1 1 -,1 1 1 1 1r
   r   c                       e Zd ZdS )TestGetitemNrR   r	   r
   r   r   r      rS   r
   r   c                       e Zd ZdS )	TestIndexNrR   r	   r
   r   r   r      rS   r
   r   c                        e Zd Zej                            d           fd            Zej                            d           fd            Z xZS )TestMissingzSetting a dict as a scalarrc   c                 H    t                                                       dS z;We treat dictionaries as a mapping in fillna, not a scalar.N)rf   test_fillna_seriesr   s    r   r   zTestMissing.test_fillna_series   s!     	""$$$$$r
   c                 H    t                                                       dS r   )rf   test_fillna_framer   s    r   r   zTestMissing.test_fillna_frame   s!     	!!#####r
   )	rL   rM   rN   r]   rj   rk   r   r   rl   rm   s   @r   r   r      s        [:;;% % % % <;% [:;;$ $ $ $ <;$ $ $ $ $r
   r   
Unhashablerc   c                       e Zd ZdS )
TestReduceNrR   r	   r
   r   r   r      rS   r
   r   c                   2    e Zd Ze fd            Ze fd            Ze fd            Zej        	                    dddg           fd            Z
ej        	                    dddg           fd            Zej                            d	
           fd            Zej                            d	
           fd            Zej                            dde           fd            Ze fd            Zej                            d
           fd            Zej                            d
           fd            Zej                            d
           fd            Zej                            d           fd            Z xZS )TestMethodsc                 L    t                                          ||           d S r   )rf   test_value_counts)r`   all_datadropnari   s      r   r   zTestMethods.test_value_counts   s#    !!(F33333r
   c                 J    t                                          |           d S r   )rf    test_value_counts_with_normalizerh   s     r   r   z,TestMethods.test_value_counts_with_normalize   s!    0066666r
   c                 H    t                                                       d S r   )rf   test_sort_values_framer   s    r   r   z"TestMethods.test_sort_values_frame   s!     	&&(((((r
   	ascendingTFc                 N    t                                          |||           d S r   )rf   test_sort_values)r`   r   r   sort_by_keyri   s       r   r   zTestMethods.test_sort_values   s&      !19kJJJJJr
   c                 N    t                                          |||           d S r   )rf   test_sort_values_missing)r`   r   r   r   ri   s       r   r   z$TestMethods.test_sort_values_missing  s2     	(($i	
 	
 	
 	
 	
r
   z#combine for JSONArray not supportedrc   c                 J    t                                          |           d S r   )rf   test_combine_ler`   data_repeatedri   s     r   r   zTestMethods.test_combine_le  s!    .....r
   c                 J    t                                          |           d S r   )rf   test_combine_addr   s     r   r   zTestMethods.test_combine_add  s!      /////r
   zGcombine for JSONArray not supported - may pass depending on random data)rd   strictr^   c                 J    t                                          |           d S r   )rf   test_combine_firstrh   s     r   r   zTestMethods.test_combine_first  s#     	""4(((((r
   c                 L    t                                          ||           d S r   )rf   test_hash_pandas_object_works)r`   r   kindri   s      r   r   z)TestMethods.test_hash_pandas_object_works  s#    --dD99999r
   zbroadcasting errorc                 L    t                                          ||           d S r   )rf   test_where_series)r`   r   r!   ri   s      r   r   zTestMethods.test_where_series!  s%    
 	!!$11111r
   zCan't compare dicts.c                 J    t                                          |           d S r   )rf   test_searchsorted)r`   r   ri   s     r   r   zTestMethods.test_searchsorted(  s"    !!"233333r
   c                 N    t                                          |||           d S r   )rf   test_equals)r`   r   r!   	as_seriesri   s       r   r   zTestMethods.test_equals,  s%    D(I66666r
   z-fill-value is interpreted as a dict of valuesc                 J    t                                          |           d S r   )rf   test_fillna_copy_frame)r`   r   ri   s     r   r   z"TestMethods.test_fillna_copy_frame0  s!    &&|44444r
   )rL   rM   rN   
unhashabler   r   r   r]   rj   parametrizer   r   rk   r   r   r_   r   r   r   r   r   skipr   rl   rm   s   @r   r   r      s       4 4 4 4 Z4 7 7 7 7 Z7 ) ) ) ) Z) [[4-88K K K K 98K [[4-88
 
 
 
 98
 [CDD/ / / / ED/ [CDD0 0 0 0 ED0 [,	   ) ) ) ) ) : : : : Z: [2332 2 2 2 432 [4554 4 4 4 654 [4557 7 7 7 657 [EFF5 5 5 5 GF5 5 5 5 5r
   r   c                   `     e Zd Zej                            d           fd            Z xZS )TestCastingz$failing on np.array(self, dtype=str)rc   c                 H    t                                                       dS )zThis currently fails in NumPy on np.array(self, dtype=str) with

        *** ValueError: setting an array element with a sequence
        N)rf   test_astype_strr   s    r   r   zTestCasting.test_astype_str6  s!     	!!!!!r
   )rL   rM   rN   r]   rj   rk   r   rl   rm   s   @r   r   r   5  sX        [DEE" " " " FE" " " " "r
   r   c                        e Zd Ze fd            Ze fd            Ze fd            Ze fd            Zej	        
                    d           fd            Z xZS )TestGroupbyc                 H    t                                                       dS )a  
        This currently fails in Series.name.setter, since the
        name must be hashable, but the value is a dictionary.
        I think this is what we want, i.e. `.name` should be the original
        values, and not the values for factorization.
        N)rf    test_groupby_extension_transformr   s    r   r   z,TestGroupby.test_groupby_extension_transformD  s!     	0022222r
   c                 H    t                                                       dS )z
        This fails in Index._do_unique_check with

        >   hash(val)
        E   TypeError: unhashable type: 'UserDict' with

        I suspect that once we support Index[ExtensionArray],
        we'll be able to dispatch unique.
        N)rf   test_groupby_extension_applyr   s    r   r   z(TestGroupby.test_groupby_extension_applyN  s!     	,,.....r
   c                 H    t                                                       dS z
        This fails when we get to tm.assert_series_equal when left.index
        contains dictionaries, which are not hashable.
        N)rf   test_groupby_extension_aggr   s    r   r   z&TestGroupby.test_groupby_extension_agg[  s!     	**,,,,,r
   c                 H    t                                                       dS r   )rf   test_groupby_extension_no_sortr   s    r   r   z*TestGroupby.test_groupby_extension_no_sortc  s!     	..00000r
   z'GH#39098: Converts agg result to objectrc   c                 J    t                                          |           d S r   )rf   test_groupby_agg_extension)r`   r'   ri   s     r   r   z&TestGroupby.test_groupby_agg_extensionk  s"    **+<=====r
   )rL   rM   rN   r   r   r   r   r   r]   rj   rk   r   rl   rm   s   @r   r   r   C  s        3 3 3 3 Z3 
/ 
/ 
/ 
/ Z
/ - - - - Z- 1 1 1 1 Z1 [GHH> > > > IH> > > > >r
   r   c                   ~     e Zd Z fdZd Zej                            d           fd            Ze	f fd	Z
 xZS )TestArithmeticOpsc                     t          |d                   dk    r:t          j                            d          }|j                            |           t                                          ||           d S )Nr   r   zraises in coercing to Seriesrc   )r   r]   rj   rk   node
add_markerrf   test_arith_frame_with_scalar)r`   r   all_arithmetic_operatorsrequestrj   ri   s        r   r   z.TestArithmeticOps.test_arith_frame_with_scalarq  sh    tAw<<1;$$,J$KKDL##D))),,T3KLLLLLr
   c                     t          j        |          }t          j        t          d          5  ||z    d d d            d S # 1 swxY w Y   d S )NunsupportedrW   )r.   r/   r]   r^   	TypeError)r`   r   sers      r   $test_add_series_with_extension_arrayz6TestArithmeticOps.test_add_series_with_extension_arrayw  s    ioo]9M::: 	 	$JJ	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	s   AA
Aznot implementedrc   c                 H    t                                                       d S r   )rf   test_divmod_series_arrayr   s    r   r   z*TestArithmeticOps.test_divmod_series_array|  s!     	((*****r
   c                 X    t                                          |||t                    S )N)exc)rf   _check_divmod_opr   )r`   sopotherr   ri   s        r   r   z"TestArithmeticOps._check_divmod_op  s$    ww''2u)'DDDr
   )rL   rM   rN   r   r   r]   rj   rk   r   NotImplementedErrorr   rl   rm   s   @r   r   r   p  s        M M M M M  
 [/00+ + + + 10+
 2E E E E E E E E E E Er
   r   c                       e Zd ZdS )TestComparisonOpsNrR   r	   r
   r   r   r     rS   r
   r   c                       e Zd ZdS )TestPrintingNrR   r	   r
   r   r   r     rS   r
   r   )8rY   r#   ru   r]   pandasr.   pandas._testing_testingr3   pandas.tests.extensionr   !pandas.tests.extension.json.arrayr   r   r   fixturer   r   r   r   r   r!   r%   r'   r)   BaseDtypeTestsrQ   BaseInterfaceTestsrU   BaseConstructorsTestsro   BaseReshapingTestsr   BaseGetitemTestsr   BaseIndexTestsr   BaseMissingTestsr   rj   rk   r   BaseNoReduceTestsr   BaseMethodsTestsr   BaseCastingTestsr   BaseGroupbyTestsr   BaseArithmeticOpsTestsr   BaseComparisonOpsTestsr   BasePrintingTestsr   r	   r
   r   <module>r      sf        



            ' ' ' ' ' '                 & & &
 = = = / / /         '< '< '< '< '< '< '< '<T	 	 	 	 	$- 	 	 	$ $ $ $ $Hd5 $ $ $>%- %- %- %- %-x!; %- %- %-P1 1 1 1 1Hd5 1 1 1"	 	 	 	 	(D1 	 	 		 	 	 	 	$- 	 	 		$ 	$ 	$ 	$ 	$(D1 	$ 	$ 	$ [l33
	 	 	 	 	' 	 	 	@5 @5 @5 @5 @5(D1 @5 @5 @5F" " " " "(D1 " " "*> *> *> *> *>(D1 *> *> *>ZE E E E E$"= E E E,	 	 	 	 	$"= 	 	 		 	 	 	 	8T3 	 	 	 	 	r
   