U
    âÇ-eÌ]  ã                *   @   s
  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Zd dlZ	d dl
mZ d dlmZ ej dd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e #d
¡e	 #¡ 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	 0d¡e	j1fdddgde	j2fddddge	 3e	 ¡ ¡e	j4fdddddge	 5e	 ¡ d¡e	j6fe j7 8¡ de	j9fe j7 8¡ e	 :¡ e	j;fe j  <¡ de	j=fe j  <¡  >¡ j?d de	 @d¡e	jAfe j  <¡  >¡ de	jBfe jCddde	jDfe	 Edd	dg¡de	jFfdddgdœde	jGfddge	 He	 I¡ e	 ¡ ¡e	jJfg"¡dd„ ƒZKdd „ ZLd!d"„ ZMd#d$„ ZNd%d&„ ZOd'd(„ ZPd)d*„ ZQd+d,„ ZRd-d.„ ZSd/d0„ ZTd1d2„ ZUd3d4„ ZVd5d6„ ZWej dd7gde	 @d¡fd8e	 @d¡fde	 @d¡fde	 @d9¡fd8e	 @d9¡fde	 @d9¡fde	 Xd:¡fd;e	 Xd:¡fde	 Xd:¡fde	 Xd<¡fd;e	 Xd<¡fde	 Xd<¡fde	 Y¡ fd8e	 Y¡ fde	 Y¡ fde	 :¡ fd;e	 :¡ fde	 :¡ fde	 Zd<¡fd;e	 Zd<¡fde	 Zd<¡fde	 [d<¡fd;e	 [d<¡fde	 [d<¡fd=e	 \¡ fde	 \¡ fg¡e	j]d>œd?d@„ƒZ^dAdB„ Z_ejj`ejadCkote b¡  dDdEdFdG„ ƒZcdHdI„ ZddJdK„ ZeejjfdLdM„ ƒZgejjhdNdO„ ƒZidPdQ„ ZjdRdS„ ZkdTdU„ ZlejjfdVdW„ ƒZmejjhdXdY„ ƒZndZd[„ Zoej dd\d]g¡ej d^e	 I¡ e	j*fe	 ,¡ e	j-fg¡d_d`„ ƒƒZpej ddadbg¡ej d^e	 0¡ e	j+fe	 .¡ e	j/fg¡dcdd„ ƒƒZqdedf„ Zrej dge	 5e	 I¡ ¡e	j2fe	 3e	 I¡ ¡e	j4fg¡dhdi„ ƒZsdjdk„ Ztejjfdldm„ ƒZudndo„ Zvdpdq„ Zwdrds„ Zxdtdu„ Zydvdw„ Zzdxdy„ Z{dzd{„ Z|dS )|é    N)ÚutilÚvalueÚtyÚklassFTé   éÿÿÿÿg      ð?ú1.123z*1.1234567890123456789012345678901234567890Ústrings   bytesZlargestrings
   largebytess   abcé   é   é   é   )ÚmicrosecondÚs)ÚdaysiŒØÿÿ)ÚaÚb©r   r   ©r   r   c                 C   s.  t j| |d}| ¡  |jdd t||ƒs0t‚| ¡ | ks@t‚|t j| |dksVt‚|| ksbt‚|dksnt‚t|ƒt|ƒks‚t‚|jdkst‚|d ksœt‚t jd |jd}|jdksºt‚| ¡ d ksÊt‚|t j| |dksàt‚t	 
