o
    G¾±h‰s  ã                   @   s†  d dl Z d dlZd dlZd dlZd dlmZm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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 0¡ ej1f‘de 2¡ ej3f‘de 4d¡ej5f‘g d¢dej6f‘g d¢e 7e ¡ ¡ej8f‘g d¢e 9e ¡ d¡ej:f‘g d¢e ;e ¡ ¡ej<f‘g d¢e =e ¡ ¡ej>f‘e j? @¡ dejAf‘e j? @¡ e B¡ ejCf‘e j  D¡ dejEf‘e j  D¡  F¡ jGd de Hd¡ejIf‘e j  D¡  F¡ dejJf‘e jKdddejLf‘e Mg d¢¡dejNf‘dddgdœdejOf‘ddge Pe Q¡ e ¡ ¡ejRf‘¡dd „ ƒZSejjd!d"„ ƒZTd#d$„ ZUd%d&„ ZVd'd(„ ZWd)d*„ ZXd+d,„ ZYejjZd-d.„ ƒZ[d/d0„ Z\d1d2„ Z]d3d4„ Z^d5d6„ Z_d7d8„ Z`d9d:„ Zad;d<„ Zbej d=d>gde Hd¡fd?e Hd¡fde Hd¡fde Hd@¡fd?e Hd@¡fde Hd@¡fde cdA¡fdBe cdA¡fde cdA¡fde cdC¡fdBe cdC¡fde cdC¡fde d¡ fd?e d¡ fde d¡ fde B¡ fdBe B¡ fde B¡ fde edC¡fdBe edC¡fde edC¡fde fdC¡fdBe fdC¡fde fdC¡fdDe g¡ fde g¡ fg¡d>ejhfdEdF„ƒZidGdH„ ZjejjZdIdJ„ ƒZkdKdL„ ZldMdN„ Zmej dOe d¡ e B¡ g¡dPdQ„ ƒZnejjodRdS„ ƒZpejjqdTdU„ ƒZrdVdW„ ZsdXdY„ ZtejjdZd[„ ƒZuejjod\d]„ ƒZvejjqd^d_„ ƒZwd`da„ Zxej d=dbdcg¡ej dde Q¡ ej*fe ,¡ ej-fe 0¡ ej1fg¡dedf„ ƒƒZyej d=g dg¢¡ej dde 4¡ ej+fe .¡ ej/fe 2¡ ej3fg¡dhdi„ ƒƒZzdjdk„ Z{ej dle 9e Q¡ ¡ej6fe 7e Q¡ ¡ej8fe ;e Q¡ ¡ej<fe =e Q¡ ¡ej>fg¡dmdn„ ƒZ|ejjej doe 9e ¡ ¡e 7e ¡ ¡e ;e ¡ ¡e =e ¡ ¡dg¡dpdq„ ƒƒZ}ejjoej drej9ej7ej;ej=g¡dsdt„ ƒƒZ~dudv„ Zdwdx„ Z€dydz„ Zd{d|„ Z‚d}d~„ Zƒdd€„ Z„dd‚„ Z…dƒd„„ Z†d…d†„ Z‡d‡dˆ„ Zˆd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   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© r0   ú[/var/www/html/Persson_Maskin/env/lib/python3.10/site-packages/pyarrow/tests/test_scalars.pyÚtest_basics!   s*   ,
r2   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 ‚|  |  |¡¡}| |¡sJ ‚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/   r0   r0   r1   Útest_basics_np_requiredl   s,   
r6   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   r0   r0   r1   Útest_invalid_scalar‹   s   ÿ"þrB   c                   C   s8   t  t¡ t ¡  W d   ƒ d S 1 sw   Y  d S )N)r>   r?   ÚRuntimeErrorr!   Ú
NullScalarr0   r0   r0   r1   Útest_null_singleton“   s   
"ÿrE   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/   r0   r0   r1   Ú
test_nulls˜   s$   

