
    gl                        d dl Z d dlZd dlZd dlZ	 d dlZd dlZd dl	m
Z ej                  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j0                         ej2                  fd ej4                         ej6                  fd ej8                         ej                  fd ej:                         ej<                  fddej>                  fd ej@                         ejB                  f ejD                  d      dejF                  f ejD                  d	      dejH                  fd
dejJ                  fddejL                  fd ejN                         ejP                  fd ejR                         ejT                  fd ejV                         ejX                  fd ejZ                         ej\                  fd ej^                  d      ej`                  fg ddejb                  fg d ejd                   ej                                ejf                  fg d ejh                   ej                          d      ejj                  fg d ejl                   ej                                ejn                  fg d ejp                   ej                                ejr                  fe jt                  jw                         dejx                  fe jt                  jw                          ejz                         ej|                  fe j                   j                         dej                  fe j                   j                         j                         j                  d        ej                  d      ej                  fe j                   j                         j                         dej                  f e j                  d      dej                  f ej                  g d      dej                  fdddgddej                  fddg ej                   ej                          ej                                ej                  f      d        ZNej                  j                  d        ZOd  ZPd! ZQd" ZRd# ZSd$ ZTej                  j                  d%        ZVd& ZWd' ZXd( ZYd) ZZd* Z[d+ Z\d, Z]ej                  j                  d-d.gd ej                  d      fd/ ej                  d      fd ej                  d      fd ej                  d0      fd/ ej                  d0      fd ej                  d0      fd ej                  d1      fd2 ej                  d1      fd ej                  d1      fd ej                  d3      fd2 ej                  d3      fd ej                  d3      fd ej                         fd/ ej                         fd ej                         fd ejz                         fd2 ejz                         fd ejz                         fd ej                  d3      fd2 ej                  d3      fd ej                  d3      fd ej                  d3      fd2 ej                  d3      fd ej                  d3      fd4 ej                         fd ej                         fg      d.ej                  fd5       Zdd6 Zeej                  j                  d7        Zfd8 Zgd9 Zhej                  j                  d: ej                          ejz                         g      d;        Ziej                  j                  d<        Zkej                  j                  d=        Zmd> Znd? Zoej                  j                  d@        Zpej                  j                  dA        Zqej                  j                  dB        ZrdC Zsej                  j                  d-dDdEg      ej                  j                  dF ej                         ejJ                  f ejN                         ejP                  f ejV                         ejX                  fg      dG               Ztej                  j                  d-dHdIg      ej                  j                  dF ej^                         ejL                  f ejR                         ejT                  f ejZ                         ej\                  fg      dJ               ZudK Zvej                  j                  dL ejh                   ej                               ejb                  f ejd                   ej                               ejf                  f ejl                   ej                               ejn                  f ejp                   ej                               ejr                  fg      dM        Zwej                  j                  ej                  j                  dN ejh                   ej8                                ejd                   ej8                                ejl                   ej8                                ejp                   ej8                               dg      dO               Zxej                  j                  ej                  j                  dPejh                  ejd                  ejl                  ejp                  g      dQ               ZydR ZzdS Z{dT Z|dU Z}dV Z~dW ZdX ZdY Zy# e$ r dZY w xY w)Z    N)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                  | |      }|j                          |j                  d       t        ||      sJ |j	                         | k(  sJ |t        j                  | |      k(  sJ || k7  sJ |dk7  sJ t        |      t        |      k(  sJ |j                  du sJ |d k7  sJ t        j                  d |j                        }|j                  du sJ |j	                         J |t        j                  | |      k7  sJ |j                  |j                  |            }|j                  |      sJ t        j                  |      } |       J ~ |       J y )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          O/var/www/openai/venv/lib/python3.12/site-packages/pyarrow/tests/test_scalars.pytest_basicsr0       sa   V 			%b!AJJLJJDJa779		%b))))::;;7d1g::99
		$QVV$A::779		%b)))) ""=#6#6q#9:H88H 
QB4	4<<    c                 V   t        j                  d      t        j                         t        j                  }}}t        j                  ||      }|j                          |j                  d       t        ||      sJ |j                         |k(  sJ |t        j                  ||      k(  sJ ||k7  sJ |dk7  sJ t        |      t        |      k(  sJ |j                  du sJ |d k7  sJ t        j                  d |j                        }|j                  du sJ |j                         J |t        j                  ||      k7  sJ | j                  | j                  |            }|j                  |      sJ t        j                  |      } |       J ~ |       J y )Nr   r   Tr   r   F)npfloat16r    HalfFloatScalarr!   r"   r#   r$   r%   r&   r   r'   r(   r)   r*   r+   )r,   r   r   r   r   r-   r.   s          r/   test_basics_np_requiredr6   j   s   zz#

b6H6Hu2E
		%b!AJJLJJDJa779		%b))))::;;7d1g::99
		$QVV$A::779		%b)))) ""=#6#6q#9:H88H 
QB4	4<<r1   c                  "   t        j                  t        j                  d      t        j                         d      } | j                          t        j                  t        d      5  | j                  d       d d d        y # 1 sw Y   y xY w)N   Fsafez(string scalar contains invalid UTF8 datamatchTr   )	pccastr    r!   r
   r"   pytestraises
ValueErrorr   s    r/   test_invalid_scalarrC      s_    
		'"BIIKe<AJJL	zG
I	



I 
I 
Is   )BBc                      t        j                  t              5  t        j                          d d d        y # 1 sw Y   y xY w)N)r?   r@   RuntimeErrorr    
NullScalar r1   r/   test_null_singletonrH      s#    	|	$
 
%	$	$s	   8Ac                 ~   t        j                  d       }|t         j                  u sJ |j                         J |dk7  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                         (J  | j                  | j                  |            }|j                  |      sJ t        j                  |      } |       J ~ |       J y )N	somethingTr   F)r   )
r    r!   NAr$   arrayr'   r(   r)   r*   r+   )r,   nullarrvr-   r.   s         r/   
test_nullsrP      s.   99T?D255==::<;BIIdO#,,,AI%55BEE>>55
((D$<
 CBEEzzwwy    
 ""=#6#6t#<=H??4    
T	B44r1   c                      t        t        d            } t        j                  | | z         }t	        |      }t        |t              sJ t        |      dk(  sJ y )Ni  )listranger    rL   setr#   len)valuesrN   set_from_arrays      r/   test_hashingrX      sN    %*F
((6F?
#CXNnc***~#%%%r1   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 y )Nr   r         r   r   )r    rL   r%   )r   r   hash1hash2s       r/   test_hashing_struct_scalarr^      sk    
C8c1X&#q4(89:A
C8T"#$A1JE1JEE>>r1   c            	         t        t        j                  d      j                  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      j                  t        j                  d            d            }|dk(  sJ y )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!   r>   	timestampdatetimer=   assume_timezoner   r   cds       r/   test_timestamp_scalarrl      s    RYY|$))",,s*;<=ABBBBRYYx((q!42<<PU;VWXAGGGGRYYx((q!42<<;MNOAIIIIR
		,$$R\\#%679KM 	NAGGGGr1   c                     t        j                  d      } t        j                  d      }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 |j                         du sJ | j                         du sJ y )NFTz<pyarrow.BooleanScalar: True>Truez<pyarrow.BooleanScalar: False>False)r    r!   r#   BooleanScalarre   strr$   )falsetrues     r/   	test_boolrt      s    IIeE99T?DeR--...dB,,---:8888t9;::::u:   ::<4;;=E!!!r1   c                  Z   t        j                  d      } t        | t         j                        sJ t	        |       dk(  sJ t        |       dk(  sJ | j                         dk(  sJ t        j                  t              5  t        j                  dd       d d d        t        j                  d      } t        | t         j                        sJ t	        |       dk(  sJ t        |       d	k(  sJ | j                         dk(  sJ t        t        j                  t        j                  d
      d      } t        | t         j                        sJ t	        |       dt        j                  d
      dk(  sJ t        |       dk(  sJ | j                         d
k(  sJ y y # 1 sw Y   
xY w)Nr   z<pyarrow.Int64Scalar: 1>1r   uint8r         ?z<pyarrow.DoubleScalar: 1.5>z1.5g      ?r4   z<pyarrow.HalfFloatScalar: >z0.5)r    r!   r#   Int64Scalarre   rq   r$   r?   r@   OverflowErrorDoubleScalarr3   r4   r5   rB   s    r/   test_numericsr}      s]   
		!Aa(((70000q6S==779>>	}	%
		"7# 
& 			#Aa)))73333q6U??779	~IIbjjoI6!R//000 Aw6rzz#6IKKKK1vwwyC  
&	%s    F  F*c                  x   t        j                  d      } t        j                  |       }t	        |t        j
                        sJ |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        t        j                  t        j                        5  t        j                  | t        j                  dd             d d d        t        j                  | t        j                  dd            }t	        |t        j
                        sJ |j                         | k(  sJ y # 1 sw Y   xY w# 1 sw Y   sxY w)Nr	   r   r   1.1234scaler   r   )decimalDecimalr    r!   r#   Decimal128Scalarr$   r   
decimal128r?   r@   ArrowInvalidrO   r   s     r/   test_decimal128r      s!    A
		!Aa,,---779>>66R]]1a((((!A	r	'
		!"--34 
(	r	'
		!"--34 
( 			!"--34Aa,,---779>> 
(	'	'	'   9-F$-F0$F-0F9c                  x   t        j                  d      } t        j                  |       }t	        |t        j
                        sJ |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        t        j                  t        j                        5  t        j                  | t        j                  dd             d d d        t        j                  | t        j                  dd            }t	        |t        j
                        sJ |j                         | k(  sJ y # 1 sw Y   xY w# 1 sw Y   sxY w)	Nz,1234567890123456789012345678901234567890.123+   r   r   r   r   r   r   )r   r   r    r!   r#   Decimal256Scalarr$   r   
decimal256r?   r@   r   r   s     r/   test_decimal256r     s"   FGA
		!Aa,,---779>>66R]]2q))))!A	r	'
		!"--34 
(	r	'
		!"--34 
( 			!"--34Aa,,---779>> 
(	'	'	'r   c                  $   t        j                  ddd      } t        j                  ddd      }t        j                         t        j                         fD ]7  }| |fD ].  }t        j
                  ||      }|j                         |k(  r.J  9 y )Ni  r   i  r   )rg   dater    date32date64r!   r$   )d1d2r   rk   r   s        r/   	test_dater      sq    	tQ	"B	tQ	"Byy{BIIK(bA		!"%A779>!>  )r1   c                  V   t        j                  t        j                  ddd      t        j                  d            } t        j                  ddd      }t        j
                         t        j                         fD ](  }| j                  |      }|j                         |k(  r(J  y )Ni  r   rc   r   )	r    r!   rg   rf   r   r   r   r>   r$   )r!   expectedr   results       r/   test_date_castr   +  sx    YYx((q!42<<;MNF}}T1a(Hyy{BIIK(R||~))) )r1   c                  x   t        j                  dd      } t        j                  dd      }t        j                  d      t        j                  d      t        j                  d      t        j                  d      g}|D ]7  }| |fD ].  }t        j
                  ||      }|j                         |k(  r.J  9 y )	N   r      r   msrc   nsr   )rg   timer    time32time64r!   r$   )t1t2typesr   tr   s         r/   test_time_from_datetime_timer   4  s    	r1	B	r1	BYYs^RYYt_biioryyOEbA		!"%A779>!>  r1   r   	time_typei   @r   rc   l            r   )r   r   c                 x    t        j                  | |      }|j                  d       |j                  | k(  sJ y )Nr   Tr   )r    r!   r"   r   )r   r   time_scalars      r/   test_temporal_valuesr   ?  s9    : ))E	2Kd#%%%r1   c                     t        j                  dd      } | j                  d      t        j                  dd      k(  sJ | j                  d      t        j                  dd      k(  sJ | j                  d      t        j                  dd      k(  sJ t        j                  t
              5  t        j                  d      j                  d	       d d d        y # 1 sw Y   y xY w)
Nr   int8r   int64uint32r
   5fooint32)r    r!   r>   r?   r@   rA   )vals    r/   	test_castr   a  s    
))AF
#C88G		!' ::::88H18!<<<<88H3X!>>>>	z	"
		%g& 
#	"	"s   2%C  C)c            	      P   t        j                  d       dd l} t        j                  dddddd| j                        }t        j                  |t        j                  dd      	      }|j                  t        j                               t        j                  d
      k(  sJ y )Npytzr     r   tzinfor   r`   ra   r   z2000-01-01 00:00:00.000000000Z)