t	 |¡¡}| |¡sþt‚t |¡}|ƒ d k	st‚~|ƒ d ks*t‚d S )N©ÚtypeT©ÚfullÚelseF)ÚpaÚscalarÚvalidateÚ
isinstanceÚAssertionErrorÚas_pyÚhashÚis_validr   ÚpickleÚloadsÚdumpsÚequalsÚweakrefÚref)r   r   r   r   ÚrestoredÚwr© r*   ú[/var/www/html/Darija-Ai-Train/env/lib/python3.8/site-packages/pyarrow/tests/test_scalars.pyÚtest_basics    s*    (
r,   c               	   C   sL   t jt d¡t ¡ dd} |  ¡  tjtdd | jdd W 5 Q R X 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_scalard   s    ÿr8   c                	   C   s"   t  t¡ t ¡  W 5 Q R X d S )N)r4   r5   ÚRuntimeErrorr   Z
NullScalarr*   r*   r*   r+   Útest_null_singletonl   s    r:   c                  C   sø   t  d ¡} | t jkst‚|  ¡ d ks(t‚| dks4t‚| t  d ¡kdksJt‚| dkdksZt‚t jt jksjt‚t jdksxt‚t  d d g¡}|D ]"}|t jksœt‚| ¡ d ksŠt‚qŠt t | ¡¡}| 	| ¡sÌt‚t
 | ¡}|ƒ d k	sät‚~ |ƒ d k	sôt‚d S )NÚ	somethingTr   F)r   )r   r   ZNAr   r   Úarrayr"   r#   r$   r%   r&   r'   )ÚnullÚarrÚvr(   r)   r*   r*   r+   Ú
test_nullsq   s$    

r@   c                  C   sD   t tdƒƒ} t | |  ¡}t|ƒ}t|tƒs0t‚t|ƒdks@t‚d S )Niô  )ÚlistÚranger   r<   Úsetr   r   Úlen)Úvaluesr>   Zset_from_arrayr*   r*   r+   Útest_hashing‹   s
    rF   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sZt‚d S )Nr   r   é   é   r   r   )r   r<   r    r   )r   r   Zhash1Zhash2r*   r*   r+   Útest_hashing_struct_scalar”   s
    "rI   c                  C   s˜   t  d¡} t  d¡}t| t jƒs$t‚t|t jƒs4t‚t|ƒdksDt‚t|ƒdksTt‚t| ƒdksdt‚t| ƒdkstt‚| ¡ dks„t‚|  ¡ dks”t‚d S )NFTz<pyarrow.BooleanScalar: True>ÚTruez<pyarrow.BooleanScalar: False>ÚFalse)r   r   r   ÚBooleanScalarr   ÚreprÚstrr   )ÚfalseÚtruer*   r*   r+   Ú	test_bool   s    

rQ   c               	   C   s  t  d¡} t| t jƒst‚t| ƒdks*t‚t| ƒdks:t‚|  ¡ dksJt‚t 	t
¡ t jddd W 5 Q R X t  d¡} t| t jƒsˆt‚t| ƒdks˜t‚t| ƒd	ks¨t‚|  ¡ dks¸t‚t jt d
¡dd} t| t jƒsÜt‚t| ƒdksìt‚t| ƒdksüt‚|  ¡ d
kst‚d S )Nr   z<pyarrow.Int64Scalar: 1>Ú1r   Úuint8r   ç      ø?z<pyarrow.DoubleScalar: 1.5>z1.5g      à?Úfloat16z<pyarrow.HalfFloatScalar: 0.5>z0.5)r   r   r   ÚInt64Scalarr   rM   rN   r   r4   r5   ÚOverflowErrorÚDoubleScalarÚnprU   ÚHalfFloatScalarr7   r*   r*   r+   Útest_numerics­   s"    

r[   c               	   C   sð   t  d¡} t | ¡}t|tjƒs$t‚| ¡ | ks4t‚|jt 	dd¡ksJt‚t  d¡} t
 tj¡ tj| tj	dddd W 5 Q R X t
 tj¡ tj| tj	dddd W 5 Q R X tj| tj	dddd}t|tjƒsÜt‚| ¡ | ksìt‚d S )Nr   r   r
   ú1.1234©Úscaler   r   )ÚdecimalÚDecimalr   r   r   ÚDecimal128Scalarr   r   r   Ú
decimal128r4   r5   ÚArrowInvalid©r?   r   r*   r*   r+   Útest_decimal128Ç   s    


