
    PiQv                     8   d dl Z d dlZd dlZd dlZd dlmZmZ 	 d dlZn# e	$ r dZY nw xY wd dl
Zd dlmZ ej                            g dg ddej        fddej        fddej        fddej        fd ej                    ej        fd ej                    ej        fd ej                    ej        fd ej                    ej        fd ej                    ej        fd ej                    ej        fd ej                    ej        fd ej                     ej!        fd ej"                    ej#        fddej$        fd ej%                    ej&        f ej'        d	          dej(        f ej'        d
          dej)        fddej*        fddej+        fd ej,                    ej-        fd ej.                    ej/        fd ej0                    ej1        fd ej2                    ej3        fd ej4        d          ej5        fg ddej6        fg d ej7         ej                              ej8        fg d ej9         ej                    d          ej:        fg d ej;         ej                              ej<        fg d ej=         ej                              ej>        fe j?        @                                dejA        fe j?        @                                 ejB                    ejC        fe j         D                                dejE        fe j         D                                F                                G                    d            ejH        d          ejI        fe j         D                                F                                dejJ        f e jK        d          dejL        f ejM        g d          dejN        fdddgddejO        fddg ejP         ejQ                     ej                              ejR        f          d             ZSej        j        d              ZTd! ZUd" ZVd# ZWd$ ZXd% ZYej        jZ        d&             Z[d' Z\d( Z]d) Z^d* Z_d+ Z`d, Zad- Zbej                            d.d/gd ejH        d          fd0 ejH        d          fd ejH        d          fd ejH        d1          fd0 ejH        d1          fd ejH        d1          fd ejc        d2          fd3 ejc        d2          fd ejc        d2          fd ejc        d4          fd3 ejc        d4          fd ejc        d4          fd ejd                    fd0 ejd                    fd ejd                    fd ejB                    fd3 ejB                    fd ejB                    fd eje        d4          fd3 eje        d4          fd eje        d4          fd ejf        d4          fd3 ejf        d4          fd ejf        d4          fd5 ejg                    fd ejg                    fg          d/ejh        fd6            Zid7 Zjej        jZ        d8             Zkd9 Zld: Zmej                            d; ejd                     ejB                    g          d<             Znej        jo        d=             Zpej        jq        d>             Zrd? Zsd@ Ztej        j        dA             Zuej        jo        dB             Zvej        jq        dC             ZwdD Zxej                            d.dEdFg          ej                            dG ejQ                    ej*        f ej,                    ej-        f ej0                    ej1        fg          dH                         Zyej                            d.g dI          ej                            dG ej4                    ej+        f ej.                    ej/        f ej2                    ej3        fg          dJ                         ZzdK Z{ej                            dL ej9         ejQ                              ej6        f ej7         ejQ                              ej8        f ej;         ejQ                              ej<        f ej=         ejQ                              ej>        fg          dM             Z|ej        j        ej                            dN ej9         ej                               ej7         ej                               ej;         ej                               ej=         ej                              dg          dO                         Z}ej        jo        ej                            dPej9        ej7        ej;        ej=        g          dQ                         Z~dR ZdS ZdT ZdU ZdV ZdW ZdX ZdY ZdZ Zd[ Zd\ Zd] ZdS )^    N)SequenceMapping)valuetyklassFT         ?1.123z*1.1234567890123456789012345678901234567890strings   byteslargestrings
   largebytesstring_views
   bytes_views   abc   r      r   r   r   r      )r   r   r   r      r   )microseconds)days)r   r	   ir   abr   r   r   r   c                 (   t          j        | |          }|                                 |                    d           t          ||          sJ |                                | k    sJ |t          j        | |          k    sJ || k    sJ |dk    sJ t          |          t          |          k    sJ |j        du sJ |d k    sJ t          j        d |j                  }|j        du sJ |                                J |t          j        | |          k    sJ |                    |	                    |                    }|
                    |          sJ t          j        |          } |            J ~ |            J d S )NtypeTfullelseF)pascalarvalidate
isinstanceas_pyhashis_validr   loadsdumpsequalsweakrefref)r   r   r   pickle_moduler   restoredwrs          n/home/jaya/work/projects/VOICE-AGENT/VIET/agent-env/lib/python3.11/site-packages/pyarrow/tests/test_scalars.pytest_basicsr3   !   s   X 		%b!!!AJJLLLJJDJa7799	%b)))))))::::;;;;77d1gg:9999
	$QV$$$A:7799	%b))))))) ""=#6#6q#9#9::H88H 
QB244	244<<<<<    c                    t          j        d          t          j                    t          j        }}}t          j        ||          }|                                 |                    d           t          ||          sJ |                                |k    sJ |t          j        ||          k    sJ ||k    sJ |dk    sJ t          |          t          |          k    sJ |j	        du sJ |d k    sJ t          j        d |j
                  }|j	        du sJ |                                J |t          j        ||          k    sJ |                     |                     |                    }|                    |          sJ t          j        |          } |            J ~ |            J d S )Nr
   r   Tr    r"   F)npfloat16r#   HalfFloatScalarr$   r%   r&   r'   r(   r)   r   r*   r+   r,   r-   r.   )r/   r   r   r   r   r0   r1   s          r2   test_basics_np_requiredr9   l   s   z#
b6Hu2E
	%b!!!AJJLLLJJDJa7799	%b)))))))::::;;;;77d1gg:9999
	$QV$$$A:7799	%b))))))) ""=#6#6q#9#9::H88H 
