
    I jF                        S r SSKrSSKrSSKJr  SSKrSSKJ	r
  SSKJr  SSKJr  \R                  S 5       r\R                  S 5       r\R                  S 5       r\R                  S	 5       r\R                  S
 5       r\R                  S 5       r\R                  S 5       r " S S\R.                  5      r " S S\R2                  5      rg)aj  
This file contains a minimal set of tests for compliance with the extension
array interface test suite, and should contain no other tests.
The test suite for the full functionality of the array is located in
`pandas/tests/arrays/`.

The tests in this file are inherited from the BaseExtensionTests, and only
minimal tweaks should be applied to get the tests passing (by overwriting a
parent method).

Additional tests should either be added to one of the BaseExtensionTests
classes (if they are relevant for the extension interface for all dtypes), or
be added to the array-specific tests in `pandas/tests/arrays/`.

    NDatetimeTZDtype)DatetimeArray)basec                      [        SSS9$ )Nnsz
US/Central)unittzr        u/root/GenerationalWealth/GenerationalWealth/venv/lib/python3.13/site-packages/pandas/tests/extension/test_datetime.pydtyper      s    66r   c                 l    [         R                  " [        R                  " SSU R                  S9U S9nU$ )N2000
   )periodsr
   r   )r   _from_sequencepd
date_ranger
   )r   datas     r   r   r   !   s/    ''
fbUXX6eD Kr   c                 V    [         R                  " [        R                  " SS/SS9U S9$ )NNaT
2000-01-01datetime64[ns]r   )r   r   nparrayr   s    r   data_missingr   )   s+    ''
%&.>?u r   c                     [         R                  " S5      n[         R                  " S5      n[         R                  " S5      n[        R                  " [        R
                  " X#U/SS9U S9$ )Nr   
2000-01-02
2000-01-03r   r   r   	Timestampr   r   r   r   )r   abcs       r   data_for_sortingr'   0   sT    
\"A
\"A
\"A''
!"235 r   c                     [         R                  " S5      n[         R                  " S5      n[        R                  " [        R
                  " USU/SS9U S9$ )Nr   r    r   r   r   r"   )r   r$   r%   s      r   data_missing_for_sortingr)   :   sH    
\"A
\"A''
!UA&67u r   c                     [         R                  " S5      n[         R                  " S5      n[         R                  " S5      nSn[        R                  " [        R
                  " X"XDXX#/SS9U S9$ )zS
Expected to be like [B, B, NA, NA, A, A, B, C]

Where A < B < C and NA is missing
r   r    r!   r   r   r   r"   )r   r$   r%   r&   nas        r   data_for_groupingr,   C   s`     	\"A
\"A
\"A	B''
!a+3CDE r   c                      S n U $ )Nc                 :    U [         R                  L =(       a    XL $ N)r   r   )r$   r%   s     r   cmpna_cmp.<locals>.cmpU   s    BFF{%qv%r   r   )r0   s    r   na_cmpr2   S   s    & Jr   c                   0  ^  \ rS rSrU 4S jrS\S\4S jrS\S\4S jrS\S\4S jr	\
R                  R                  SS	S
/5      U 4S j5       rU 4S jr\
R                  R                  SSS/5      S 5       rS\R"                  S\S\4U 4S jjrSrU =r$ )TestDatetimeArray\   c                 2   > US;   a  g [         TU ]  XU5      $ )N)__sub____rsub__)super_get_expected_exception)selfop_nameobjother	__class__s       r   r:   )TestDatetimeArray._get_expected_exception]   s!    --w.wUCCr   r<   skipnac                 (    US:X  a  gUR                   $ )Nstdztimedelta64[ns]r   )r;   arrr<   rA   s       r   _get_expected_reduction_dtype/TestDatetimeArray._get_expected_reduction_dtypeb   s    e$yyr   returnc                     US;   $ )N)cummincummaxr   )r;   serr<   s      r   _supports_accumulation(TestDatetimeArray._supports_accumulationg   s    ...r   c                     US;   $ )N)minmaxmedianmeanrC   anyallr   )r;   r=   r<   s      r   _supports_reduction%TestDatetimeArray._supports_reductionj   s    OOOr   TFc                    > UnSU S3n[         R                  " [        US9   [        TU ]  XU5        S S S 5        g ! , (       d  f       g = f)Nz,datetime64 type does not support operation '')match)pytestraises	TypeErrorr9   test_reduce_series_boolean)r;   r   all_boolean_reductionsrA   methmsgr?   s         r   r]   ,TestDatetimeArray.test_reduce_series_booleanm   s?    %<TF!D]]9C0G.tVT 100s	   =
Ac                 F   > UR                  S 5      n[        TU ]	  U5        g r/   )
_with_freqr9   test_series_constructor)r;   r   r?   s     r   rd   )TestDatetimeArray.test_series_constructort   s    t$'-r   	na_actionNignorec                 R    UR                  S US9n[        R                  " X15        g )Nc                     U $ r/   r   )xs    r   <lambda>,TestDatetimeArray.test_map.<locals>.<lambda>{   s    Ar   )rf   )maptmassert_extension_array_equal)r;   r   rf   results       r   test_mapTestDatetimeArray.test_mapy   s"    +;
''5r   rK   c                 R  > US;   a  UR                  S5      n[        X5      n[        XB5      nU" US9nU" US9nUS;   a+  UR                  R                  n	[        R
                  " XS9nO[        R                  " U5      n[        R                  " Xx5        g [        T
U ])  XU5      $ )N)rQ   rR   rC   int64)rA   )rR   rQ   )r
   )astypegetattrr   r
   r   r#   	Timedeltarn   assert_almost_equalr9   check_reduce)r;   rK   r<   rA   altres_opexp_oprp   expectedr
   r?   s             r   ry   TestDatetimeArray.check_reduce~   s    //**W%CS*FS*F6*FV,H,, YY\\<<8<<1""64 7'f==r   r   )__name__
__module____qualname____firstlineno__r:   strboolrE   rL   rU   rZ   markparametrizer]   rd   rq   r   Seriesry   __static_attributes____classcell__)r?   s   @r   r4   r4   \   s    D
# t 
/3 /4 /P P P [[Xe}5U 6U.
 [[[4*:;6 <6>		 >C > > >r   r4   c                       \ rS rSrSrg)Test2DCompat   r   N)r   r   r   r   r   r   r   r   r   r      s    r   r   )__doc__numpyr   rZ   pandas.core.dtypes.dtypesr   pandasr   pandas._testing_testingrn   pandas.core.arraysr   pandas.tests.extensionr   fixturer   r   r   r'   r)   r,   r2   ExtensionTestsr4   NDArrayBacked2DTestsr   r   r   r   <module>r      s       5   , ' 7 7            4>++ 4>n	4,, 	r   