""re   c               	   C   sð   t  d¡} t | ¡}t|tjƒs$t‚| ¡ | ks4t‚|jt 	dd¡ksJt‚t  d¡} t
 tj¡ tj| tj	dddd W 5 Q R X t
 tj¡ tj| tj	dddd W 5 Q R X tj| tj	dddd}t|tjƒsÜt‚| ¡ | ksìt‚d S )	Nz,1234567890123456789012345678901234567890.123é+   r
   r\   r   r]   r   r   )r_   r`   r   r   r   ÚDecimal256Scalarr   r   r   Z
decimal256r4   r5   rc   rd   r*   r*   r+   Útest_decimal256Ù   s    


""rh   c                  C   sb   t  ddd¡} t  ddd¡}t ¡ t ¡ fD ]0}| |fD ]"}tj||d}| ¡ |ks8t‚q8q,d S )Ni€  r   i¨  r   )ÚdatetimeÚdater   Údate32Údate64r   r   r   )Zd1Zd2r   Údr   r*   r*   r+   Ú	test_dateë   s    rn   c                  C   s`   t jt ddd¡t  d¡d} t ddd¡}t  ¡ t  ¡ fD ]}|  |¡}| ¡ |ks<t	‚q<d S )NiÜ  r   Úusr   )
r   r   ri   Ú	timestamprj   rk   rl   r3   r   r   )r   Úexpectedr   Úresultr*   r*   r+   Útest_date_castö   s
    