rL   c                  C   sD   t tdƒƒ} t | |  ¡}t|ƒ}t|tƒsJ ‚t|ƒdks J ‚d S )Niô  )ÚlistÚranger!   rH   Úsetr$   Úlen)ÚvaluesrJ   Úset_from_arrayr0   r0   r1   Útest_hashing²   s
   rS   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!   rH   r&   )r   r   Úhash1Úhash2r0   r0   r1   Útest_hashing_struct_scalar»   s
   "rX   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Údatetimer<   Úassume_timezone©r   r   ÚcÚdr0   r0   r1   Útest_timestamp_scalarÄ   s   &"ÿre   c                  C   s  t  d¡} t  d¡}t jd t  ¡ d}t| t jƒsJ ‚t|t jƒs#J ‚t|t jƒs+J ‚t|ƒdks3J ‚t|ƒdks;J ‚t| ƒdksCJ ‚t| ƒdksKJ ‚t|ƒdksSJ ‚t|ƒd	ks[J ‚| ¡ du scJ ‚|  ¡ du skJ ‚| ¡ d u ssJ ‚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$   ÚBooleanScalarr^   Ústrr%   Úbool)ÚfalseÚtruerI   r0   r0   r1   Ú	test_boolÑ   s$   

ro   c                  C   sn  t  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 	t
¡ t jddd W d   ƒ n1 sDw   Y  t  d¡} t| t jƒsVJ ‚t| ƒdks^J ‚t| ƒd	ksfJ ‚|  ¡ dksnJ ‚t| ƒdksvJ ‚t| ƒdks~J ‚t jd
dd} t| t jƒsJ ‚t| ƒdks•J ‚t| ƒdksJ ‚|  ¡ 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      à?r4   z<pyarrow.HalfFloatScalar: 0.5>z0.5r   )r!   r"   r$   ÚInt64Scalarr^   rk   r%   Úintr>   r?   ÚOverflowErrorÚDoubleScalarÚfloatr5   rA   r0   r0   r1   Útest_numericsê   s.   
ÿ
rx   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©rK   r   r0   r0   r1   Ú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   ry   r   rz   r   r   )r|   r}   r!   r"   r$   ÚDecimal256Scalarr%   r   Ú
decimal256r>   r?   r€   r   r0   r0   r1   Ú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   rd   r   r0   r0   r1   Ú	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   r\   r   )	r!   r"   r`   r_   rˆ   r‰   rŠ   r=   r%   )r"   Úexpectedr   Úresultr0   r0   r1   Útest_date_cast8  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   Úmsr\   Únsr   )r`   Útimer!   Útime32Útime64r"   r%   )Út1Út2Útypesr   Útr   r0   r0   r1   Útest_time_from_datetime_timeA  s   $þÿrœ   r   Ú	time_typei   @r“   r\   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_scalarr0   r0   r1   Útest_temporal_valuesL  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@   )Úvalr0   r0   r1   Ú	test_castn  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”   rY   rZ   r   z2000-01-01 00:00:00.000000000Z)
r>   Úimportorskipr©   r`   Úutcr!   r"   r_   r=   r   )r©   ÚdtÚtsr0   r0   r1   Útest_cast_timestamp_to_stringw  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 )Nrr   r   Fr8   r   )r!   r"   Úfloat64r=   r¢   r>   r?   r€   )Úfloat_scalarÚunsafe_castÚexpected_unsafe_castr0   r0   r1   Útest_cast_float_to_int  ó   "ÿr·   c                  C   r²   )Nl   ÿÿÿÿr   Fr8   g      PC)r!   r"   r¢   r=   r³   r>   r?   r€   )Ú
int_scalarrµ   r¶   r0   r0   r1   Ú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   r0   r0   r1   Útest_cast_string_to_date•  s   

$r¼   c            
      C   s  dd l } | jdddj}g d¢}t|ƒD ]m\}}d|› d}tj | |¡¡}|  d¡}|d  	¡ |ks6J ‚|d j
d|  |j
ksDJ ‚d	}tj||d
}	d|› d}tjj| |¡|	d}|  d¡ d¡ |¡}|d  	¡ |kssJ ‚|d j
d|  |j
ksJ ‚qd S )Nr   z2000-01-01 12:34:56é
   )Úperiods)r”   r\   r“   r   zdatetime64[ú]éè  r]   rZ   r   r®   )ÚpandasÚ
date_rangerQ   Ú	enumerater!   ÚArrayÚfrom_pandasÚastypeÚ	Timestampr%   r   r_   Útz_localizeÚ
tz_convert)
ÚpdrJ   ÚunitsÚiÚunitÚdtypeÚ	arrow_arrrŽ   r[   Ú
arrow_typer0   r0   r1   Ú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   r]   r”   rZ   l   è†$=3ir   rª   r   )r   r¬   iÏ  é   ì    †$=3i)r>   r­   r©   r!   r_   r"   Útimezoner`   Úfromutcr%   ÚyearÚhourr?   r@   )r©   r[   r   r   r¬   rŽ   r   r0   r0   r1   Ú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²  r\   rY   rZ   r   )	r>   r­   r©   r`   r®   r!   r"   r_   r%   )r©   Ú
timestampsr°   r   r0   r0   r1   Ú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:00rZ   z1970-01-01 02:00:00+02:00)r>   r­   r!   rH   r_   rk   )rJ   r0   r0   r1   Ú!test_timestamp_fixed_offset_printà  s   
rß   c                  C   sª   t jddgdd} g d¢}t|ƒD ]A\}}d|› d}t |  |¡¡}tjdd	}t|d
  ¡ tjƒs5J ‚|d
  ¡ |ks?J ‚|d
 j	d|d
   | 