r?   importorskipr   rg   utcr    r!   rf   r>   r
   )r   dttss      r/   test_cast_timestamp_to_stringr   j  sw     			4Aq!Qtxx	@B	2BLL%8	9B77299;299-M#NNNNr1   c                     t        j                  dt        j                               } | j                  t        j                         d      }t        j                  dt        j                               }||k(  sJ t        j                  t         j                        5  | j                  t        j                                d d d        y # 1 sw Y   y xY w)Nrx   r   Fr9   r   )r    r!   float64r>   r   r?   r@   r   )float_scalarunsafe_castexpected_unsafe_casts      r/   test_cast_float_to_intr   t  s    99Srzz|4L##BHHJU#;K99QRXXZ8....	r	'"((*% 
(	'	'   "$CCc                     t        j                  dt        j                               } | j                  t        j                         d      }t        j                  dt        j                               }||k(  sJ t        j                  t         j                        5  | j                  t        j                                d d d        y # 1 sw Y   y xY w)Nl   r   Fr9   g      PC)r    r!   r   r>   r   r?   r@   r   )
int_scalarr   r   s      r/   test_cast_int_to_floatr   ~  s    ,288:>J//"**,U/;K99%8rzz|L....	r	'

% 
(	'	'r   typc                     t        j                  d      }|j                  |       }|t        j                  t        j                  ddd      |       k(  sJ y )Nz
2021-01-01i  r   r   )r    r!   r>   rg   r   )r   r!   r   s      r/   test_cast_string_to_dater     sD    YY|$F[[FRYYx}}T1a8sCCCCr1   c                     dd l } | j                  dd      j                  }g d}t        |      D ]W  \  }}dj	                  |      }t
        j                  j                  |j                  |            }| j                  d      }|d   j                         |k(  sJ |d   j                  d|z  z  |j                  k(  sJ d}t        j                  ||	      }	dj	                  |      }t
        j                  j                  |j                  |      |	
      }| j                  d      j                  d      j                  |      }|d   j                         |k(  sJ |d   j                  d|z  z  |j                  k(  rXJ  y )Nr   z2000-01-01 12:34:56
   )periods)r   rc   r   r   zdatetime64[{}]  rd   ra   r   r   )pandas