QB244	244<<<<<r4   c                  6   t          j        t          j        d          t          j                    d          } |                                  t          j        t          d          5  |                     d           d d d            d S # 1 swxY w Y   d S )N   Fsafez(string scalar contains invalid UTF8 datamatchTr    )	pccastr#   r$   r   r%   pytestraises
ValueErrorr   s    r2   test_invalid_scalarrF      s    
	'""BIKKe<<<AJJLLL	zG
I 
I 
I  	


                 s   *BBBc                      t          j        t                    5  t          j                     d d d            d S # 1 swxY w Y   d S )N)rB   rC   RuntimeErrorr#   
NullScalar r4   r2   test_null_singletonrK      s    	|	$	$  
                 s   ;??c                    t          j        d           }|t           j        u sJ |                                J |dk    sJ |t          j        d           k    du sJ |dk    du sJ t           j        t           j        k    sJ t           j        dvsJ t          j        d d g          }|D ](}|t           j        u sJ |                                J )|                     |                     |                    }|                    |          sJ t          j	        |          } |            J ~ |            J d S )N	somethingTr   F)r   )
r#   r$   NAr'   arrayr*   r+   r,   r-   r.   )r/   nullarrvr0   r1   s         r2   
test_nullsrS      s[   9T??D25====::<<;BIdOO#,,,,AI%5BE>>>>5
(D$<
 
 C ! !BEzzzzwwyy     ""=#6#6t#<#<==H??4      
T		B244244r4   c                      t          t          d                    } t          j        | | z             }t	          |          }t          |t                    sJ t          |          dk    sJ d S )Ni  )listranger#   rO   setr&   len)valuesrQ   set_from_arrays      r2   test_hashingr[      sh    %**F
(6F?
#
#CXXNnc*****~#%%%%%%r4   c                      t          j        ddiddigddid gg          } t          j        ddid gg          }t          | d                   }t          |d                   }||k    sJ d S )Nr   r         r   r   )r#   rO   r(   )r   r   hash1hash2s       r2   test_hashing_struct_scalarra      sv    
C8c1X&#q4(89::A
C8T"#$$A1JJE1JJEE>>>>>>r4   c            	         t          t          j        d                              t          j        d                              } | dk    sJ t          t          j        t          j        ddd          t          j        dd                              }|d	k    sJ t          t          j        t          j        ddd          t          j        d
                              }|dk    sJ t          t          j        t          j        d                              t          j        d                    d                    }|dk    sJ d S )Nz
0000-01-01r   z0<pyarrow.TimestampScalar: '0000-01-01T00:00:00'>i  r   UTCtzr   z5<pyarrow.TimestampScalar: '2015-01-01T00:00:00+0000'>usz7<pyarrow.TimestampScalar: '2015-01-01T00:00:00.000000'>z
2000-01-01America/New_Yorkz5<pyarrow.TimestampScalar: '2000-01-01T00:00:00-0500'>)reprr#   r$   rA   	timestampdatetimer@   assume_timezoner   r   cds       r2   test_timestamp_scalarro      s9   RY|$$))",s*;*;<<==ABBBBBRYx(q!442<PU;V;V;VWWWXXAGGGGGRYx(q!442<;M;MNNNOOAIIIIIR
	,$$R\#%6%6779KM M 	N 	NAGGGGGGGr4   c                  F   t          j        d          } t          j        d          }t          j        d t          j                              }t          | t           j                  sJ t          |t           j                  sJ t          |t           j                  sJ t          |          dk    sJ t          |          dk    sJ t          |           dk    sJ t          |           dk    sJ t          |          dk    sJ t          |          d	k    sJ |                                du sJ |                                 du sJ |                                J t          |          du sJ t          |           du sJ t          |          du sJ d S )
NFTr   z<pyarrow.BooleanScalar: True>Truez<pyarrow.BooleanScalar: False>Falsez<pyarrow.BooleanScalar: None>None)	r#   r$   bool_r&   BooleanScalarrh   strr'   bool)falsetruerP   s      r2   	test_boolrz      s   IeE9T??D9T