rs   c                  C   sv   t  dd¡} t  dd¡}t d¡t d¡t d¡t d¡g}|D ]0}| |fD ]"}tj||d}| ¡ |ksLt‚qLq@d S )	Né   r   é   r   Úmsro   Únsr   )ri   Útimer   Útime32Útime64r   r   r   )Út1Út2Útypesr   Útr   r*   r*   r+   Útest_time_from_datetime_timeÿ   s    $r   Ú	time_typei   @rv   ro   l            rw   )r   r   éýÿÿÿ)r€   c                 C   s,   t j| |d}|jdd |j| ks(t‚d S )Nr   Tr   )r   r   r   r   r   )r   r€   Z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*t‚|  d¡t jdddksFt‚|  d¡t jdddksbt‚t t¡ t  d¡ d	¡ W 5 Q R X d S )
Nr   Úint8r   Úint64Úuint32r	   Ú5ÚfooÚint32)r   r   r3   r   r4   r5   r6   )Úvalr*   r*   r+   Ú	test_cast,  s    rŠ   Úwin32z-Timezone database is not installed on Windows)Úreasonc               	   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s`t
‚d S )NÚpytzr   éÐ  r   ©Útzinforw   ÚUTC©Útzr   z2000-01-01 00:00:00.000000000Z)r4   Úimportorskipr   ri   Úutcr   r   rp   r3   r	   r   )r   ÚdtÚtsr*   r*   r+   Útest_cast_timestamp_to_string5  s
    
r˜   c               	   C   sl   t jdt  ¡ d} | jt  ¡ dd}t jdt  ¡ d}||ksBt‚t t j¡ |  t  ¡ ¡ W 5 Q R X d S )NrT   r   Fr.   r   )	r   r   Úfloat64r3   r„   r   r4   r5   rc   )Zfloat_scalarÚunsafe_castÚexpected_unsafe_castr*   r*   r+   Útest_cast_float_to_int@  s    rœ   c               	   C   sl   t jdt  ¡ d} | jt  ¡ dd}t jdt  ¡ d}||ksBt‚t t j¡ |  t  ¡ ¡ W 5 Q R X d S )Nl   ÿÿÿÿr   Fr.   g      PC)	r   r   r„   r3   r™   r   r4   r5   rc   )Z
int_scalarrš   r›   r*   r*   r+   Útest_cast_int_to_floatJ  s    r   c            
      C   s  dd l } | jdddj}ddddg}t|ƒD ]Ö\}}d	 |¡}tj | |¡¡}|  	d¡}|d  
¡ |ksnt‚|d jd
|  |jksŠt‚d}tj||d}	d	 |¡}tjj| |¡|	d}|  	d¡ d¡ |¡}|d  
¡ |ksæt‚|d jd
|  |jks,t‚q,d S )Nr   z2000-01-01 12:34:56é
   )Zperiodsrw   ro   rv   r   zdatetime64[{}]éè  úAmerica/New_Yorkr’   r   r•   )ÚpandasZ
date_rangerE   Ú	enumerateÚformatr   ÚArrayÚfrom_pandasÚastypeÚ	Timestampr   r   r   rp   Ztz_localizeZ
tz_convert)
Úpdr>   ÚunitsÚiÚunitÚdtypeÚ	arrow_arrrq   r“   Z
arrow_typer*   r*   r+   Útest_timestampT  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snt
‚|jdks|t
‚|jdksŠt
‚tjd|d}t  t¡ | 	¡  W 5 Q R X d S )Nr   r   r    rw   r’   l   è†$=3ir   rŽ   r   )r   r   iÏ  é   ì    †$=3i)r4   r”   r   r   rp   r   Útimezoneri   Úfromutcr   r   ÚyearÚhourr5   r6   )r   r“   r   r   r   rq   rr   r*   r*   r+   Útest_timestamp_nanos_nopandasp  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sdt	‚qdd S )Nr   r   r   r   i'  é   é   é   é;   i?B i²  ro   r‘   r’   r   )
r4   r”   r   ri   r•   r   r   rp   r   r   )r   Z
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s6t‚d S )Nr   r   r   z+02:00r’   z1970-01-01 02:00:00+02:00)r4   r”   r   r<   rp   rN   r   )r>   r*   r*   r+   Ú!test_timestamp_fixed_offset_print˜  s    
r»   c                  C   sª   t jddgdd} dddg}t|ƒD ]€\}}d |¡}t |  |¡¡}tjd	d
}t|d  	¡ tjƒsjt
‚|d  	¡ |ks~t
‚|d jd|d   | ¡ d ks$t
‚q$d S )Nr   ì     qaztimedelta64[ns]©r¬   ro   rv   r   ztimedelta64[{}]é  ©Úsecondsr   rŸ   ç    eÍÍA)rY   r<   r¢   r£   r   r¦   ri   Ú	timedeltar   r   r   r   Útotal_seconds)r>   r©   rª   r«   r¬   r­   rq   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ƒsBt‚|d  ¡ |ksVt‚|d j|jksjt‚tjdgt d¡d}|d  ¡ | jdddksžt‚d S )	Nr   r¼   rw   r   z1 hourr   r°   )r«   )	r¡   r   r<   ÚdurationZ	Timedeltar   r   r   r   )r¨   r>   rq   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:t‚| d  ¡ |ksNt‚| d j| 	¡ d ksht‚t jdgt  d¡d	} t
 t¡ | d  ¡  W 5 Q R X d S )
Nr   r¼   rw   r¾   r¿   r   rÁ   r°   r   )r   r<   rÅ   ri   rÂ   r   r   r   r   rÃ   r4   r5   r6   )r>   rq   r*   r*   r+   Útest_duration_nanos_nopandas¼  s    rÇ   c                  C   s^   t  dddg¡} t  | g¡}t|d  ¡ t jƒs4t‚|d  ¡ | ksHt‚|d j| ksZt‚d S )Niðñÿÿi  iÎÿÿÿr   )r   ÚMonthDayNanor<   r   r   r   r   )Ztripler>   r*   r*   r+   Útest_month_day_nano_intervalÊ  s
    rÉ   r‡   u   maÃ±ana)r   Ú
scalar_typc                 C   s”   t j| |d}t||ƒst‚| ¡ | ks,t‚| ¡ dks<t‚t| ƒt|ƒksPt‚t|ƒt| ƒksdt‚| ¡ }t|t jƒs|t‚| 	¡ |  
¡ kst‚d S )Nr   r;   )r   r   r   r   r   rM   rN   Ú	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t‚| ¡ | ks,t‚t|ƒt| ƒks@t‚t| ƒt|ƒksTt‚| ¡ | ksdt‚|dkspt‚| ¡ }t|t jƒsˆt‚| 	¡ | ks˜t‚d S )Nr   s   xxxxx)
r   r   r   r   r   rN   rM   rË   rÌ   rÍ   rÏ   r*   r*   r+   Útest_binaryä  s    rÒ   c               	   C   sd   t jdt  d¡d} t| t jƒs$t‚|  ¡ dks4t‚t t j	¡ t jdt  d¡d W 5 Q R X d S )Ns   foofr   r   s   foof5)
r   r   Úbinaryr   ÚFixedSizeBinaryScalarr   r   r4   r5   rc   r7   r*   r*   r+   Útest_fixed_size_binary÷  s
    rÕ   )r   r   c              	   C   s  dd g}t j|| d}|j| ks$t‚t|ƒdks4t‚t|jt jƒsFt‚|j ¡ |ksXt‚t||ƒsft‚t	|ƒt	|ƒkszt‚| 
¡ |ksŠt‚|d  
¡ dksžt‚|d  
¡ d ks²t‚|d |d ksÆt‚|d |d ksÚt‚t t¡ |d  W 5 Q R X t t¡ |d  W 5 Q R X d S )	Nr‡   r   r   r   r   r   éþÿÿÿr   )r   r   r   r   rD   r   rE   r¤   Ú	to_pylistrM   r   r4   r5   Ú
IndexError)r   r   r?   r   r*   r*   r+   Ú	test_list   s"    rÙ   c                  C   sP   t  tjdddgt ¡ d¡} | jt  t  ¡ ¡ks6t‚|  ¡ dddgksLt‚d S )Nr   r   r
   r½   )	r   r   rY   r<   r„   r   Úlist_r   r   r7   r*   r*   r+   Útest_list_from_numpy  s    rÛ   c                  C   s  dd l } t |  dddg¡¡}| ¡ dddgks4t‚tjdfdtjgt t 	¡ ¡fdtjgt t 
¡ ¡fdtjgt t 	d¡¡fd	tjgt t ¡ ¡ft d
¡tjgt t dd¡¡fg}|D ]@\}}t ttf¡ tj||d W 5 Q R X tj||d	d}q¾d S )Nr   r   r   r
   r=   r	   s   stringrG   TÚ0r¶   r   )r   r¥   )r¡   r   r   ZSeriesr   r   rY   ÚnanrÚ   rÓ   Úutf8Zbool_r_   r`   rb   r4   r5   r6   Ú	TypeError)r¨   r   ZcasesÚcaser   r*   r*   r+   Útest_list_from_pandas  s     úrá   c               	   C   sâ   t jdd dgt  t  ¡ d¡d} t| ƒdks0t‚t| t jƒs@t‚t| ƒdksPt‚|  	¡ dd dgksft‚| d  	¡ dkszt‚| d  	¡ d ksŽt‚| d | d ks¢t‚t
 t¡ | d  W 5 Q R X t
 t¡ | d  W 5 Q R X d S )	Nr   r
   r   z+<pyarrow.FixedSizeListScalar: [1, None, 3]>r   r   r   éüÿÿÿ)r   r   rÚ   r„   rD   r   r   ÚFixedSizeListScalarrM   r   r4   r5   rØ   r7   r*   r*   r+   Útest_fixed_size_list6  s     rä   c               	   C   sÂ  t  t  dt  ¡ ¡t  dt  ¡ ¡g¡} dddœ}t j|| d}t|ƒt| ¡ ƒ  krbddgkshn t‚t| 	¡ ƒt jdt  ¡ dt jdt  ¡ dgksœt‚t| 