date_rangerV   	enumerateformatr    Arrayfrom_pandasastype	Timestampr$   r   rf   tz_localize
tz_convert)
pdrN   unitsiunitdtype	arrow_arrr   rb   
arrow_types
             r/   test_timestampr     s`   
---r-
:
A
AC#EU#4 ''-HH((E):;	<< 56|!!#x///|!!D!G+x~~===\\$2.
 ''-HH((E):(L	LL!67 ['Z^ 	 |!!#x///|!!D!G+x~~===% $r1   c                  *   t        j                  d       dd l} d}t        j                  d|      }t        j
                  d|      }| j                  |      }t        j                  dd	d	d	|
      }|j                  |      }|j                         }||k(  sJ |j                  dk(  sJ |j                  dk(  sJ t        j
                  d|      }t        j                  t              5  |j                          d d d        y # 1 sw Y   y xY w)Nr   r   rd   r   ra   l   $=3ir   r   r   )r   r   i         $=3i)r?   r   r   r    rf   r!   timezonerg   fromutcr$   yearhourr@   rA   )r   rb   r   r   r   r   r   s          r/   test_timestamp_nanos_nopandasr     s     	B	dr	"B 			+"5A]]2F  q!6JH~~h'HWWYFX;;$;;" 			$2.A	z	"		 
#	"	"s   /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 ]C  }t        j                  |t        j                  dd            }|j                         |k(  rCJ  y )Nr   r   r   r   i'           ;   i?B i  rc   r`   ra   r   )	r?   r   r   rg   r   r    r!   rf   r$   )r   
timestampsr   r   s       r/   test_timestamp_no_overflowr     s    
 	!Q1a488<$BBF488L$1aAdhh?J
 IIbr||DU;<wwyB r1   c                      t        j                  d       t        j                  dgt        j                  dd            } t        | d         dk(  sJ y )Nr   r   r   z+02:00ra   z1970-01-01 02:00:00+02:00)r?   r   r    rL   rf   rq   )rN   s    r/   !test_timestamp_fixed_offset_printr     sD    