+++DeR-.....dB,-----dB,-----::88888t99;;:::::u::    ::88888t99::<<4;;==E!!!!::<<::;;%::r4   c                  "   t          j        d          } t          | t           j                  sJ t	          |           dk    sJ t          |           dk    sJ |                                 dk    sJ t          |           dk    sJ t          j	        t                    5  t          j        dd           d d d            n# 1 swxY w Y   t          j        d          } t          | t           j                  sJ t	          |           dk    sJ t          |           d	k    sJ |                                 dk    sJ t          |           dk    sJ t          |           dk    sJ t          j        d
d          } t          | t           j                  sJ t	          |           dk    sJ t          |           dk    sJ |                                 d
k    sJ t          |           d
k    sJ t          |           dk    sJ d S )Nr   z<pyarrow.Int64Scalar: 1>1r	   uint8r         ?z<pyarrow.DoubleScalar: 1.5>z1.5g      ?r7   z<pyarrow.HalfFloatScalar: 0.5>z0.5r   )r#   r$   r&   Int64Scalarrh   rv   r'   intrB   rC   OverflowErrorDoubleScalarfloatr8   rE   s    r2   test_numericsr      s"   
	!Aa(((((7700000q66S====7799>>>>q66Q;;;;	}	%	% $ $
	"7####$ $ $ $ $ $ $ $ $ $ $ $ $ $ $ 		#Aa)))))7733333q66U????779988s????q66Q;;;; 		#I&&&Aa+,,,,,7766666q66U????779988s????q66Q;;;;;;s   #CC
C
c                  j   t          j        d          } t          j        |           }t	          |t          j                  sJ |                                | k    sJ |j        t          j        dd          k    sJ t          j        d          } t          j
        t          j                  5  t          j        | t          j        dd                     d d d            n# 1 swxY w Y   t          j
        t          j                  5  t          j        | t          j        dd                     d d d            n# 1 swxY w Y   t          j        | t          j        dd                    }t	          |t          j                  sJ |                                | k    sJ d S )Nr   r   r   1.1234scaler   r   )decimalDecimalr#   r$   r&   Decimal128Scalarr'   r   
decimal128rB   rC   ArrowInvalidrR   r   s     r2   test_decimal128r   	  s     A
	!Aa,-----7799>>>>6R]1a((((((!!A	r	'	' 5 5
	!"-33344445 5 5 5 5 5 5 5 5 5 5 5 5 5 5	r	'	' 5 5
	!"-33344445 5 5 5 5 5 5 5 5 5 5 5 5 5 5 		!"-333444Aa,-----7799>>>>>>$   1+C((C,/C,+EEEc                  j   t          j        d          } t          j        |           }t	          |t          j                  sJ |                                | k    sJ |j        t          j        dd          k    sJ t          j        d          } t          j
        t          j                  5  t          j        | t          j        dd                     d d d            n# 1 swxY w Y   t          j
        t          j                  5  t          j        | t          j        dd                     d d d            n# 1 swxY w Y   t          j        | t          j        dd                    }t	          |t          j                  sJ |                                | k    sJ d S )	Nz,1234567890123456789012345678901234567890.123+   r   r   r   r   r   r   )r   r   r#   r$   r&   Decimal256Scalarr'   r   
decimal256rB   rC   r   r   s     r2   test_decimal256r     s   FGGA
	!Aa,-----7799>>>>6R]2q))))))!!A	r	'	' 5 5
	!"-33344445 5 5 5 5 5 5 5 5 5 5 5 5 5 5	r	'	' 5 5
	!"-33344445 5 5 5 5 5 5 5 5 5 5 5 5 5 5 		!"-333444Aa,-----7799>>>>>>r   c                     t          j        ddd          } t          j        ddd          }t          j                    t          j                    fD ]9}| |fD ]2}t          j        ||          }|                                |k    sJ 3:d S )Ni  r   i  r   )rj   dater#   date32date64r$   r'   )d1d2r   rn   r   s        r2   	test_dater   -  s    	tQ	"	"B	tQ	"	"By{{BIKK( " "b 	" 	"A	!"%%%A7799>>>>>	"" "r4   c                  Z   t          j        t          j        ddd          t          j        d                    } t          j        ddd          }t          j                    t          j                    fD ]1}|                     |          }|                                |k    sJ 2d S )Ni  r   rf   r   )	r#   r$   rj   ri   r   r   r   rA   r'   )r$   expectedr   results       r2   test_date_castr   8  s    Yx(q!442<;M;MNNNF}T1a((Hy{{BIKK( * *R||~~)))))* *r4   c                  n   t          j        dd          } t          j        dd          }t          j        d          t          j        d          t          j        d          t          j        d          g}|D ]9}| |fD ]2}t          j        ||          }|                                |k    sJ 3:d S )	N   r      r   msrf   nsr   )rj   timer#   time32time64r$   r'   )t1t2typesr   tr   s         r2   test_time_from_datetime_timer   A  s    	r1		B	r1		BYs^^RYt__biooryOE " "b 	" 	"A	!"%%%A7799>>>>>	"" "r4   r   	time_typei   @r   rf   l            r   )r   r   c                 x    t          j        | |          }|                    d           |j        | k    sJ d S )Nr   Tr    )r#   r$   r%   r   )r   r   time_scalars      r2   test_temporal_valuesr   L  sI    : )E	222Kd###%%%%%%r4   c                     t          j        dd          } |                     d          t          j        dd          k    sJ |                     d          t          j        dd          k    sJ |                     d          t          j        dd          k    sJ t          j        t
                    5  t          j        d                              d	           d d d            d S # 1 swxY w Y   d S )
Nr   int8r   int64uint32r   5fooint32)r#   r$   rA   rB   rC   rD   )vals    r2   	test_castr   n  s,   
)AF
#
#
#C88G	!' : : :::::88H18!<!<!<<<<<88H3X!>!>!>>>>>	z	"	" ' '
	%g&&&' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' 's   =(C22C69C6c            	      F   t          j        d           dd l} t          j        dddddd| j                  }t          j        |t          j        dd          	          }|                    t          j	                              t          j        d
          k    sJ d S )Npytzr     r   tzinfor   rc   rd   r   z2000-01-01 00:00:00.000000000Z)