¡ ƒdt jdt  ¡ dfdt jdt  ¡ dfgksØt‚d|ksät‚d|ksðt‚d|ksüt‚d|ks
t‚| ¡ |kst‚t|ƒt|ƒks2t‚t| ¡ ƒt|ƒksLt‚t|ƒdks^t‚t|d t jƒstt‚t|d t jƒsŠt‚|d  ¡ dks t‚|d  ¡ dks¶t‚t t¡ |d	  W 5 Q R X t jd | d}t|ƒt| ¡ ƒ  kr
ddgksn t‚| ¡ d ks"t‚d|ks0t‚d|ks>t‚t|d t jƒsTt‚t|d t jƒsjt‚|d jd
ks~t‚|d jd
ks’t‚|d  ¡ d ks¨t‚|d  ¡ d ks¾t‚d S )NÚxÚyr   g      @)rå   ræ   r   Úzr   znon-existentF)r   ÚstructÚfieldÚint16Úfloat32r   rA   Úkeysr   rE   Úitemsr   rM   rD   r   ÚInt16ScalarÚFloatScalarr4   r5   ÚKeyErrorr!   )r   r?   r   r*   r*   r+   Útest_structF  sP    þ
*
þ

þ
.rñ   c               	   C   s  t  t  dt  ¡ ¡t  dt  ¡ ¡t  dt  ¡ ¡g¡} t jdddg| d}t|ƒt| ¡ ƒ  krndddgkstn t	‚t
|ƒdks„t	‚||kst	‚t| ¡ ƒdt  dt  ¡ ¡fdt  d	t  ¡ ¡fdt  dt  ¡ ¡fgksÚt	‚d|ksæt	‚d|ksòt	‚d
|ksþt	‚d|kst	‚t t¡ |d  W 5 Q R X t|d t jƒs@t	‚|d  ¡ d	ksVt	‚t|d t jƒslt	‚|d  ¡ dks‚t	‚t|d t jƒs˜t	‚|d  ¡ d	ks®t	‚t|d t jƒsÄt	‚|d  ¡ dksÚt	‚dt|ƒksìt	‚tjtdd | ¡  W 5 Q R X d S )Nrå   ræ   )rå   r   )ræ   ç       @)rå   r
   r   r
   r   rò   rç   r   r   zpyarrow.StructScalarzduplicate field namesr0   )r   rè   ré   rê   rë   r„   r   rA   rì   r   rD   rí   r4   r5   rð   r   rï   r   rî   rV   rM   r6   )r   r   r*   r*   r+   Útest_struct_duplicate_fieldsu  s>    ý,
