o
    Ūńhl  ć                   @   sV  d dl Z d dlZd dlZd dlZzd dlZW n ey!   dZY n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 ” ejfde ” ejfde ” ejfde ” ejfde ” ejfde ” ejfde ” ejfde ” ejfddejfde  ” ej!fe "d”dej#fe "d	”dej$fd
dej%fddej&fde '” ej(fde )” ej*fde +” ej,fde -” ej.fde /d”ej0fg d¢dej1fg d¢e 2e ” ”ej3fg d¢e 4e ” d”ej5fg d¢e 6e ” ”ej7fg d¢e 8e ” ”ej9fe j: ;” dej<fe j: ;” e =” ej>fe j  ?” dej@fe j  ?”  A” jBd de Cd”ejDfe j  ?”  A” dejEfe jFdddejGfe Hg d¢”dejIfdddgddejJfddge Ke L” e ” ”ejMf”dd ZNejjd d! ZOd"d# ZPd$d% ZQd&d' ZRd(d) ZSd*d+ ZTejjUd,d- ZVd.d/ ZWd0d1 ZXd2d3 ZYd4d5 ZZd6d7 Z[d8d9 Z\d:d; Z]ej d<d=gde Cd”fd>e Cd”fde Cd”fde Cd?”fd>e Cd?”fde Cd?”fde ^d@”fdAe ^d@”fde ^d@”fde ^dB”fdAe ^dB”fde ^dB”fde _” fd>e _” fde _” fde =” fdAe =” fde =” fde `dB”fdAe `dB”fde `dB”fde adB”fdAe adB”fde adB”fdCe b” fde b” fg”d=ejcfdDdEZddFdG ZeejjUdHdI ZfdJdK ZgdLdM Zhej dNe _” e =” g”dOdP ZiejjjdQdR ZkejjldSdT ZmdUdV ZndWdX ZoejjdYdZ Zpejjjd[d\ Zqejjld]d^ Zrd_d` Zsej d<dadbg”ej dce L” ej%fe '” ej(fe +” ej,fg”ddde Ztej d<dfdgg”ej dce /” ej&fe )” ej*fe -” ej.fg”dhdi Zudjdk Zvej dle 4e L” ”ej1fe 2e L” ”ej3fe 6e L” ”ej7fe 8e L” ”ej9fg”dmdn Zwejjej doe 4e ” ”e 2e ” ”e 6e ” ”e 8e ” ”dg”dpdq Zxejjjej drej4ej2ej6ej8g”dsdt Zydudv Zzdwdx Z{dydz Z|d{d| Z}d}d~ Z~dd Zdd Zdd ZdS )é    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   iŲ’’r   )ŚaŚb©r   r   ©r   r   c                 C   s*  t j| |d}| ”  |jdd t||sJ | ” | ks J |t j| |dks+J || ks1J |dks7J t|t|ksAJ |jdu sHJ |d ksNJ t jd |jd}|jdu s]J | ” d u seJ |t j| |dkspJ | | 	|””}| 
|”sJ t |”}| d usJ ~| d u s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Śwr© r-   śN/var/www/vscode/kcb/lib/python3.10/site-packages/pyarrow/tests/test_scalars.pyŚtest_basics    s*   +
r/   c                 C   sF  t  d”t ” tj}}}tj||d}| ”  |jdd t||s&J | ” |ks.J |tj||dks9J ||ks?J |dksEJ t|t|ksOJ |j	du sVJ |d ks\J tjd |j
d}|j	du skJ | ” d u ssJ |tj||dks~J |  |  |””}| |”sJ t |”}| d usJ ~| d u s”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   r+   r,   r-   r-   r.   Śtest_basics_np_requiredj   s,   
r3   c                  C   sb   t jt d”t ” dd} |  ”  tjtdd | jdd W d    d S 1 s*w   Y  d S )Nó   ’F©Śsafez(string scalar contains invalid UTF8 data©ŚmatchTr   )	ŚpcŚcastr   r   r	   r    ŚpytestŚraisesŚ
ValueError©r   r-   r-   r.   Śtest_invalid_scalar   s   ’"žr?   c                   C   s8   t  t” t ”  W d    d S 1 sw   Y  d S )N)r;   r<   ŚRuntimeErrorr   Ś
NullScalarr-   r-   r-   r.   Śtest_null_singleton   s   
"’rB   c                 C   sų   t  d ”}|t ju sJ | ” d u sJ |dksJ |t  d ”kdu s%J |dkdu s-J t jt jks5J t jdvs<J t  d d g”}|D ]}|t ju sNJ | ” d u sVJ qE|  |  |””}| |”sfJ t 	|”}| d usrJ ~| d uszJ d S )NŚ	somethingTr   F)r   )
r   r   ŚNAr"   Śarrayr%   r&   r'   r(   r)   )r*   ŚnullŚarrŚvr+   r,   r-   r-   r.   Ś
test_nulls   s$   