rB   importorskipr   rj   utcr#   r$   ri   rA   r   )r   dttss      r2   test_cast_timestamp_to_stringr   w  s     KKK		4Aq!Qtx	@	@	@B	2BL%888	9	9	9B7729;;29-M#N#NNNNNNNr4   c                     t          j        dt          j                              } |                     t          j                    d          }t          j        dt          j                              }||k    sJ t          j        t           j                  5  |                     t          j                               d d d            d S # 1 swxY w Y   d S )Nr~   r   Fr<   r   )r#   r$   float64rA   r   rB   rC   r   )float_scalarunsafe_castexpected_unsafe_casts      r2   test_cast_float_to_intr     s    9Srz||444L##BHJJU#;;K9QRXZZ888.....	r	'	' & &"(**%%%& & & & & & & & & & & & & & & & & &   'CCCc                     t          j        dt          j                              } |                     t          j                    d          }t          j        dt          j                              }||k    sJ t          j        t           j                  5  |                     t          j                               d d d            d S # 1 swxY w Y   d S )Nl   r   Fr<   g      PC)r#   r$   r   rA   r   rB   rC   r   )
int_scalarr   r   s      r2   test_cast_int_to_floatr     s    ,28::>>>J//"*,,U/;;K9%8rz||LLL.....	r	'	' & &
%%%& & & & & & & & & & & & & & & & & &r   typc                     t          j        d          }|                    |           }|t          j        t          j        ddd          |           k    sJ d S )Nz
2021-01-01i  r   r   )r#   r$   rA   rj   r   )r   r$   r   s      r2   test_cast_string_to_dater     sV    Y|$$F[[FRYx}T1a88sCCCCCCCCCr4   c                  (   dd l } |                     dd          j        }g d}t          |          D ]\\  }}d| d}t          j                            |                    |                    }|                     d          }|d         	                                |k    sJ |d         j
        d|z  z  |j
        k    sJ d	}t	          j        ||
          }	d| d}t          j                            |                    |          |	          }|                     d                              d                              |          }|d         	                                |k    sJ |d         j
        d|z  z  |j
        k    sJ ^d S )Nr   z2000-01-01 12:34:56
   )periods)r   rf   r   r   zdatetime64[]  rg   rd   r   r   )pandas
date_rangerY   	enumerater#   Arrayfrom_pandasastype	Timestampr'   r   ri   tz_localize
tz_convert)
pdrQ   unitsiunitdtype	arrow_arrr   re   
arrow_types
             r2   test_timestampr     s   
---r-
:
:
AC###EU## > >4%d%%%H((E):):;;	<< 566|!!##x////|!D!G+x~====\$2...
%d%%%H((E):):(LL	LL!677 [''Z^^ 	 |!!##x////|!D!G+x~=====%> >r4   c                  <   t          j        d           dd l} d}t          j        d|          }t          j        d|          }|                     |          }t          j        dd	d	d	|
          }|                    |          }|	                                }||k    sJ |j
        dk    sJ |j        dk    sJ t          j        d|          }t          j        t                    5  |	                                 d d d            d S # 1 swxY w Y   d S )Nr   r   rg   r   rd   l   $=3ir   r   r   )r   r   i         $=3i)rB   r   r   r#   ri   r$   timezonerj   fromutcr'   yearhourrC   rD   )r   re   r   r   r   r   r   s          r2   test_timestamp_nanos_nopandasr     sg    KKK	B	dr	"	"	"B 		+"555A]]2F q!6JJJH~~h''HWWYYFX;$;" 		$2...A	z	"	"  				                 s   /DDDc                     t          j        d           dd l} t          j        dddddd| j                  t          j        ddddd	d	d
| j                  t          j        dddddd| j                  g}|D ]F}t          j        |t          j        dd                    }|                                |k    sJ Gd S )Nr   r   r   r   i'           ;   i?B i  rf   rc   rd   r   )	rB   r   r   rj   r   r#   r$   ri   r'   )r   
timestampsr   r   s       r2   test_timestamp_no_overflowr     s    
KKK 	!Q1a48<<<$BBF48LLL$1aAdh???J
   Ibr|DU;;;<<<wwyyB r4   c                      t          j        d           t          j        dgt          j        dd                    } t          | d                   dk    sJ d S )Nr   r   r   z+02:00rd   z1970-01-01 02:00:00+02:00)rB   r   r#   rO   ri   rv   )rQ   s    r2   !test_timestamp_fixed_offset_printr     sW    

(A3SX666
7
7Cs1v;;5555555r4   c                     t          j        ddgd          } g d}t          |          D ]\  }}d| d}t          j        |                     |                    }t          j        d	          }t          |d
                                         t
          j                  sJ |d
                                         |k    sJ |d
         j	        d|d
z   z  z  |
                                dz  k    sJ d S )Nr        qaztimedelta64[ns]r   )rf   r   r   ztimedelta64[r     secondsr   r       eA)r6   rO   r   r#   r   rj   	timedeltar&   r'   r   total_seconds)rQ   r   r   r   r   r   r   s          r2   test_durationr    s   
(A}%->
?
?
?CEU## 0 04&t&&&HSZZ..//	%e444)A,,,..0BCCCCC|!!##x////!"TAaC[0&&((3./ / / / /0 0r4   c                     dd l } t          j        ddgt          j        d                    }|                     d          }t          |d                                         | j                  sJ |d                                         |k    sJ |d         j        |j        k    sJ t          j        dgt          j        d                    }|d                                         |                     dd          k    sJ d S )	Nr   r   r   r   z1 hourr   r   )r   )r   r#   rO   duration	Timedeltar&   r'   r   )r   rQ   r   s      r2   test_duration_nanos_pandasr    s    
(A}%BK,=,=
>
>
>C||H%%Hc!fllnnbl33333q6<<>>X%%%%q6<8>)))) (&'bk$.?.?
@
@
@Cq6<<>>R\\*<4\HHHHHHHHr4   c                  d   t          j        ddgt          j        d                    } t          j        d          }t          | d                                         t          j                  sJ | d                                         |k    sJ | d         j        |                                dz  k    sJ t          j        dgt          j        d          	          } t          j
        t                    5  | d                                          d d d            d S # 1 swxY w Y   d S )