ý
ró   c               	   C   sz  t  t  ¡ t  ¡ ¡} ddg}t j|| d}t|ƒdks:t‚t|t jƒsJt‚t|j	t j
ƒs\t‚t|ƒdkslt‚|j	 ¡ dddœd	ddœgksŽt‚t||ƒD ]\}}||ks˜t‚q˜| ¡ |ks¾t‚|d t jd	t  ¡ dt jdt  ¡ dfksît‚|d
 |d kst‚|d |d kst‚t t¡ |d  W 5 Q R X t t¡ |d  W 5 Q R X t t |¡¡}| |¡svt‚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   rD   r   r   Ú	MapScalarrE   r¤   rM   r×   Úzipr   r4   r5   rØ   r"   r#   r$   r%   )r   r?   r   rª   Újr(   r*   r*   r+   Útest_map   s4    þ
þ
rù   c            	      C   sÜ   t  dd dddd g¡} t  dddg¡}t j | |¡}dd dddd g}| ¡ |ksTt‚tt| |ƒƒD ]t\}\}}|| }| ¡ |ks†t‚|j	 ¡ |ks˜t‚|j
 |¡s¨t‚|j |¡s¸t‚t t |¡¡}| |¡sbt‚qbd S )Nr   r   r   r‡   ÚbarZbaz)r   r<   ZDictionaryArrayÚfrom_arraysr×   r   r¢   r÷   r   r   Úindexr%   Ú