rI   c                  C   sD   t td} t | |  ”}t|}t|tsJ t|dks J d S )Niō  )ŚlistŚranger   rE   Śsetr!   Ślen)ŚvaluesrG   Śset_from_arrayr-   r-   r.   Śtest_hashing°   s
   rP   c                  C   s^   t  ddiddigddid gg”} t  ddid gg”}t| d }t|d }||ks-J d S )Nr   r   é   é   r   r   )r   rE   r#   )r   r   Śhash1Śhash2r-   r-   r.   Śtest_hashing_struct_scalar¹   s
   "rU   c                  C   sø   t t d” t d””} | dksJ t tjt ddd”tjdddd}|d	ks,J t tjt ddd”t d
”d}|dksCJ t t t d” t d””d”}|dksZJ 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   r:   Ś	timestampŚdatetimer9   Śassume_timezone©r   r   ŚcŚdr-   r-   r.   Śtest_timestamp_scalarĀ   s   &"’rb   c                  C   s   t  d”} t  d”}t| t jsJ t|t jsJ t|dks"J t|dks*J t| dks2J t| dks:J | ” du sBJ |  ” du sJJ d S )NFTz<pyarrow.BooleanScalar: True>ŚTruez<pyarrow.BooleanScalar: False>ŚFalse)r   r   r!   ŚBooleanScalarr[   Śstrr"   )ŚfalseŚtruer-   r-   r.   Ś	test_boolĻ   s   

ri   c                  C   s>  t  d”} t| t jsJ t| dksJ t| dksJ |  ” dks%J t t	” t jddd W d    n1 s<w   Y  t  d”} t| t j
sNJ t| dksVJ t| d	ks^J |  ” dksfJ td urt jt d
”dd} t| t js|J t| dt d
”dksJ t| dksJ |  ” d
ksJ d S d S )Nr   z<pyarrow.Int64Scalar: 1>Ś1r   Śuint8r   ē      ų?z<pyarrow.DoubleScalar: 1.5>z1.5g      ą?r1   z<pyarrow.HalfFloatScalar: ś>z0.5)r   r   r!   ŚInt64Scalarr[   rf   r"   r;   r<   ŚOverflowErrorŚDoubleScalarr0   r1   r2   r>   r-   r-   r.   Śtest_numericsß   s*   
’
ųrq   c                  C   s  t  d”} t | ”}t|tjsJ | ” | ksJ |jt dd”ks%J t  d”} t	 
tj” tj| tjdddd W d    n1 sGw   Y  t	 
tj” tj| tjdddd W d    n1 siw   Y  tj| tjdd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   Ś
decimal128r;   r<   ŚArrowInvalid©rH   r   r-   r-   r.   Śtest_decimal128ü   ó   


