U
    *if                     @   s0  d dl Zd dlZd dlmZmZ d dlZd dlm	Z
 d dlmZ d dlmZ ejddd d dlmZmZ ejd	d
 Zejdd Zejdd Z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jZ ej!j"e o
e ddG dd dej#Z$dd  Z%dS )!    N)is_ci_environmentis_platform_windows)is_bool_dtype)baseZpyarrowz1.0.1)Z
minversion)ArrowBoolArrayArrowBoolDtypec                   C   s   t  S N)r    r	   r	   Y/home/mars/bis/venv/lib/python3.8/site-packages/pandas/tests/extension/arrow/test_bool.pydtype   s    r   c                  C   s,   t jjdddtd} | d  | d< t| S )Nr      d   )sizer      )nprandomrandintboolr   from_scalars)valuesr	   r	   r
   data   s    r   c                   C   s   t d dgS )NT)r   r   r	   r	   r	   r
   data_missing"   s    r   c                 C   s   t | t | std S r   )pdSeriesequalsAssertionError)r   r	   r	   r
   test_basic_equals'   s    r   c                   @   s   e Zd ZdS )BaseArrowTestsN__name__
__module____qualname__r	   r	   r	   r
   r   ,   s   r   c                   @   s   e Zd ZdS )	TestDtypeNr   r	   r	   r	   r
   r"   0   s   r"   c                       s<   e Zd Zdd Zdd Zejjedd fddZ	  Z
S )	TestInterfacec                 C   s   |   d S r   )copyselfr   r	   r	   r
   	test_copy5   s    zTestInterface.test_copyc                 C   s   |   d S r   )viewr%   r	   r	   r
   	test_view9   s    zTestInterface.test_viewz&Doesn't recognize data._na_value as NA)Zraisesreasonc                    s   t  || d S r   )supertest_contains)r&   r   r   	__class__r	   r
   r,   =   s    zTestInterface.test_contains)r   r    r!   r'   r)   pytestmarkxfailr   r,   __classcell__r	   r	   r-   r
   r#   4   s   r#   c                       s   e Zd Zejjdd fddZejjdd fddZejjdd fdd	Zejjd
d fddZ	ejjdd fddZ
  ZS )TestConstructorszbad is-na for empty datar*   c                    s   t  | d S r   )r+   test_from_sequence_from_clsr%   r-   r	   r
   r5   G   s    z,TestConstructors.test_from_sequence_from_clsz-pa.NULL is not recognised as scalar, GH-33899c                    s   t  || d S r   )r+   *test_series_constructor_no_data_with_indexr&   r   Zna_valuer-   r	   r
   r6   K   s    z;TestConstructors.test_series_constructor_no_data_with_indexc                    s   t  || d S r   )r+   ,test_series_constructor_scalar_na_with_indexr7   r-   r	   r
   r8   P   s    z=TestConstructors.test_series_constructor_scalar_na_with_indexz0ufunc 'invert' not supported for the input typesc                    s   t  | d S r   )r+   test_construct_empty_dataframer&   r   r-   r	   r
   r9   U   s    z/TestConstructors.test_construct_empty_dataframez$_from_sequence ignores dtype keywordc                    s   t  | d S r   )r+   
test_emptyr:   r-   r	   r
   r;   Y   s    zTestConstructors.test_empty)r   r    r!   r/   r0   r1   r5   r6   r8   r9   r;   r2   r	   r	   r-   r
   r3   E   s   r3   c                   @   s   e Zd Zdd ZdS )
TestReducec                 C   s   d S r   r	   )r&   r	   r	   r
   test_reduce_series_boolean_   s    z%TestReduce.test_reduce_series_booleanN)r   r    r!   r=   r	   r	   r	   r
   r<   ^   s   r<   z#Causes stack overflow on Windows CIr4   c                   @   s   e Zd ZdS )TestReduceBooleanNr   r	   r	   r	   r
   r>   c   s   r>   c                 C   sV   t | sttjj| stttt| }||  }|t	
|  }t|| d S r   )r   r   r   corecommonZis_bool_indexerr   rangelenr   ZasarraytmZassert_series_equal)r   sresultexpectedr	   r	   r
   test_is_bool_dtypek   s    rG   )&numpyr   r/   Zpandas.compatr   r   Zpandasr   Zpandas._testingZ_testingrC   Zpandas.api.typesr   Zpandas.tests.extensionr   ZimportorskipZ#pandas.tests.extension.arrow.arraysr   r   Zfixturer   r   r   r   r   ZBaseDtypeTestsr"   ZBaseInterfaceTestsr#   ZBaseConstructorsTestsr3   ZBaseNoReduceTestsr<   r0   ZskipifZBaseBooleanReduceTestsr>   rG   r	   r	   r	   r
   <module>   s4   