dictionaryr"   r#   r$   )	Úindicesrý   r>   rq   rø   rª   r?   r   r(   r*   r*   r+   Útest_dictionaryÂ  s    rÿ   c               	   C   sÜ   dddddg} dddd dg}t j | |¡}|d }t|t jƒsBt‚t|jt jƒsTt‚|jt  |¡d kslt‚| 	¡ dks|t‚|d }t|jt jƒs–t‚| 	¡ d ks¦t‚t
 t¡" t  dt  t  ¡ t  ¡ ¡¡ W 5 Q R X d S )	Nr
   r   rž   r¶   r¯   r   r   r   )r   ZRunEndEncodedArrayrû   r   ZRunEndEncodedScalarr   r   rV   r<   r   r4   r5   ÚNotImplementedErrorr   Zrun_end_encodedr„   )Zrun_endsrE   r>   r   r*   r*   r+   Útest_run_end_encodedÖ  s    r  c               
   C   sˆ  t j t jddddgt  ¡ dt  ddddg¡t  ddd	d
g¡g¡} | D ]h}|jdd t|t jƒsht‚|j	 
| j	¡szt‚|jdksˆt‚t t j¡ t t |¡¡ W 5 Q R X qH| d jdksÄt‚| d  ¡ dksØt‚| d jdksêt‚| d  ¡ dksþt‚| d jdkst‚| d  ¡ d	ks(t‚| d	 jdks<t‚| d	  ¡ d
ksRt‚t jjt jdddddddgddt jddddddd	gddt jddddgddt jddd	gddgd} | D ]p}|jdd t|t jƒsàt‚|j	 
| j	¡sôt‚|jdkst‚t t j¡ t t |¡¡ W 5 Q R X q¾| d jdksDt‚| d  ¡ dksZt‚| d jdksnt‚| d  ¡ d	ks„t‚d S )Nr   r   r   r   r   Úcrm   r   r
   r   Tr   rƒ   rˆ   ó   aó   bó   có   drÓ   r„   )r}   Zvalue_offsetsÚchildrenr   )r   Z
UnionArrayZfrom_sparser<   rƒ   r   r   ZUnionScalarr   r   r%   r!   r4   r5   ZArrowNotImplementedErrorr"   r#   r$   Z	type_coder   Z
from_dense)r>   r   r*   r*   r+   Ú
test_unionë  sN    þþþýr  )}ri   r_   r"   r4   Úsysr&   ÚnumpyrY   Zpyarrowr   Zpyarrow.computeZcomputer2   Zpyarrow.testsr   ÚmarkZparametrizerL   rV   rƒ   Z
Int8ScalarrS   ZUInt8Scalarrê   rî   Zuint16ZUInt16Scalarrˆ   ZInt32Scalarr…   ZUInt32Scalarr„   Zuint64ZUInt64ScalarrX   rU   rZ   rë   rï   r`   ra   rg   ZStringScalarZBinaryScalarZlarge_stringZLargeStringScalarZlarge_binaryZLargeBinaryScalarrÓ   rÔ   Z
ListScalarZ
large_listZLargeListScalarrÚ   rã   rj   ÚtodayZDate32Scalarrl   ZDate64ScalarÚnowZTimestampScalarrx   Úreplacery   ZTime32ScalarZTime64ScalarrÂ   ZDurationScalarrÈ   ZMonthDayNanoIntervalScalarZStructScalarrõ   r	   rö   r,   r8   r:   r@   rF   rI   rQ   r[   re   rh   rn   rs   r   rz   rk   rp   rÅ   Zmonth_day_nano_intervalZDataTyper‚   rŠ   ZskipifÚplatformZwindows_has_tzdatar˜   rœ   r   r¡   r®   Znopandasrµ   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  




 ÿ

 ÿÿÛ'
			







æ	ÿ
	





þþ	þ

/+"