’’r{   c                  C   s  t  d”} t | ”}t|tjsJ | ” | ksJ |jt dd”ks%J t  d”} t	 
tj” tj| tjdddd W d    n1 sGw   Y  t	 
tj” tj| tjdddd W d    n1 siw   Y  tj| tjdddd}t|tjsJ | ” | ksJ d S )	Nz,1234567890123456789012345678901234567890.123é+   r   rr   r   rs   r   r   )ru   rv   r   r   r!   ŚDecimal256Scalarr"   r   Ś
decimal256r;   r<   ry   rz   r-   r-   r.   Śtest_decimal256  r|   r   c                  C   sb   t  ddd”} t  ddd”}t ” t ” fD ]}| |fD ]}tj||d}| ” |ks-J qqd S )Ni  r   iØ  r   )r]   Śdater   Śdate32Śdate64r   r"   )Śd1Śd2r   ra   r   r-   r-   r.   Ś	test_date   s   ž’r   c                  C   s`   t jt ddd”t  d”d} t ddd”}t  ” t  ” fD ]}|  |”}| ” |ks-J qd S )NiÜ  r   rY   r   )	r   r   r]   r\   r   r   r   r:   r"   )r   Śexpectedr   Śresultr-   r-   r.   Śtest_date_cast+  s   
žr   c                  C   sv   t  dd”} t  dd”}t d”t d”t d”t d”g}|D ]}| |fD ]}tj||d}| ” |ks7J q&q d S )	Né   r   é   r   ŚmsrY   Śnsr   )r]   Śtimer   Śtime32Śtime64r   r"   )Śt1Śt2Śtypesr   Śtr   r-   r-   r.   Śtest_time_from_datetime_time4  s   $ž’r   r   Ś	time_typei   @r   rY   l            r   )r   r   éż’’’c                 C   s,   t j| |d}|jdd |j| ksJ d S )Nr   Tr   )r   r   r    r   )r   r   Śtime_scalarr-   r-   r.   Śtest_temporal_values?  s   r   c                  C   s¢   t jddd} |  d”t jdddksJ |  d”t jdddks#J |  d”t jdddks1J t t” t  d” d	” W d    d S 1 sJw   Y  d S )
Nr   Śint8r   Śint64Śuint32r	   Ś5ŚfooŚint32)r   r   r:   r;   r<   r=   )Śvalr-   r-   r.   Ś	test_casta  s   "’r”   c               	   C   sd   t  d” dd l} tjdddddd| jd}tj|tjdddd	}| t 	” ”t d
”ks0J d S )NŚpytzr   éŠ  r   ©Śtzinfor   rV   rW   r   z2000-01-01 00:00:00.000000000Z)
r;   Śimportorskipr¢   r]   Śutcr   r   r\   r:   r	   )r¢   ŚdtŚtsr-   r-   r.   Śtest_cast_timestamp_to_stringj  s
   
 rŖ   c                  C   ó   t jdt  ” d} | jt  ” dd}t jdt  ” d}||ks!J t t j” |  t  ” ” W d    d S 1 s:w   Y  d S )Nrl   r   Fr5   r   )r   r   Śfloat64r:   r   r;   r<   ry   )Śfloat_scalarŚunsafe_castŚexpected_unsafe_castr-   r-   r.   Śtest_cast_float_to_intt  ó   "’r°   c                  C   r«   )Nl   ’’’’r   Fr5   g      PC)r   r   r   r:   r¬   r;   r<   ry   )Ś
int_scalarr®   rÆ   r-   r-   r.   Śtest_cast_int_to_float~  r±   r³   Śtypc                 C   s8   t  d”}| | ”}|t jt ddd”| dksJ d S )Nz
2021-01-01iå  r   r   )r   r   r:   r]   r   )r“   r   r   r-   r-   r.   Śtest_cast_string_to_date  s   

$rµ   c            
      C   s  dd l } | jdddj}g d¢}t|D ]k\}}d |”}tj | |””}|  	d”}|d  
” |ks5J |d jd|  |jksCJ d}tj||d	}	d |”}tjj| |”|	d
}|  	d” d” |”}|d  
” |ksqJ |d jd|  |jksJ qd S )Nr   z2000-01-01 12:34:56é
   )Śperiods)r   rY   r   r   zdatetime64[{}]éč  rZ   rW   r   r§   )ŚpandasŚ
date_rangerN   Ś	enumerateŚformatr   ŚArrayŚfrom_pandasŚastypeŚ	Timestampr"   r   r\   Śtz_localizeŚ
tz_convert)
ŚpdrG   ŚunitsŚiŚunitŚdtypeŚ	arrow_arrr   rX   Ś
arrow_typer-   r-   r.   Śtest_timestamp  s(   


žīrŹ   c                  C   sŠ   t  d” dd l} d}tjd|d}tjd|d}|  |”}tjdd	d	d	|d
}| |”}| 	” }||ks7J |j
dks>J |jdksEJ tjd|d}t  t” | 	”  W d    d S 1 saw   Y  d S )Nr¢   r   rZ   r   rW   l   č$=3ir   r£   r   )r   r„   iĻ  é   ģ    $=3i)r;   r¦   r¢   r   r\   r   Śtimezoner]   Śfromutcr"   ŚyearŚhourr<   r=   )r¢   rX   r   r   r„   r   r   r-   r-   r.   Śtest_timestamp_nanos_nopandas«  s    