Nr   r   r   r   r   r   r   r   r   )r#   rO   r  rj   r  r&   r'   r   r  rB   rC   rD   )rQ   r   s     r2   test_duration_nanos_nopandasr	    sH   
(A}%r{4'8'8
9
9C!%000Hc!fllnnh&899999q6<<>>X%%%%q6<81133c99999 (&'bk$.?.?
@
@
@C	z	"	"  A                 s   =D%%D),D)c                  *   t          j        g d          } t          j        | g          }t          |d                                         t           j                  sJ |d                                         | k    sJ |d         j        | k    sJ d S )N)ii  ir   )r#   MonthDayNanorO   r&   r'   r   )triplerQ   s     r2   test_month_day_nano_intervalr    s    _///00F
(F8

Cc!fllnnbo66666q6<<>>V####q6<6!!!!!!r4   r   u   mañana)r   
scalar_typc                    t          j        | |          }t          ||          sJ |                                | k    sJ |                                dk    sJ t	          |           t	          |          v sJ t          |          t          |           k    sJ |                                }t          |t           j                  sJ |                                | 	                                k    sJ d S )Nr   rM   )
r#   r$   r&   r'   rh   rv   	as_bufferBuffer
to_pybytesencode)r   r   r  r   bufs        r2   test_stringr    s     		%b!!!Aa$$$$$77997799####;;$q''!!!!q66SZZ
++--Cc29%%%%%>>u||~~------r4   )s   foos   barr4   Nc                    t          j        | |          }t          ||          sJ |                                | k    sJ t	          |          t	          |           k    sJ t          |           t          |          v sJ |                                | k    sJ |dk    sJ |                                }| G|J t          j        t                    5  t          |           d d d            d S # 1 swxY w Y   d S |                                | k    sJ t          |t           j                  sJ t          |          | k    sJ t          |          }|                                | k    sJ |j        dk    sJ |j        dk    sJ |j        dk    sJ |j        t'          |           fk    sJ |j        dk    sJ d S )Nr   s   xxxxxr   r   )r   )r#   r$   r&   r'   rv   rh   r  rB   rC   rD   
memoryviewr  r  bytestobytesformatitemsizendimshaperX   strides)r   r   r  r   r  memviews         r2   test_binaryr   .  s!    		%b!!!Aa$$$$$7799q66SZZ;;$q''!!!!7799====
++--C}{{{]:&& 	 	qMMM	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 ~~5((((#ry)))))Qxx5    Q--  E))))~$$$$1$$$$|q    }U----$&&&&&&s   C77C;>C;c                     t          j        dt          j        d                    } t          | t           j                  sJ |                                 dk    sJ t          |           dk    sJ t          j        t           j	                  5  t          j        dt          j        d                     d d d            d S # 1 swxY w Y   d S )Ns   foofr   r   s   foof5)
r#   r$   binaryr&   FixedSizeBinaryScalarr'   r  rB   rC   r   rE   s    r2   test_fixed_size_binaryr$  Q  s    
	'	!---Aa122222779988w	r	'	' / /
	(1..../ / / / / / / / / / / / / / / / / /s   )CCC)r   r   c                 p   dd g}t          j        ||           }|j        | k    sJ t          |          dk    sJ t	          |j        t           j                  sJ |j                                        |k    sJ t	          ||          sJ t          |          t          |          v sJ |	                                |k    sJ |d         	                                dk    sJ |d         	                                J |d         |d         k    sJ |d         |d         k    sJ t          j        t                    5  |d          d d d            n# 1 swxY w Y   t          j        t                    5  |d          d d d            n# 1 swxY w Y   t	          |t                    sJ d S )	Nr   r   r   r   r   r	   r   )r#   r$   r   rX   r&   rY   r   	to_pylistrh   r'   rB   rC   
IndexErrorr   )r   r   rR   r   s       r2   	test_listr)  [  s    
A
	!"A6R<<<<q66Q;;;;ah)))))81$$$$a77d1gg7799>>>>Q4::<<5    Q4::<<R5AaD====R5AaD====	z	"	"  	"              	z	"	"  	!              a"""""""s$   	EE"E?	FFFr   c                     t          j        t          j        g dt          j                              |           }| %t          j        t          j                              } |j        | k    sJ |                                g dk    sJ d S )Nr   r   r   )r#   r$   r6   rO   r   list_r   r'   r   r   s     r2   test_list_from_numpyr-  v  s}     		"(999BHJJ777bAAAA	zXbhjj!!6R<<<<7799			!!!!!!r4   factoryc                 T   dd l }t          j        |                    g d                    }|                                g dk    sJ t
          j        dfdt
          j        g | t          j                              fdt
          j        g | t          j                              fdt
          j        g | t          j        d                    fdt
          j        g | t          j	                              ft          j        d          t
          j        g | t          j        d	d
                    fg}|D ]j\  }}t          j        t          t           f          5  t          j        ||           d d d            n# 1 swxY w Y   t          j        ||d          }kd S )Nr   r   rP   r   s   stringr]   T0r   r   r   )r   r   )r   r#   r$   Seriesr'   r6   nanr"  utf8rt   r   r   r   rB   rC   rD   	TypeError)r.  r   r   casescaser   s         r2   test_list_from_pandasr7    s    
	"))III&&''A7799			!!!! 