((A3SX6
7Cs1v;5555r1   c                     t        j                  ddgd      } g d}t        |      D ]  \  }}dj                  |      }t	        j                  | j                  |            }t        j                  d      }t        |d	   j                         t        j                        sJ |d	   j                         |k(  sJ |d	   j                  d
|d	z   z  z  |j                         dz  k(  rJ  y )Nr        qaztimedelta64[ns]r   )rc   r   r   ztimedelta64[{}]  secondsr   r       eA)r3   rL   r   r   r    r   rg   	timedeltar#   r$   r   total_seconds)rN   r   r   r   r   r   r   s          r/   test_durationr     s    
((A}%->
?CEU#4!((.HHSZZ./	%%e4)A,,,.0B0BCCC|!!#x///!""TAaC[0&&(3./ 	0 / $r1   c                     dd l } t        j                  ddgt        j                  d            }| j	                  d      }t        |d   j                         | j                        sJ |d   j                         |k(  sJ |d   j                  |j                  k(  sJ t        j                  dgt        j                  d            }|d   j                         | j	                  dd      k(  sJ y )	Nr   r   r   r   z1 hourr   r   )r   )r   r    rL   duration	Timedeltar#   r$   r   )r   rN   r   s      r/   test_duration_nanos_pandasr     s    
((A}%BKK,=
>C||H%Hc!fllnbll333q6<<>X%%%q6<<8>>))) ((&'bkk$.?
@Cq6<<>R\\*<4\HHHHr1   c                  2   t        j                  ddgt        j                  d            } t        j                  d      }t        | d   j                         t        j                        sJ | d   j                         |k(  sJ | d   j                  |j                         dz  k(  sJ t        j                  dgt        j                  d      	      } t        j                  t              5  | d   j                          d d d        y # 1 sw Y   y xY w)
Nr   r   r   r   r   r   r   r   r   )r    rL   r   rg   r   r#   r$   r   r   r?   r@   rA   )rN   r   s     r/   test_duration_nanos_nopandasr    s    
((A}%r{{4'8
9C!!%0Hc!fllnh&8&8999q6<<>X%%%q6<<8113c9999 ((&'bkk$.?
@C	z	"A 
#	"	"s   0DDc                     t        j                  g d      } t        j                  | g      }t        |d   j	                         t         j                        sJ |d   j	                         | k(  sJ |d   j
                  | k(  sJ y )N)ii  ir   )r    MonthDayNanorL   r#   r$   r   )triplerN   s     r/   test_month_day_nano_intervalr    sm    __/0F
((F8
Cc!fllnboo666q6<<>V###q6<<6!!!r1   r   u   mañana)r   
scalar_typc                    t        j                  | |      }t        ||      sJ |j                         | k(  sJ |j                         dk7  sJ t	        |       t	        |      v sJ t        |      t        |       k(  sJ |j                         }t        |t         j                        sJ |j                         | j                         k(  sJ y )Nr   rJ   )
r    r!   r#   r$   re   rq   	as_bufferBuffer
to_pybytesencoder   r   r  r   bufs        r/   test_stringr    s     			%b!Aa$$$779779###;$q'!!!q6SZ
++-Cc299%%%>>u||~---r1   s   foos   barc                    t        j                  | |      }t        ||      sJ |j                         | k(  sJ t	        |      t	        |       k(  sJ t        |       t        |      v sJ |j                         | k(  sJ |dk7  sJ |j                         }t        |t         j                        sJ |j                         | k(  sJ y )Nr   s   xxxxx)	r    r!   r#   r$   rq   re   r	  r
  r  r  s        r/   test_binaryr  !  s     			%b!Aa$$$779q6SZ;$q'!!!779==
++-Cc299%%%>>u$$$r1   c                  ~   t        j                  dt        j                  d            } t        | t         j                        sJ | j                         dk(  sJ t        j                  t         j                        5  t        j                  dt        j                  d             d d d        y # 1 sw Y   y xY w)Ns   foofr   r   s   foof5)	r    r!   binaryr#   FixedSizeBinaryScalarr$   r?   r@   r   rB   s    r/   test_fixed_size_binaryr  5  sv    
		'		!-Aa11222779	r	'
		(1. 
(	'	's   ?+B33B<)r   r   c                    dd g}t        j                  ||       }|j                  | k(  sJ t        |      dk(  sJ t	        |j
                  t         j                        sJ |j
                  j                         |k(  sJ t	        ||      sJ t        |      t        |      v sJ |j                         |k(  sJ |d   j                         dk(  sJ |d   j                         J |d   |d   k(  sJ |d   |d   k(  sJ t        j                  t              5  |d    d d d        t        j                  t              5  |d    d d d        y # 1 sw Y   1xY w# 1 sw Y   y xY w)	Nr   r   r   r   r   r   r   )r    r!   r   rU   r#   rV   r   	to_pylistre   r$   r?   r@   
IndexError)r   r   rO   r   s       r/   	test_listr  >  sA    
A
		!"A66R<<q6Q;;ahh)))881$$$a7d1g779>>Q4::<5   Q4::<R5AaD==R5AaD==	z	"	" 
#	z	"	! 
#	" 
#	"	"	"s   EEEE(r   c                 &   t        j                  t        j                  g dt        j                               |       }| 't        j
                  t        j                               } |j                  | k(  sJ |j                         g dk(  sJ y )Nr   r   r   )r    r!   r3   rL   r   list_r   r$   r   r   s     r/   test_list_from_numpyr  X  sb     			"((9BHHJ7bAA	zXXbhhj!66R<<779	!!!r1   factoryc                 `   dd l }t        j                  |j                  g d            }|j	                         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 ]\  \  }}t        j                  t        t         f      5  t        j                  ||       d d d        t        j                  ||d      }^ y # 1 sw Y   $xY w)Nr   r   rM   r
   s   stringrZ   T0r   r   r   )r   r   )r   r    r!   Seriesr$   r3   nanr  utf8bool_r   r   r   r?   r@   rA   	TypeError)r  r   r   casescaser   s         r/   test_list_from_pandasr)  h  s1    
		"))I&'A779	!!! 

BFF	WRYY[12
BFF	WRWWY/0
RVV	gbiil34
,-
//#
	'r11E)FGE b]]J	23IId$ 4 IId6 33s   )F$$F-	c                  h   t        j                  g dt        j                  t        j                         d            } t	        |       dk(  sJ t        | t         j                        sJ t        |       dk(  sJ | j                         g dk(  sJ | d   j                         dk(  sJ | d   j                         J | d   | d   k(  sJ t        j                  t              5  | d	    d d d        t        j                  t              5  | d    d d d        y # 1 sw Y   1xY w# 1 sw Y   y xY w)
N)r   Nr   r   r   z+<pyarrow.FixedSizeListScalar: [1, None, 3]>r   r   r   r   )r    r!   r  r   rU   r#   FixedSizeListScalarre   r$   r?   r@   r  rB   s    r/   test_fixed_size_listr-    s    
		,RXXbhhj!%<=Aq6Q;;a//0007CCCC779$$$Q4::<1Q4::<R5AaD==	z	"	" 
#	z	"	! 
#	" 
#	"	"	"s   &DD(D%(D1c                  L   t        j                  t        j                  dt        j                               t        j                  dt        j                               g      } ddd}t        j
                  ||       }t        |      t        |j                               cxk(  rddgk(  sJ  J t        |j                               t        j
                  dt        j                               t        j
                  dt        j                               gk(  sJ t        |j                               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 |j                         |k(  sJ t        |      t        |      k7  sJ t        |j                               t        |      k(  sJ t        |      dk(  sJ t        |d   t         j                        sJ t        |d   t         j                        sJ |d   j                         dk(  sJ |d   j                         dk(  sJ t!        j"                  t$              5  |d	    d d d        t        j
                  d |       }t        |      t        |j                               cxk(  rddgk(  sJ  J |j                         J d|v sJ d|v 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                         J |d   j                         J y # 1 sw Y   xY w)Nxyr   g      @)r/  r0  r   zr   nonexistentF)r    structfieldint16float32r!   rR   keysrV   itemsr$   re   rU   r#   Int16ScalarFloatScalarr?   r@   KeyErrorr&   )r   rO   r   s      r/   test_structr<    s   	
bhhj!
bjjl# 
B
 cA
		!"A7d1668n2c
22222

		!"((*%
		#BJJL)     	?	bii
+,	bii"**,/0    !8O8!8O8a<<A::779>>7d1g	?d1g%%%q6Q;;afbnn---afbnn---S6<<>QS6<<>S   	x	 	- 
! 			$R A7d1668n2c
22222779!8O8!8O8afbnn---afbnn---S6??e###S6??e###S6<<>!!!S6<<>!!! 
!	 s   NN#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        |j                               cxk(  rg dk(  sJ  J t        |      dk(  sJ ||k(  sJ t        |j                               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        t        |d   t         j                        sJ |d   j!                         dk(  sJ t        |d
   t         j"                        sJ |d
   j!                         dk(  sJ t        |d   t         j                        sJ |d   j!                         dk(  sJ t        |d   t         j$                        sJ |d   j!                         dk(  sJ dt'        |      v sJ t        j                  t(        d      5  |j!                          d d d        y # 1 sw Y   *xY w# 1 sw Y   y xY w)Nr/  r0  ))r/  r   )r0         @)r/  r   r   )r/  r0  r/  r   r   r>  r1  r   r   zpyarrow.StructScalarzduplicate field namesr;   )r    r3  r4  r5  r6  r   r!   rR   r7  rU   r8  r?   r@   r;  r#   r:  r$   r9  rz   re   rA   r  s     r/   test_struct_duplicate_fieldsr?    sf   	
bhhj!
bjjl#
bhhj! 
B
 			2<A7d1668n777777q6Q;;6M6	?	bii288:&'	biiRZZ\*+	bii288:&'    !8O8!8O8a<<A:: 
x	 	# 
! afbnn---S6<<>S    adBNN+++Q4::<1adBNN+++Q4::<3adBNN+++Q4::<1!T!W,,,	z)@	A		 
B	A! 
!	   
B	As   7K%K2%K/2K;c                 r   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                  j                         dddd	ddgk(  sJ t        ||      D ]  \  }}||k(  rJ  t        j                  d |      D ]  } |j                         |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 t        j                  t               5  |d    d d d        t        j                  t               5  |d    d d d        | j#                  | j%                  |            }|j'                  |      sJ y # 1 sw Y   dxY w# 1 sw Y   IxY w)Nr   r   r   r   z)<pyarrow.MapScalar: [('a', 1), ('b', 2)]>r   r   )keyr   r   r   r  r   r   )r    map_r
   r   r!   rU   r#   	MapScalarrV   r   re   r  zipr$   r?   r@   r  r'   r(   r)   )r,   r   rO   r   r   j_r-   s           r/   test_maprG    s   	bggi	(B	8A
		!"Aq6Q;;a&&&ahh)))7AAAA88a a $    Aq	1Avv  YYt"% & 779>>Q4
		#BIIK(
		!"'')$    R5AaD==R5AaD==	z	"	" 
#	z	"	! 
# ""=#6#6q#9:H??1 
#	"	"	"s   8H!H-!H*-H6c                 ^   t        j                  g d      }t        j                  g d      }t         j                  j                  ||      }g d}|j	                         |k(  sJ t        t        ||            D ]  \  }\  }}||   }|j                         |k(  sJ |j                  j                         |k(  sJ |j                  j                  |      sJ |j                  j                  |      sJ | j                  | j                  |            }	|	j                  |      rJ  y )N)r   Nr   r   r   N)r   barbaz)rJ  NrI  rJ  r   N)r    rL   DictionaryArrayfrom_arraysr  r   rD  r$   r   indexr)   
dictionaryr'   r(   )
r,   indicesrN  rN   r   rE  r   rO   r   r-   s
             r/   test_dictionaryrP    s    hh/0G/0J



(
(*
=C7H==?h&&&s7H56	6AqFwwyA~~ww}}!###ww~~a   ||"":... &&}':':1'=>q!!! 7r1   c            	         g d} g d}t         j                  j                  | |      }|d   }t        |t         j                        sJ t        |j
                  t         j                        sJ |j
                  t        j                  |      d   k(  sJ |j                         dk(  sJ |d   }t        |j
                  t         j                        sJ |j                         J t        j                  t              5  t        j                  dt        j                  t        j                         t        j                                      d d d        y # 1 sw Y   y xY w)N)r   r   r   r   r   )r   r   r   Nr   r   r   r   )r    RunEndEncodedArrayrL  r#   RunEndEncodedScalarr   rz   rL   r$   r?   r@   NotImplementedErrorr!   run_end_encodedr   )run_endsrV   rN   r!   s       r/   test_run_end_encodedrW  *  s   !HF



+
+Hf
=CVFfb44555fllBNN333<<288F+A....<<>Q WFfllBNN333<<>!!! 
*	+
		!R''
BHHJ?@ 
,	+	+s   AEE#c           	         t         j                  j                  t        j                  g dt        j                               t        j                  g d      t        j                  g d      g      }|D ]  }|j                  d       t        |t         j                        sJ |j                  j                  |j                        sJ |j                  du sJ t        j                  t         j                        5  | j                  | j                  |             d d d         |d   j                   dk(  sJ |d   j#                         dk(  sJ |d	   j                   dk(  sJ |d	   j#                         d
k(  sJ |d   j                   d	k(  sJ |d   j#                         dk(  sJ |d   j                   d	k(  sJ |d   j#                         dk(  sJ t         j                  j%                  t        j                  g dd      t        j                  g dd      t        j                  g dd      t        j                  g dd      g      }|D ]  }|j                  d       t        |t         j                        sJ |j                  j                  |j                        sJ |j                  du sJ t        j                  t         j                        5  | j                  | j                  |             d d d         |d   j                   dk(  sJ |d   j#                         dk(  sJ |d   j                   d	k(  sJ |d   j#                         dk(  sJ y # 1 sw Y   xY w# 1 sw Y   &xY w)N)r   r   r   r   r   ri   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childrenrY  r   )r    
UnionArrayfrom_sparserL   r   r"   r#   UnionScalarr   r)   r&   r?   r@   ArrowNotImplementedErrorr'   r(   	type_coder$   
from_dense)r,   rN   r   s      r/   
test_unionre  ?  s   
--
#
#
BGGI.HH)*HH\"	
C 	


!R^^,,,vv}}SXX&&&zzT!!!]]2667 3 3A 67 87  q6q   q6<<>S   q6q   q6<<>S   q6q   q6<<>Qq6q   q6<<>Q --
"
"hh,6:hh47CHH-H=HHYW-
 # C 	


!R^^,,,vv}}SXX&&&zzT!!!]]2667 3 3A 67 87  q6q   q6<<>T!!!q6q   q6<<>QA 874 87s   !M/+!M</M9	<N	c                     t        j                  dgt        j                  t        j                         t        j                                     j	                         dgk(  sJ t        j                  dgt        j                  t        j
                  dt        j                         d      t        j
                  dt        j                                           j	                         dgk(  sJ y)z{
    Check we can call `MapScalar.as_py` with custom field names

    See https://github.com/apache/arrow/issues/36809
    )r   rI  
custom_keyF)nullablecustom_valueN)r    r!   rB  r
   r$   r4  rG   r1   r/   ,test_map_scalar_as_py_with_custom_field_namerj  p  s     99	
IIKIIK	
 eg.!" " " 99	
HH\299;?HH^RYY[1	
 eg.!" " "r1   )rg   r   r?   r*   numpyr3   ImportErrorpyarrowr    pyarrow.computecomputer=   markparametrizerp   rz   r   
Int8Scalarrw   UInt8Scalarr5  r9  uint16UInt16Scalarr   Int32Scalarr   UInt32Scalarr   uint64UInt64Scalarr|   r6  r:  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StructScalarrB  r
   rC  r0   r6   rC   rH   rP   rX   r^   timezone_datarl   rt   r}   r   r   r   r   r   r   r   rf   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  r)  r-  r<  r?  rG  rP  rW  re  rj  rG   r1   r/   <module>r     s  $       1 )4