"’rŃ   c                  C   s   t  d” dd l} tjdddddd| jdtjddddd	d	d
| jdtjdddddd| jdg}|D ]}tj|tjdddd}| ” |ksHJ q2d S )Nr¢   r   r   r¤   i'  é   é   é   é;   i?B i²  rY   rV   rW   r   )	r;   r¦   r¢   r]   r§   r   r   r\   r"   )r¢   Ś
timestampsr©   r   r-   r-   r.   Śtest_timestamp_no_overflowÄ  s   
żžr×   c                  C   s:   t  d” t dgtjddd”} t| d dksJ d S )Nr¢   r   r   z+02:00rW   z1970-01-01 02:00:00+02:00)r;   r¦   r   rE   r\   rf   )rG   r-   r-   r.   Ś!test_timestamp_fixed_offset_printÓ  s   
rŲ   c                  C   sØ   t jddgdd} g d¢}t|D ]@\}}d |”}t |  |””}tjdd}t|d	  	” tjs4J |d	  	” |ks>J |d	 j
d
|d	   | ” d ksQJ qd S )Nr   ģ     qaztimedelta64[ns]©rĒ   )rY   r   r   ztimedelta64[{}]é  ©Śsecondsr   rø   ē    eĶĶA)r0   rE   r»   r¼   r   ræ   r]   Ś	timedeltar!   r"   r   Śtotal_seconds)rG   rÄ   rÅ   rĘ   rĒ   rČ   r   r-   r-   r.   Śtest_durationŚ  s   


’śrį   c                  C   s¢   dd l } tjddgt d”d}|  d”}t|d  ” | js!J |d  ” |ks+J |d j|jks5J tjdgt d”d}|d  ” | jdddksOJ d S )	Nr   rŁ   r   r   z1 hourr   rĢ   )rĘ   )r¹   r   rE   ŚdurationŚ	Timedeltar!   r"   r   )rĆ   rG   r   r-   r-   r.   Śtest_duration_nanos_pandasź  s   
"rä   c                  C   sŗ   t  ddgt  d””} tjdd}t| d  ” tjsJ | d  ” |ks'J | d j| ” d ks4J t jdgt  d”d	} t	 
t” | d  ”  W d    d S 1 sVw   Y  d S )
Nr   rŁ   r   rŪ   rÜ   r   rŽ   rĢ   r   )r   rE   rā   r]   rß   r!   r"   r   rą   r;   r<   r=   )rG   r   r-   r-   r.   Śtest_duration_nanos_nopandasų  s   "’rå   c                  C   s\   t  g d¢”} t  | g”}t|d  ” t jsJ |d  ” | ks#J |d j| ks,J d S )N)išń’’i  iĪ’’’r   )r   ŚMonthDayNanorE   r!   r"   r   )ŚtriplerG   r-   r-   r.   Śtest_month_day_nano_interval  s
   rč   r   u   maĆ±ana)r   Ś
scalar_typc                 C   s   t j| |d}t||sJ | ” | ksJ | ” dksJ t| t|v s(J t|t| ks2J | ” }t|t js>J | ” |  	” ksHJ d S )Nr   rC   )
r   r   r!   r"   r[   rf   Ś	as_bufferŚBufferŚ
to_pybytesŚencode©r   r   ré   r   Śbufr-   r-   r.   Śtest_string  s   rš   s   foos   barc                 C   s   t j| |d}t||sJ | ” | ksJ t|t| ks J t| t|v s*J | ” | ks2J |dks8J | ” }t|t jsDJ | ” | ksLJ d S )Nr   s   xxxxx)	r   r   r!   r"   rf   r[   rź   rė   rģ   rī   r-   r-   r.   Śtest_binary!  s   rń   c                  C   sz   t jdt  d”d} t| t jsJ |  ” dksJ t t j” t jdt  d”d W d    d S 1 s6w   Y  d S )Ns   foofr   r   s   foof5)	r   r   Śbinaryr!   ŚFixedSizeBinaryScalarr"   r;   r<   ry   r>   r-   r-   r.   Śtest_fixed_size_binary5  s   "’rō   )r   r   c                 C   sD  dd g}t j|| d}|j| ksJ t|dksJ t|jt js#J |j ” |ks,J t||s3J t|t|v s=J | 	” |ksEJ |d  	” dksOJ |d  	” d u sYJ |d |d kscJ |d |d ksmJ t
 t” |d  W d    n1 sw   Y  t
 t” |d  W d    d S 1 sw   Y  d S )	Nr   r   r   r   r   r   éž’’’r   )r   r   r   rM   r!   rN   r½   Ś	to_pylistr[   r"   r;   r<   Ś
IndexError)r   r   rH   r   r-   r-   r.   Ś	test_list>  s&   
’
"’rų   r   c                 C   s\   t jtjg d¢t ” d| d}| d u rt  t  ” ”} |j| ks"J | ” g d¢ks,J d S )Nr   rŚ   r   )r   r   r0   rE   r   Ślist_r   r"   ©r   r   r-   r-   r.   Śtest_list_from_numpyX  s
    	rū   Śfactoryc                 C   s
  dd l }t | g d¢””}| ” g d¢ksJ tjdfdtjg| t ” fdtjg| t ” fdtjg| t d”fdtjg| t 	” ft
 d”tjg| t d	d