BF	WWRY[[112
BF	WWRWYY//0
RV	ggbill334
,,-
/#

	'r11E1E)F)FGE  7 7b]J	233 	% 	%Id$$$$	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% Id6667 7s   "FF		F		c                     t          j        g dt          j        t          j                    d                    } t	          |           dk    sJ t          | t           j                  sJ t          |           dk    sJ |                                 g dk    sJ | d                                         dk    sJ | d                                         J | d         | d         k    sJ t          j
        t                    5  | d	          d d d            n# 1 swxY w Y   t          j
        t                    5  | d          d d d            d S # 1 swxY w Y   d S )
N)r   Nr   r   r   z+<pyarrow.FixedSizeListScalar: [1, None, 3]>r   r   r	   r   )r#   r$   r+  r   rX   r&   FixedSizeListScalarrh   r'   rB   rC   r(  rE   s    r2   test_fixed_size_listr;    s   
	,,,RXbhjj!%<%<===Aq66Q;;;;a/0000077CCCCC7799$$$$Q4::<<1Q4::<<R5AaD====	z	"	"  	"              	z	"	"  	!                 s$   	DD!$D!	EEEc                  	   t          j        t          j        dt          j                              t          j        dt          j                              g          } ddd}t          j        ||           }t          |          t          |                                          cxk    rddgk    sn J t          |                                          t          j        dt          j                              t          j        dt          j                              gk    sJ t          |	                                          dt          j        dt          j                              fdt          j        dt          j                              fgk    sJ d|v sJ d|v sJ d|vsJ d|vsJ |
                                |k    sJ t          |          t          |          k    sJ t          |
                                          t          |          k    sJ t          |          dk    sJ t          |d         t           j                  sJ t          |d         t           j                  sJ |d         
                                dk    sJ |d         
                                dk    sJ t          |t                     sJ t#          j        t&                    5  |d	          d d d            n# 1 swxY w Y   t          j        d |           }t          |          t          |                                          cxk    rddgk    sn J |
                                J d|v sJ d|v sJ t          |d         t           j                  sJ t          |d         t           j                  sJ t          |d         t           j                  sJ t          |d
         t           j                  sJ |d         j        du sJ |d         j        du sJ |d         
                                J |d         
                                J t          |t                     sJ d S )Nxyr   g      @r=  r>  r   zr   nonexistentr   F)r#   structfieldint16float32r$   rU   keysrY   itemsr'   rh   rX   r&   Int16ScalarFloatScalarr   rB   rC   KeyErrorr)   r   rR   r   s      r2   test_structrL    sg   	
bhjj!!
bjll## 
 
B
 cA
	!"A77d16688nn2222c
222222


	!"(**%%%
	#BJLL)))      		??	bi

+++,	bi"*,,///0     !8888!8888a<<<<A::::7799>>>>77d1gg		??d1gg%%%%q66Q;;;;afbn-----afbn-----S6<<>>QS6<<>>S    a!!!!!	x	 	   	-               		$R   A77d16688nn2222c
2222227799!8888!8888afbn-----afbn-----adBN+++++adBN+++++S6?e####S6?e####S6<<>>!!!S6<<>>!!!a!!!!!!!s   4	L		LLc            	         t          j        t          j        dt          j                              t          j        dt          j                              t          j        dt          j                              g          } t          j        g d|           }t          |          t          |                                          cxk    rg dk    sn J t          |          dk    sJ ||k    sJ t          |
                                          dt          j        dt          j                              fdt          j        dt          j                              fdt          j        dt          j                              fgk    sJ d|v sJ d|v sJ d	|vsJ d
|vsJ t          j        t                    5  |d          d d d            n# 1 swxY w Y   t          |d         t           j                  sJ |d                                         dk    sJ t          |d
         t           j                  sJ |d
                                         dk    sJ t          |d         t           j                  sJ |d                                         dk    sJ t          |d         t           j                  sJ |d                                         dk    sJ dt'          |          v sJ t          j        t(          d          5  |                                 d d d            d S # 1 swxY w Y   d S )Nr=  r>  ))r=  r   )r>         @)r=  r   r   )r=  r>  r=  r   r   rN  r@  r   r   zpyarrow.StructScalarzduplicate field namesr>   )r#   rB  rC  rD  rE  r   r$   rU   rF  rX   rG  rB   rC   rJ  r&   rI  r'   rH  r   rh   rD   r,  s     r2   test_struct_duplicate_fieldsrO    su   	
bhjj!!
bjll##
bhjj!! 
 
B
 		222<<<A77d16688nn7777777777q66Q;;;;6666		??	bi28::&&'	biRZ\\**+	bi28::&&'     !8888!8888a<<<<A:::: 
x	 	   	#               afbn-----S6<<>>S     adBN+++++Q4::<<1adBN+++++Q4::<<3adBN+++++Q4::<<1!T!WW,,,,	z)@	A	A	A  				                 s$   	GG!GL==MMc                    t          j        t          j                    t          j                              }ddg}t          j        ||          }t          |          dk    sJ t          |t           j                  sJ t          |j        t           j	                  sJ t          |          dk    sJ |j                                        dddd	ddgk    sJ t          ||          D ]\  }}||k    sJ t          j        d |          D ]}|                                |k    sJ |d         t          j        d	t          j                              t          j        dt          j                              fk    sJ |d
         |d         k    sJ |d         |d         k    sJ |d	         t          j        dt          j                              k    sJ t          j        t                     5  |d          d d d            n# 1 swxY w Y   t          j        t                     5  |d          d d d            n# 1 swxY w Y   t          j        t"                    5  |d          d d d            n# 1 swxY w Y   |                     |                     |                    }|                    |          sJ |                    d          dddk    sJ t          |t*                    sJ d S )Nr   r   r   r   z)<pyarrow.MapScalar: [('a', 1), ('b', 2)]>r   r   )keyr   r   r	   r&  r   r   fake_keystrictmaps_as_pydictsr   )r#   map_r   r   r$   rX   r&   	MapScalarrY   r   rh   r'  zipr'   rB   rC   r(  rJ  r*   r+   r,   r   )r/   r   rR   r   r   j_r0   s           r2   test_mapr[    s   	bgii	(	(B	8A
	!"Aq66Q;;;;a&&&&&ah)))))77AAAAA8a  a  $     Aq		  1Avvvvv Yt"%%%  7799>>>>Q4
	#BIKK(((
	!"'))$$$     R5AaD====R5AaD====S6RYqrwyy1111111	z	"	"  	"              	z	"	"  	!              	x	 	   	*               ""=#6#6q#9#9::H??17787,,aa0@0@@@@@a!!!!!!!s6   ?	HHH8	III1	JJ
