o
    g.                     @   s  d Z ddlZddlZddlmZ ddlZddlm	Z	 ddl
mZ ejdgddd	 Zejd
d Zejdd Zejdd Zejdd Zejdd Zejdd Zejdd ZG dd dZG dd deejZG dd deejZG dd deejZG d d! d!eejZG d"d# d#eejZG d$d% d%eej Z!G d&d' d'eej"Z#G d(d) d)eej$Z%G d*d+ d+eej&Z'G d,d- d-eej(Z)G d.d/ d/eej*Z+G d0d1 d1eej,Z-G d2d3 d3eej.Z/G d4d5 d5eej0Z1dS )6aj  
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)basez
US/Central)paramsc                 C   s   t d| jdS )Nns)unittz)r   param)request r   b/home/ubuntu/cloudmapper/venv/lib/python3.10/site-packages/pandas/tests/extension/test_datetime.pydtype   s   r   c                 C   s   t tjdd| jd| d}|S )N2000d   )periodsr   r   )r   pd
date_ranger   )r   datar   r   r   r      s   r   c                 C   s   t tjddgdd| dS )NNaT
2000-01-01datetime64[ns]r   )r   nparrayr   r   r   r   data_missing%   s   r   c                 C   s:   t d}t d}t d}ttj|||gdd| dS )Nr   
2000-01-02
2000-01-03r   r   r   	Timestampr   r   r   )r   abcr   r   r   data_for_sorting,   s   


r"   c                 C   s0   t d}t d}ttj|d|gdd| dS )Nr   r   r   r   r   r   )r   r   r    r   r   r   data_missing_for_sorting4   s   

r#   c              
   C   sH   t d}t d}t d}d}ttj||||||||gdd| dS )z_
    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!   nar   r   r   data_for_grouping;   s   


r%   c                  C   s   dd } | S )Nc                 S   s   | t ju o| |u S Nr   r   )r   r    r   r   r   cmpM   s   zna_cmp.<locals>.cmpr   )r(   r   r   r   na_cmpK   s   r)   c                   C   s   t jS r&   r'   r   r   r   r   na_valueS   s   r*   c                   @      e Zd ZdS )BaseDatetimeTestsN__name__
__module____qualname__r   r   r   r   r,   Y       r,   c                   @   r+   )TestDatetimeDtypeNr-   r   r   r   r   r2   _   r1   r2   c                          e Zd Z fddZ  ZS )TestConstructorsc                    s   | d }t | d S r&   )
_with_freqsupertest_series_constructorselfr   	__class__r   r   r7   d   s   
z(TestConstructors.test_series_constructor)r.   r/   r0   r7   __classcell__r   r   r:   r   r4   c       r4   c                   @   r+   )TestGetitemNr-   r   r   r   r   r>   j   r1   r>   c                   @   s*   e Zd Zejjdddd Zdd ZdS )TestMethodszIncorrect expectedreasonc                 C      d S r&   r   )r9   all_datadropnar   r   r   test_value_countso      zTestMethods.test_value_countsc                 C   rB   r&   r   )r9   data_repeatedr   r   r   test_combine_adds   rF   zTestMethods.test_combine_addN)r.   r/   r0   pytestmarkskiprE   rH   r   r   r   r   r?   n   s    
r?   c                       r3   )TestInterfacec                    s$   |j r
td d S t | d S )NzGH-23569)r   rI   rK   r6   test_array_interfacer8   r:   r   r   rM   y   s   z"TestInterface.test_array_interface)r.   r/   r0   rM   r<   r   r   r:   r   rL   x   r=   rL   c                       sL   e Zd ZddhZ fddZ fddZdd Z fd	d
Zdd Z  Z	S )TestArithmeticOps__sub____rsub__c                    sD   || j v rtd|i}| j|||d d d d S t || d S )NAr   exc)
implementsr   	DataFramecheck_opnamer6   test_arith_frame_with_scalar)r9   r   all_arithmetic_operatorsdfr:   r   r   rW      s   
z.TestArithmeticOps.test_arith_frame_with_scalarc                    B   || j v rt|}| j|||jd d d d S t || d S Nr   rR   rT   r   SeriesrV   ilocr6   test_arith_series_with_scalarr9   r   rX   sr:   r   r   r_         

z/TestArithmeticOps.test_arith_series_with_scalarc                 C   sJ   t |}d}tjt|d ||  W d    d S 1 sw   Y  d S )Nz*cannot add DatetimeArray and DatetimeArray)match)r   r]   rI   raises	TypeError)r9   r   ra   msgr   r   r   $test_add_series_with_extension_array   s
   

"z6TestArithmeticOps.test_add_series_with_extension_arrayc                    rZ   r[   r\   r`   r:   r   r   test_arith_series_with_array   rb   z.TestArithmeticOps.test_arith_series_with_arrayc                 C   rB   r&   r   )r9   r   r   r   test_divmod_series_array      z*TestArithmeticOps.test_divmod_series_array)
r.   r/   r0   rT   rW   r_   rg   rh   ri   r<   r   r   r:   r   rN      s    	rN   c                   @   r+   )TestCastingNr-   r   r   r   r   rk      r1   rk   c                   @   s   e Zd Zdd ZdS )TestComparisonOpsc                 C   rB   r&   r   )r9   ra   r   op_nameotherr   r   r   _compare_other   rj   z TestComparisonOps._compare_otherN)r.   r/   r0   ro   r   r   r   r   rl      s    rl   c                   @   r+   )TestMissingNr-   r   r   r   r   rp      r1   rp   c                       s2   e Zd Zejjdddd Z fddZ  ZS )TestReshapingzWe have DatetimeTZBlockr@   c                 C   rB   r&   r   )r9   r   in_framer   r   r   test_concat   rF   zTestReshaping.test_concatc                    s   t  | d S r&   )r6   test_concat_mixed_dtypesr8   r:   r   r   rt      s   z&TestReshaping.test_concat_mixed_dtypes)	r.   r/   r0   rI   rJ   rK   rs   rt   r<   r   r   r:   r   rq      s    
rq   c                   @   r+   )TestSetitemNr-   r   r   r   r   ru      r1   ru   c                   @   r+   )TestGroupbyNr-   r   r   r   r   rv      r1   rv   c                   @   r+   )TestPrintingNr-   r   r   r   r   rw      r1   rw   c                   @   r+   )Test2DCompatNr-   r   r   r   r   rx      r1   rx   )2__doc__numpyr   rI   pandas.core.dtypes.dtypesr   pandasr   pandas.core.arraysr   pandas.tests.extensionr   fixturer   r   r   r"   r#   r%   r)   r*   r,   BaseDtypeTestsr2   BaseConstructorsTestsr4   BaseGetitemTestsr>   BaseMethodsTestsr?   BaseInterfaceTestsrL   BaseArithmeticOpsTestsrN   BaseCastingTestsrk   BaseComparisonOpsTestsrl   BaseMissingTestsrp   BaseReshapingTestsrq   BaseSetitemTestsru   BaseGroupbyTestsrv   BasePrintingTestsrw   Dim2CompatTestsrx   r   r   r   r   <module>   sL    








	)