¡ d ksRJ ‚qd S )Nr   ì     qaztimedelta64[ns]©rÎ   )r\   r“   r   ztimedelta64[r¿   é  ©Úsecondsr   rÀ   ç    eÍÍA)r3   rH   rÃ   r!   rÆ   r`   Ú	timedeltar$   r%   r   Útotal_seconds)rJ   rË   rÌ   rÍ   rÎ   rÏ   rŽ   r0   r0   r1   Ú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!   rH   ÚdurationÚ	Timedeltar$   r%   r   )rÊ   rJ   rŽ   r0   r0   r1   Ú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!   rH   ré   r`   ræ   r$   r%   r   rç   r>   r?   r@   )rJ   rŽ   r0   r0   r1   Ú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!   ÚMonthDayNanorH   r$   r%   r   )ÚtriplerJ   r0   r0   r1   Ú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   rF   )
r!   r"   r$   r%   r^   rk   Ú	as_bufferÚBufferÚ
to_pybytesÚencode)r   r   rð   r   Úbufr0   r0   r1   Útest_string  s   rö   )s   foos   baró    Nc                 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 ‚| ¡ }| d u rb|d u sFJ ‚t t	¡ t
|ƒ W d   ƒ d S 1 s[w   Y  d S | ¡ | ksjJ ‚t|t jƒsrJ ‚t|ƒ| kszJ ‚t
|ƒ}| ¡ | ks†J ‚|jdksJ ‚|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%   rk   r^   rñ   r>   r?   r@   Ú
memoryviewró   rò   ÚbytesÚtobytesÚformatÚitemsizeÚndimÚshaperP   Ústrides)r   r   rð   r   rõ   Úmemviewr0   r0   r1   Útest_binary.  s.   
"ÿr  c                  C   sŠ   t jdt  d¡d} t| t jƒsJ ‚|  ¡ dksJ ‚t| ƒdks"J ‚t t j	¡ t jdt  d¡d W d   ƒ d S 1 s>w   Y  d S )Ns   foofr   r   s   foof5)
r!   r"   Úbinaryr$   ÚFixedSizeBinaryScalarr%   rù   r>   r?   r€   rA   r0   r0   r1   Útest_fixed_size_binaryQ  s   "ÿr  )r   r   c                 C   sP  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 sw   Y  t
 t¡ |d  W d   ƒ n1 sšw   Y  t|tƒs¦J ‚d S )	Nr¥   r   r   r   r   r   éþÿÿÿrž   )r!   r"   r   rP   r$   rQ   rÄ   Ú	to_pylistr^   r%   r>   r?   Ú
IndexErrorr   )r   r   rK   r   r0   r0   r1   Ú	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"   r3   rH   r¢   Úlist_r   r%   ©r   r   r0   r0   r1   Útest_list_from_numpyv  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   rI   r   s   stringrT   TÚ0rÙ   r   r   )r   rÅ   )rÁ   r!   r"   ÚSeriesr%   r3   Únanr  Úutf8ri   r|   r}   r   r>   r?   r@   Ú	TypeError)r  rÊ   r   ÚcasesÚcaser   r0   r0   r1   Útest_list_from_pandas†  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¢   rP   r$   ÚFixedSizeListScalarr^   r%   r>   r?   r  rA   r0   r0   r1   Ú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sJ ‚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 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ƒs4J ‚t|d t jƒs?J ‚t|d t jƒsJJ ‚t|d
 t jƒsUJ ‚|d jdu s_J ‚|d jdu siJ ‚|d  
¡ d u stJ ‚|d  
¡ d u sJ ‚t|tƒs‡J ‚d S )NÚxÚyr   g      @©r  r  r   Úzr   Únonexistentr   F)r!   ÚstructÚfieldÚint16Úfloat32r"   rM   ÚkeysrQ   Úitemsr%   r^   rP   r$   ÚInt16ScalarÚFloatScalarr   r>   r?   ÚKeyErrorr'   ©r   rK   r   r0   r0   r1   Útest_struct´  sZ   þ
,