”fg}|D ]*\}}t ttf” tj||d W d    n1 suw   Y  tj||dd}qXd S )Nr   r   rF   r	   s   stringrQ   TŚ0rŅ   r   r   )r   r¾   )r¹   r   r   ŚSeriesr"   r0   Śnanrņ   Śutf8Śbool_ru   rv   rx   r;   r<   r=   Ś	TypeError)rü   rĆ   r   ŚcasesŚcaser   r-   r-   r.   Śtest_list_from_pandash  s    ś’śr  c                  C   s  t jg d¢t  t  ” d”d} t| dksJ t| t jsJ t| dks'J |  ” g d¢ks1J | d  ” dks;J | d  ” d u sEJ | d | d ksOJ t	 
t” | d	  W d    n1 scw   Y  t	 
t” | d  W d    d S 1 s}w   Y  d S )
N)r   Nr   r   r   z+<pyarrow.FixedSizeListScalar: [1, None, 3]>r   r   r   r   éü’’’)r   r   rł   r   rM   r!   ŚFixedSizeListScalarr[   r"   r;   r<   r÷   r>   r-   r-   r.   Śtest_fixed_size_list  s   
’
"’r  c                  C   sČ  t  t  dt  ” ”t  dt  ” ”g”} ddd}t j|| d}t|t| ”   kr2ddgks5J  J t| ” t jdt  ” dt jdt  ” dgksOJ t| 	” dt jdt  ” dfdt jdt  ” dfgksmJ d|v ssJ d|v syJ 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” |d	  W d    n1 sēw   Y  t jd | d}t|t| ”   krddgksJ  J | 
” d u sJ d|v sJ d|v s"J t|d t js-J t|d t js8J |d jd
u sBJ |d jd
u sLJ |d  
” d u sWJ |d  
” d u sbJ d S )NŚxŚyr   g      @)r	  r
  r   Śzr   ŚnonexistentF)r   ŚstructŚfieldŚint16Śfloat32r   rJ   ŚkeysrN   Śitemsr"   r[   rM   r!   ŚInt16ScalarŚFloatScalarr;   r<   ŚKeyErrorr$   )r   rH   r   r-   r-   r.   Śtest_struct  sR   ž
,

ž

ž
’0r  c               	   C   s(  t  t  dt  ” ”t  dt  ” ”t  dt  ” ”g”} t jg d¢| d}t|t| ”   kr6g d¢ks9J  J t	|dksAJ ||ksGJ t| 
” dt  dt  ” ”fdt  dt  ” ”fdt  dt  ” ”fgkslJ d|v srJ d|v sxJ d	|vs~J d
|vsJ t t” |d  W d    n1 s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d | ”  W d    d S 1 sw   Y  d S )Nr	  r
  ))r	  r   )r
  ē       @)r	  r   r   )r	  r
  r	  r   r   r  r  r   r   zpyarrow.StructScalarzduplicate field namesr7   )r   r  r  r  r  r   r   rJ   r  rM   r  r;   r<   r  r!   r  r"   r  rn   r[   r=   rś   r-   r-   r.   Śtest_struct_duplicate_fieldsÅ  sB   ż,