J
c                     t          j        t          j                    t          j                              } ddg}t          j        ||           }|                    d           |k    sJ t          j        t                    5  |                    d          sJ 	 d d d            n# 1 swxY w Y   t          j	        d          5  |                    d          d	d
ik    sJ 	 d d d            d S # 1 swxY w Y   d S )Nr   )r   r   r   rT  rS  z1Encountered key 'a' which was already encounteredr>   lossyr   r   )
r#   rV  r   r   r$   r'   rB   rC   rJ  warnsrK  s      r2   test_map_duplicate_fieldsr_  @  s~   	bgii	(	(B	8A
	!"A7747((A----	x	 	  1 1wwxw0000001 1 1 1 1 1 1 1 1 1 1 1 1 1 1 
O	P	P	P < <wwww//C8;;;;;< < < < < < < < < < < < < < < < < <s$   B--B14B1C::C>C>c                    t          j        g d          }t          j        g d          }t           j                            ||          }g d}|                                |k    sJ t          t          ||                    D ]\  }\  }}||         }|                                |k    sJ |j                                        |k    sJ |j	        
                    |          sJ |j        
                    |          sJ |                     |                     |                    }	|	
                    |          sJ d S )N)r   Nr   r   r   N)r   barbaz)rb  Nra  rb  r   N)r#   rO   DictionaryArrayfrom_arraysr'  r   rX  r'   r   indexr,   
dictionaryr*   r+   )
r/   indicesrf  rQ   r   rY  r   rR   r   r0   s
             r2   test_dictionaryrh  N  sH   h///00G///00J


(
(*
=
=C777H==??h&&&&s7H5566 	" 	"	6AqFwwyyA~~~~w}}!####w~~a     |"":..... &&}':':1'='=>>q!!!!!!	" 	"r4   c            	         g d} g d}t           j                            | |          }|d         }t          |t           j                  sJ t          |j        t           j                  sJ |j        t          j        |          d         k    sJ |                                dk    sJ |d         }t          |j        t           j                  sJ |                                J t          j
        t                    5  t          j        dt          j        t          j                    t          j                                         d d d            d S # 1 swxY w Y   d S )N)r   r   r   r   r   )r   r   r   Nr   r   r   r   )r#   RunEndEncodedArrayrd  r&   RunEndEncodedScalarr   r   rO   r'   rB   rC   NotImplementedErrorr$   run_end_encodedr   )run_endsrY   rQ   r$   s       r2   test_run_end_encodedro  b  s   !!!HF


+
+Hf
=
=CVFfb455555flBN33333<28F++A.....<<>>Q WFflBN33333<<>>!!! 
*	+	+ A A
	!R'

BHJJ??@@@A A A A A A A A A A A A A A A A A As   AEE!$E!c           	      H   t           j                            t          j        g dt          j                              t          j        g d          t          j        g d          g          }|D ]}|                    d           t          |t           j                  sJ |j        	                    |j                  sJ |j
        du sJ t          j        t           j                  5  |                     |                     |                     d d d            n# 1 swxY w Y   |d         j        dk    sJ |d                                         dk    sJ |d	         j        dk    sJ |d	                                         d
k    sJ |d         j        d	k    sJ |d                                         dk    sJ |d         j        d	k    sJ |d                                         dk    sJ t           j                            t          j        g dd          t          j        g dd          t          j        g dd          t          j        g dd          g          }|D ]}|                    d           t          |t           j                  sJ |j        	                    |j                  sJ |j
        du sJ t          j        t           j                  5  |                     |                     |                     d d d            n# 1 swxY w Y   |d         j        dk    sJ |d                                         dk    sJ |d         j        d	k    sJ |d                                         dk    sJ d S )N)r   r   r   r   r   rl   r   Tr    r   r   r   r   r   r   r   )r   r   r   r   r   r   r   r   )r   r   r   r   r   r   r   r   )   a   b   c   dr"  r   r   )r   value_offsetschildrenrq  r   )r#   
UnionArrayfrom_sparserO   r   r%   r&   UnionScalarr   r,   r)   rB   rC   ArrowNotImplementedErrorr*   r+   	type_coder'   
from_dense)r/   rQ   r   s      r2   
test_unionr}  w  s   
-
#
#
BGII...H)))**H\\\""	
 C  8 8	


!R^,,,,,v}}SX&&&&&zT!!!!]2677 	8 	8 3 3A 6 6777	8 	8 	8 	8 	8 	8 	8 	8 	8 	8 	8 	8 	8 	8 	8 q6q    q6<<>>S    q6q    q6<<>>S    q6q    q6<<>>Qq6q    q6<<>>Q -
"
"h,,,6:::h4447CCCH---H===HYYYW---
 #  C  8 8	


!R^,,,,,v}}SX&&&&&zT!!!!]2677 	8 	8 3 3A 6 6777	8 	8 	8 	8 	8 	8 	8 	8 	8 	8 	8 	8 	8 	8 	8 q6q    q6<<>>T!!!!q6q    q6<<>>Qs$   2)D''D+	.D+	;)L00L4	7L4	c                     t          j        dgt          j        t          j                    t          j                                                                        dgk    sJ t          j        dgt          j        t          j        dt          j                    d          t          j        dt          j                                                                                  dgk    sJ dS )z{
    Check we can call `MapScalar.as_py` with custom field names

    See https://github.com/apache/arrow/issues/36809
    )r   ra  
