
    i|              	       N   d dl Z d dlmZ d dlZd dlmZ d dlm	Z	m
Z
 e j                  j                  d      Z e j                  d      Zd Ze j                  j#                  d ej$                  dd	
      df ej$                  dd	d      dfg      d        Zd Zd Zd Zd Zy)    N)PeriodDtype)PeriodArrayperiod_arrayz=ignore:Passing a BlockManager to DataFrame:DeprecationWarningpyarrowc                      ddl m}   | d      } | d      } | d      }|j                  dk(  sJ ||k(  sJ ||k7  sJ t        |      t        |      k(  sJ t        |      t        |      k7  sJ y )Nr   ArrowPeriodTypeDM)(pandas.core.arrays.arrow.extension_typesr	   freqhash)r	   p1p2p3s       i/app/cer_product_mecsu/.venv/lib/python3.12/site-packages/pandas/tests/arrays/period/test_arrow_compat.pytest_arrow_extension_typer      su    H		B		B		B77c>>8O88O88tBx8tBx    z
data, freq2017   )periodsr
   YE)r   r   zY-DECc                 @   ddl m} t        | |      }t        j	                  |      }t        |j                  |      sJ |j                  j                  |k(  sJ t        j	                  |j                  d      }|j                  j                  |      sJ t        j	                  |t        j                               }|j                  |      sJ d}t        j                  t        |      5  t        j	                  |d       d d d        y # 1 sw Y   y xY w)	Nr   r   )r   int64typez5Not supported to convert PeriodArray to 'double' type)matchfloat64)r   r	   r   paarray
isinstancer   r   asi8storageequalsr   pytestraises	TypeError)datar   r	   r   resultexpectedmsgs          r   test_arrow_arrayr,   "   s     I4d+GXXgFfkk?333;;t###xx7x3H>>  *** XXgBHHJX/F==""" BC	y	, *
y)* * *s   3DDc                  P   ddl m}  t        g dd      }t        j                  |d<   t
        j                  |      }t        |j                  |       sJ |j                  j                  dk(  sJ t
        j                  g dd	
      }|j                  j                  |      sJ y )Nr   r         r   	period[D]dtyper/   r
   )r/   Nr   r   r   )r   r	   r   pdNaTr   r    r!   r   r   r#   r$   )r	   arrr)   r*   s       r   test_arrow_array_missingr7   =   s    H
i{
3CVVCFXXc]Ffkk?333;;s"""xx7x3H>>  ***r   c                  0   ddl m}  t        g dd      }t        j                  |d<   t        j
                  d|i      }t        j                  |      }t        |j                  d      j                  |       sJ |j                         }t        |d   j                  t              sJ t        j                  ||       t        j!                  ||g      }|j                         }t        j"                  ||gd	      }t        j                  ||       y )
Nr   r   r.   r1   r2   r/   aT)ignore_index)r   r	   r   r4   r5   	DataFramer   tabler!   fieldr   	to_pandasr3   r   tmassert_frame_equalconcat_tablesconcat)r	   r6   dfr<   r)   table2r*   s          r   test_arrow_table_roundtriprE   J   s    H
i{
3CVVCF	sCj	!BHHRLEekk#&++_===__FfSk''555&"%uen-FFyy"b5H&(+r   c                     ddl m}  t        g d      }t        j                  d|i      }t
        j                  |      }t        |j                  d      j                  |       sJ t
        j                  t
        j                  g |j                  d      j                        g|j                        }|j                         }t        |d   j                  t              sJ t!        j"                  ||       y )Nr   r   r1   r2   r9   r   )schema)r   r	   r   r4   r;   r   r<   r!   r=   r   chunked_arraycolumnrG   r>   r3   r   r?   r@   )r	   r6   rC   r<   r)   s        r    test_arrow_load_from_zero_chunksrJ   ]   s     I
b
,C	sCj	!BHHRLEekk#&++_===HH			"5<<?#7#7		89%,,  E __FfSk''555&"%r   c                  z   t        g dd      } t        j                  | d<   t        j                  d| i      }t        j                  |      }|j                         }|j                  j                  J |j                         }t        |d   j                  t              sJ t        j                  ||       y )Nr.   z	period[h]r2   r/   r9   )r   r4   r5   r;   r   r<   replace_schema_metadatarG   metadatar>   r!   r3   r   r?   r@   )r6   rC   r<   r)   s       r   +test_arrow_table_roundtrip_without_metadatarN   p   s    
i{
3CVVCF	sCj	!BHHRLE))+E<<  (((__FfSk''555&"%r   )r%   pandas.core.dtypes.dtypesr   pandasr4   pandas._testing_testingr?   pandas.core.arraysr   r   markfilterwarnings
pytestmarkimportorskipr   r   parametrize
date_ranger,   r7   rE   rJ   rN    r   r   <module>r[      s     1  
 [[''C

 V#  	vq	)3/	vqt	4g>**(
+,&&&&r   