þ

þ
ÿ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 namesr:   )r!   r  r  r  r   r¢   r"   rM   r!  rP   r"  r>   r?   r%  r$   r$  r%   r#  rs   r^   r@   r
  r0   r0   r1   Ú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sJ ‚|d
 |d ks‹J ‚|d |d ks•J ‚|d	 t jdt  ¡ dks¤J ‚t t¡ |d  W d   ƒ n1 s¸w   Y  t t¡ |d  W d   ƒ n1 sÑw   Y  t t¡ |d  W d   ƒ n1 sêw   Y  |  |  |¡¡}| |¡sþJ ‚|jd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"   rP   r$   Ú	MapScalarrQ   rÄ   r^   r  Úzipr%   r>   r?   r  r%  r(   r)   r*   r   )r-   r   rK   r   rÌ   ÚjÚ_r.   r0   r0   r1   Útest_map  sH   
þ
þ
ÿ
ÿ
ÿr4  c                  C   sÂ   t  t  ¡ t  ¡ ¡} ddg}t j|| d}|jd d|ksJ ‚t t¡ |jdds-J ‚W d   ƒ n1 s7w   Y  tj	dd |jddd	d
iksOJ ‚W d   ƒ d S 1 sZw   Y  d S )Nr   )r   r   r   r-  r,  z1Encountered key 'a' which was already encounteredr:   Úlossyr   r   )
r!   r/  r   r¡   r"   r%   r>   r?   r%  Úwarnsr&  r0   r0   r1   Útest_map_duplicate_fields@  s   ÿ"ÿr7  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)r9  Nr8  r9  r¥   N)r!   rH   ÚDictionaryArrayÚfrom_arraysr  rÃ   r1  r%   r   Úindexr*   Ú
dictionaryr(   r)   )
r-   Úindicesr=  rJ   rŽ   r2  rÌ   rK   r   r.   r0   r0   r1   Útest_dictionaryN  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   rs   rH   r%   r>   r?   ÚNotImplementedErrorr"   Úrun_end_encodedr¢   )Úrun_endsrQ   rJ   r"   r0   r0   r1   Útest_run_end_encodedb  s   "ÿrE  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   rb   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ÚchildrenrF  r   )r!   Ú
UnionArrayÚfrom_sparserH   r¡   r#   r$   ÚUnionScalarr   r*   r'   r>   r?   ÚArrowNotImplementedErrorr(   r)   Ú	type_coder%   Ú
from_dense)r-   rJ   r   r0   r0   r1   Ú
test_unionw  sV   þþÿ€þýÿ€rR  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¥   r8  Ú
custom_keyF)ÚnullableÚcustom_valueN)r!   r"   r/  r   r%   r  r0   r0   r0   r1   Ú,test_map_scalar_as_py_with_custom_field_name¨  s$   þþúþþúrV  c                  C   s„   t  t  dt  t  ¡ t  ¡ ¡¡t  dt  t  t  ¡ t  ¡ ¡¡¡g¡} ddiddiddigd	œ}t j|| d
}|jdd|ks@J ‚d S )Nr  r  r   r   r   r   rc   r   r  r   r,  r-  )	r!   r  r  r/  r   r¡   r	  r"   r%   r&  r0   r0   r1   Ú*test_nested_map_types_with_maps_as_pydicts¿  s    þrW  )‰r`   r|   r>   r+   Úcollections.abcr   r   Únumpyr3   ÚImportErrorÚpyarrowr!   Úpyarrow.computeÚcomputer<   ÚmarkÚparametrizerj   rs   r¡   Ú
Int8Scalarrq   ÚUInt8Scalarr  r#  Úuint16ÚUInt16Scalarr¦   ÚInt32Scalarr£   ÚUInt32Scalarr¢   Úuint64ÚUInt64Scalarr4   r5   rv   r   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ÚStructScalarr/  r   r0  r2   r6   rB   rE   rL   rS   rX   Útimezone_datare   ro   rx   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)  r4  r7  r?  rE  rR  rV  rW  r0   r0   r0   r1   Ú<module>   s¤  ÿ
ÿ
þ
ý
üûúùø	÷
öõôó
òñðÿï
í
ìëêéèçæåäãâá à!ß"ÿÞ$Ü%Û&ÿÚ(Ø)×
+ 
		
	







æ	
	







ýý
ü
ûü4+-1