ż
’
$’r  c                 C   s°  t  t  ” t  ” ”}ddg}t j||d}t|dksJ t|t js%J t|jt j	s.J t
|dks6J |j ” dddd	ddgksGJ t||D ]
\}}||ksVJ qLt jd |dD ]}q^| ” |ksiJ |d t jd	t  ” dt jdt  ” dfksJ |d
 |d ksJ |d |d ksJ t t” |d  W d    n1 s©w   Y  t t” |d  W d    n1 sĀw   Y  |  |  |””}| |”sÖJ d S )Nr   r   r   r   z)<pyarrow.MapScalar: [('a', 1), ('b', 2)]>r   r   )Śkeyr   r   r   rõ   r   r   )r   Śmap_r	   r   r   rM   r!   Ś	MapScalarrN   r½   r[   rö   Śzipr"   r;   r<   r÷   r%   r&   r'   )r*   r   rH   r   rÅ   ŚjŚ_r+   r-   r-   r.   Śtest_mapš  s<   
ž
ž
’
’r  c           
      C   sŹ   t  g d¢”}t  g d¢”}t j ||”}g d¢}| ” |ks!J tt||D ]:\}\}}|| }| ” |ks:J |j ” |ksCJ |j	 
|”sKJ |j 
|”sSJ |  |  |””}	|	 
|”sbJ q(d S )N)r   Nr   r   r   N)r   ŚbarŚbaz)r!  Nr   r!  r   N)r   rE   ŚDictionaryArrayŚfrom_arraysrö   r»   r  r"   r   Śindexr'   Ś
dictionaryr%   r&   )
r*   Śindicesr%  rG   r   r  rÅ   rH   r   r+   r-   r-   r.   Śtest_dictionary  s   ÷r'  c               	   C   sę   g d¢} g d¢}t j | |”}|d }t|t jsJ t|jt js$J |jt  |”d ks0J | ” dks8J |d }t|jt jsEJ | ” d u sMJ t	 
t” t  dt  t  ” t  ” ”” W d    d S 1 slw   Y  d S )N)r   r   r¶   rŅ   rĖ   )r   r   r   Nr   r   r   r¶   )r   ŚRunEndEncodedArrayr#  r!   ŚRunEndEncodedScalarr   rn   rE   r"   r;   r<   ŚNotImplementedErrorr   Śrun_end_encodedr   )Śrun_endsrN   rG   r   r-   r-   r.   Śtest_run_end_encoded*  s   "’r-  c              	   C   s|  t j t jg d¢t  ” dt  g d¢”t  g d¢”g”}|D ]>}|jdd t|t js.J |j 	|j”s7J |j
du s>J t t j” |  |  |”” W d    n1 sWw   Y  q|d jdksfJ |d  ” dkspJ |d	 jdksyJ |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jt jg d¢ddt jg d¢ddt jg d¢ddt jg d¢ddgd}|D ]?}|jdd t|t jsāJ |j 	|j”sėJ |j
du sņJ t t j” |  |  |”” W d    n	1 sw   Y  qŅ|d jdksJ |d  ” dks'J |d jd	ks1J |d  ” dks<J d S )N)r   r   r   r   r   r_   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Śchildrenr.  r   )r   Ś
UnionArrayŚfrom_sparserE   r   r    r!   ŚUnionScalarr   r'   r$   r;   r<   ŚArrowNotImplementedErrorr%   r&   Ś	type_coder"   Ś
from_dense)r*   rG   r   r-   r-   r.   Ś
test_union?  sV   žž’žż’r:  c                   C   sp   t  dgt  t  ” t  ” ”” ” dgksJ t  dgt  t jdt  ” ddt  dt  ” ””” ” dgks6J dS )z{
    Check we can call `MapScalar.as_py` with custom field names

    See https://github.com/apache/arrow/issues/36809
    )r   r   Ś
custom_keyF)ŚnullableŚcustom_valueN)r   r   r  r	   r"   r  r-   r-   r-   r.   Ś,test_map_scalar_as_py_with_custom_field_namep  s$   žžśžžśr>  )r]   ru   r;   r(   Śnumpyr0   ŚImportErrorŚpyarrowr   Śpyarrow.computeŚcomputer9   ŚmarkŚparametrizere   rn   r   Ś
Int8Scalarrk   ŚUInt8Scalarr  r  Śuint16ŚUInt16Scalarr   ŚInt32Scalarr   ŚUInt32Scalarr   Śuint64ŚUInt64Scalarrp   r  r  rv   rw   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ŚStructScalarr  r	   r  r/   r3   r?   rB   rI   rP   rU   Śtimezone_datarb   ri   rq   r{   r   r   r   r   r   r   r\   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  r  r'  r-  r:  r>  r-   r-   r-   r.   Ś<module>   s  ’
’
ž
ż
üūśłų	÷
öõō
óņń’š
ī
ķģėźéčēęåäćāį ą!’ß#Ż$Ü%’Ū'Ł(Ų
* 
		
	







ę	
	







żż	ü
ūü/+&1