U
    f/e'                     @   s  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 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G dd dejZdd Z dS )    N)is_bool_dtype)baseZpyarrowz0.13.0)Z
minversion)ArrowBoolArrayArrowBoolDtypec                   C   s   t  S N)r    r   r   J/tmp/pip-unpacked-wheel-tiezk1ph/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d ZdS )	TestDtypec                 C   s   t d d S NzGH-22666pytestskip)selfr   r	   r   r   r   test_array_type_with_arg,   s    z"TestDtype.test_array_type_with_argN)r   r   r   r&   r   r   r   r   r    +   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r%   r   r   r   r   	test_copy1   s    zTestInterface.test_copyc                 C   s   |   d S r   )viewr)   r   r   r   	test_view5   s    zTestInterface.test_viewzNot implemented yet)Zraisesreasonc                    s   t  || d S r   )supertest_contains)r%   r   r   	__class__r   r   r/   9   s    zTestInterface.test_contains)r   r   r   r*   r,   r#   markxfailr   r/   __classcell__r   r   r0   r   r'   0   s   r'   c                       s   e Zd Z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
ejjdd fddZ  ZS )TestConstructorsc                 C   s   t d d S r!   r"   r)   r   r   r   test_from_dtype?   s    z TestConstructors.test_from_dtypezbad is-na for empty data)r-   c                    s   t  | d S r   )r.   test_from_sequence_from_clsr)   r0   r   r   r7   C   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_valuer0   r   r   r8   G   s    z;TestConstructors.test_series_constructor_no_data_with_indexc                    s   t  || d S r   )r.   ,test_series_constructor_scalar_na_with_indexr9   r0   r   r   r:   L   s    z=TestConstructors.test_series_constructor_scalar_na_with_indexzraises AssertionErrorc                    s   t  | d S r   )r.   test_construct_empty_dataframer%   r	   r0   r   r   r;   Q   s    z/TestConstructors.test_construct_empty_dataframez$_from_sequence ignores dtype keywordc                    s   t  | d S r   )r.   
test_emptyr<   r0   r   r   r=   U   s    zTestConstructors.test_empty)r   r   r   r6   r#   r2   r3   r7   r8   r:   r;   r=   r4   r   r   r0   r   r5   >   s   r5   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>   Z   s   r>   c                   @   s   e Zd ZdS )TestReduceBooleanNr   r   r   r   r   r@   _   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_dtypec   s    rI   )!Znumpyr   r#   Zpandasr   Zpandas._testingZ_testingrE   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BaseConstructorsTestsr5   ZBaseNoReduceTestsr>   ZBaseBooleanReduceTestsr@   rI   r   r   r   r   <module>   s*   