D"""#)4	4!!")4 bnn)4 r~~	)4
 	2==!)4 
BNN#)4 
BNN#)4 			R__%)4 
BNN#)4 			R__%)4 
BNN#)4 			R__%)4 	$ )4 	*"**,')4 W__WtR%8%89)4  W__AB	2 !)4$ tR__%%)4& tR__%')4( OBOO%r';';<))4* OBOO%r';';<+)4, NBNN$b&9&9:-)4. NBNN$b&9&9:/)40 YRYYq\23341)42 bmm$3)44 =2==+R-?-?@5)46 hbhhwrwwy!,b.D.DE7)48 WRWWY'):):;9)4: %2%%gbggi0"2H2HI;)4< ]]D"//2=)4> ]]IBIIK9?)4@ dB$6$67A)4B !!#+++:IBIIcN__C)4F !!#T2??;G)4H XQr'8'89I)4J R___%t""$K)4N Aq6D"//2O)4P 72779299;	:BLLIQ)4 )TU)T@  <
4& 	H 	H"  :$$"*" ';/			#
IBIIcN	9299S>			$
IBIIdO	9299T?			$
IBIIdO	9299T?			$
IBIIdO	9299T?			
IBIIK	9299;			
IBIIK	9299;T
LBLL	<2<<D
KBKK	;2;;t+++-.	%2%%'(52 8&2;; &98&' O O&& ibiik :;D <D > >6  06 0 0 
I 
I 
 
" 5)"45-RYY["//"R__,,-R^^r**+0 

. 6
. 66"23-RYY["//"R__,,-R^^r**+0 
% 4%/ RXXibiikBMM*R]]9299;!3!34R\\)"))+ 1 12R			$b&<&<=	+ ( BHHXRXXZBMM("((*BLLBxrxxz"  " " HHMMLL	% 7 7. ,"^(V#L"(A*.b"o  	Bs   n3 3n>=n>