custom_keyF)nullablecustom_valueN)r#   r$   rV  r   r'   rC  rJ   r4   r2   ,test_map_scalar_as_py_with_custom_field_namer    s     9	
IKKIKK	
 	
  egg.!" " " " 9	
H\29;;???H^RY[[11	
 	
  egg.!" " " " " "r4   c                     t          j        t          j        dt          j        t          j                    t          j                                        t          j        dt          j        t          j        t          j                    t          j                                                  g          } ddiddiddigd	}t          j        || 
          }|                    d          |k    sJ d S )Nr=  r>  r   r   r   r   rm   r   r?  r   rS  rT  	r#   rB  rC  rV  r   r   r+  r$   r'   rK  s      r2   #test_map_types_with_maps_as_pydictsr    s    	
bgbikk27995566
bhrwry{{BGII>>??@@ 
 
B
 AhsAha122A
	!"A7787,,111111r4   c                     t          j        t          j        dt          j        t          j                    t          j        t          j                    t          j                                                  t          j        dt          j        t          j        t          j                    t          j        t          j                    t          j                                                            g          } dddiidddiid	d
diigd}t          j        ||           }|                    d          |k    sJ d S )Nr=  r>  r   r|   r   r   2r   rm   3r   r?  r   rS  rT  r  rK  s      r2   *test_nested_map_types_with_maps_as_pydictsr    s    	HS"'")++rwry{{BGII/N/NOOPPHRXbgbikk2729;;		3R3RSSTT 	

 
B S!HocC8_sS!Ho$FGGA
	!"A7787,,111111r4   c            
      ,   t          j        t          j        dt          j        t          j                    t          j                                        g          } di i}t          j        ||           }|                    d          |k    sJ d S )Nr=  r   rS  rT  )r#   rB  rC  rV  r   r$   r'   )map_typerR   r   s      r2   !test_map_scalar_with_empty_valuesr    s    yHS"'")++ry{{;;<<	
 H 
b	A
	!(###A7787,,111111r4   )rj   r   rB   r-   collections.abcr   r   numpyr6   ImportErrorpyarrowr#   pyarrow.computecomputer@   markparametrizeru   r   r   
Int8Scalarr}   UInt8ScalarrD  rH  uint16UInt16Scalarr   Int32Scalarr   UInt32Scalarr   uint64UInt64Scalarr7   r8   r   rE  rI  r   r   r   StringScalarBinaryScalarlarge_stringLargeStringScalarlarge_binaryLargeBinaryScalarr   StringViewScalarbinary_viewBinaryViewScalarr"  r#  
ListScalar
large_listLargeListScalarr+  r:  	list_viewListViewScalarlarge_list_viewLargeListViewScalarr   todayDate32Scalarr   Date64ScalarnowTimestampScalarr   replacer   Time32ScalarTime64Scalarr  DurationScalarr  MonthDayNanoIntervalScalarStructScalarrV  r   rW  r3   r9   rF   rK   rS   r[   ra   timezone_dataro   rz   r   r   r   r   r   r   r   r   ri   r  month_day_nano_intervalDataTyper   r   r   r   r   r   r   r   nopandasr   r   r   r  r  r	  r  r  r   r$  r)  r-  r7  r;  rL  rO  r[  r_  rh  ro  r}  r  r  r  r  rJ   r4   r2   <module>r     s  $     - - - - - - - -   	BBB           111 *4
D""#*4	4!"*4 bn*4 r~	*4
 		2=!*4 

BN#*4 

BN#*4 		R_%*4 

BN#*4 		R_%*4 

BN#*4 		R_%*4 	*"*,,*+*4 	$ *4 	*"*,,'*4  W_WtR%89!*4" W_ABB	2 #*4& tR_%'*4( tR_%)*4* OBO%%r';<+*4, OBO%%r';<-*4. NBN$$b&9:/*40 NBN$$b&9:1*42 YRYq\\2343*44 YYbm$5*46 \\=2=++R-?@7*48 __hbhwrwyy!,,b.DE9*4: YYWRWYY''):;;*4< \\%2%gbgii00"2HI=*4> ]D"/2?*4@ ]IBIKK9A*4B dB$67C*4D !!##+++::IBIcNN_E*4H !!##T2?;I*4J XQr'89K*4L R____%%t"$M*4P Aq6D"/2Q*4R 727929;;		::BLIS*4 * *V W* *V@   <    
  4& & &   	H 	H 	H  2  >  $  $" " "* * *" " " ';/		#
IBIcNN	929S>>		$
IBIdOO	929T??		$
IBIdOO	929T??		$
IBIdOO	929T??		
IBIKK	929;;		
IBIKK	929;;T
LBL	<2<D
KBK	;2;t++--.	%2%''(52  8&2; & & &9 8&' ' ' O O O& & && & & ibikk :;;D D <;D > > >6   0  6 6 6 0 0 0 
I 
I 
I 
 
 
" " " 5)"455-RY[["/"R_,-R^r*+0  

. 
.  65
. "="="=>>-RY[["/"R_,-R^r*+0  
' '  ?>':/ / / RXibikkBM*R]929;;!34R\)")++ 12R		$$b&<=	+  # # #* BHXRXZZBM("(**BLBxrxzz""   " "  " HML	%  7 7  7.   1" 1" 1"h( ( (V*" *" *"Z< < <" " "(A A A*. . .b" " ".	2 	2 	22 2 2 
2 
2 
2 
2 
2s    ))