
    <>i/g                        S SK Jr  S SKrS SKrS SKJrJr  S SKrS SKrS SK	r	S SK
r
S SKrS SKrS SKrS SKr S SKr S SKrS SKrS SKJr  S SKJrJr   S SKJr  \" \R@                  RC                  5       5       V Vs/ s H  u  p\"" US5      (       d  M  UPM     snn r#\" \R@                  RC                  5       5       V Vs/ s HB  u  p\$" U\%5      (       d  M  U\RL                  Ld  M&  \'" U\RL                  5      (       d  M@  UPMD     snn r(\RR                  " 5       \RT                  " 5       \RV                  " 5       \RX                  " 5       \RZ                  " 5       \R\                  " 5       \R^                  " 5       \R`                  " 5       /r1S/ SQ4S\2" S	5      4S
\2" S	5      4S\2" S	5      4S\2" S	5      4S\2" S	5      4S\2" S	5      4S\2" S	S5      4S\2" S	S5      4S/ SQ4S/ SQ4S/ SQ4S/ SQ4\Rf                  " S5      / SQ4\Rh                  " \RR                  " 5       5      SS/SS/S	S/SSS //4\Rj                  " \RT                  " 5       5      S// S!QS	S/SSS //4\Rl                  " S"\RR                  " 5       4S#\RR                  " 5       4/5      SSS$.SSSS$.SS	SS$./4/r7S% r8S& r9S' r:\Rv                  Ry                  S(5      S) 5       r=S* r> GSS+ jr?S, r@S- rAS. rBS/ rC\Rv                  R                  S0 5       rDS1 rES2 rFS3 rGS4 rH\Rv                  R                  S5\15      S6 5       rJ\Rv                  R                  S5\R                  " SS5      \R                  " SS5      /5      S7 5       rM\Rv                  R                  S5\15      S8 5       rN\Rv                  R                  S5\R                  " SS5      \R                  " SS5      /5      S9 5       rOS: rPS; rQS< rRS= rSS> rTS? rU\Rv                  R                  S@/ SAQ\R                  " SB5      \R                  " SC5      SD.4/ SEQ\R                  " SF5      SSD.4SSG/SSSD.445      SH 5       rWSI rXSJ rYSK rZSL r[SM r\SN r]SO r^SP r_SQ r`SR raSS rbST rcSU rdSV reSW rfSX rgSY rhSZ riS[ rj\" 5       S\ 5       rkS]S^1rl1 S_krm1 S`krn1 Sakro1 Sbkrn\n\o-  \l-  \l\o\n\mSc.rp\Rv                  R                  Sd/ SeQ5      \Rv                  R                  SfSgSh/5      Si 5       5       rqSj rrSk rs\Rv                  R$                  Sl 5       rtSm ruSn rvSo rwSp rxSq rySr rz\Rv                  R                  Ss\75      St 5       r{Su r|Sv r}\Rv                  R                  SwSxSy/5      Sz 5       r~S{ r\Rv                  R                  Ss\75      S| 5       rS} rS~ rS rS r\Rv                  R                  Ss\75      S 5       r\Rv                  R                  \Rv                  R                  Ss\75      S 5       5       rS rS rS rS rS rS rS r\Rv                  R                  SSS/5      S 5       r\Rv                  R                  SSS/5      S 5       r\Rv                  R                  SSS/5      S 5       rS rS rS rS r\Rv                  R                  SSS/5      S 5       r\Rv                  R                  S 5       r\Rv                  R                  S 5       rS rS rS rS r\Rv                  R                  S5\15      S 5       r\Rv                  R                  S5\15      S 5       rS rS rS rS r\Rv                  R                  S\GRD                  " 5       \GRF                  " 5       /5      S 5       r\Rv                  R                  S\15      S 5       r\" SS5      r\" SS5      r\" S\GRP                  S5      \" S\GRR                  S5      \" S\R                  S5      \" S\R                  S5      /rS rS rS rS rS rS r\Rv                  R                  \Rv                  R                  S\R`                  " 5       /\S9\Rv                  R                  S\S S9\Rv                  R                  S\\\// SQS9S 5       5       5       5       r\Rv                  R                  \Rv                  R                  S\R^                  " 5       \R`                  " 5       /\S9\Rv                  R                  S\S S9S 5       5       5       rS r\Rv                  R$                  \Rv                  GRj                  S 5       5       rGSS jr\Rv                  R$                  S 5       rS r\Rv                  R                  S/ SQ5      S 5       r\Rv                  R$                  \Rv                  GRj                  S 5       5       rS r\Rv                  GRj                  \Rv                  R                  SS5      \Rv                  R$                  S 5       5       5       rS rS rS rS rS rS rS rS rS rS rS rS rS rS rS rS r\Rv                  R                  \Rv                  R                  SS5      \Rv                  R                  SS5      S 5       5       5       r\Rv                  R                  \Rv                  R                  SS5      \Rv                  R                  SS5      S 5       5       5       r\Rv                  R                  \Rv                  R                  SS5      \Rv                  R                  SS5      S 5       5       5       r\Rv                  R                  \Rv                  R                  SS5      \Rv                  R                  SS5      S 5       5       5       rS rS rS rS rS rS rS rS rS r\Rv                  R                  SS/ SQ4S/ SQ4S/ SQ4S/ SQ4/5      S 5       rS rS rS rS r\Rv                  R                  S 5       r\Rv                  R                  \Rv                  R:                  S 5       5       rGS  rGS rGS rGS r\Rv                  R                  GSS S/ GSQ/ GSQ/ GSQS/4S SS/S/S/S/4S SSS/SS	/SS/S/4SSS/S	/S/S/4SSSS/SS/SS/S/445      \Rv                  R                  GSGS	5      \Rv                  R                  S\GR                  \RT                  \R`                  45      \Rv                  R                  GS
\Rh                  \Rj                  GS45      GS 5       5       5       5       r\Rv                  R                  GSGS5      \Rv                  R                  GSGS	5      \Rv                  R                  S\GR                  \RT                  \R`                  45      \Rv                  R                  GS
\Rh                  \Rj                  GS45      GS 5       5       5       5       r\Rv                  R                  GSGS5      \Rv                  R                  GSGS GS GS 45      GS 5       5       rGS rGSGS jr\Rv                  R                  S\RR                  " 5       \RT                  " 5       \GR                  " 5       \RV                  " 5       \GR                  " 5       \R^                  " 5       \R`                  " 5       \GRP                  " SS 5      \GRR                  " SS 5      \R                  " SS 5      \R                  " SS 5      45      \Rv                  R                  GSS\GR                  " \RT                  " 5       5      \GR                  " S5      \GR                  " \RV                  " 5       5      45      GS 5       5       rGS rGS rGS rg! \ a    Sr GNf = f! \ a    Sr GNf = f! \ a    Sr GNf = fs  snn f s  snn f (       )
namedtupleN)	lru_cachepartial)ArrowNotImplementedErrorArrowIndexError__arrow_compute_function__bool)TFFTTuint8   int8uint16int16uint32int32uint64
   int64float)r   皙?皙?333333?皙?doublestring)abNdddeebinary)   a   b   cs   ddds   ee   )s   abcs   bcds   cdes   defs   efg            	      )r%   r#   r&   r   r   r   r   c                  L   [         n [        U 5      S:  d   eU  Hu  nUR                  nUS   (       a  M  US   nUS:X  a  M(  U[        L a  [	        5       /S-  nO[	        5       /U-  n[
        R                  " [        SS9   U" U6   S S S 5        Mw     g ! , (       d  f       M  = f)Nr   options_requiredarityr   r#   zBGot unexpected argument type <class 'object'> for compute functionmatch)exported_functionslenr   Ellipsisobjectpytestraises	TypeError)	functionsfuncdescr-   argss        Y/var/www/html/land-tabula/venv/lib/python3.13/site-packages/pyarrow/tests/test_compute.pytest_exported_functionsr<   ^   s    
 #Iy>R.."# WA:HH:>DH:%D]]9"IJ $KJ J J Js   B
B#	c                      [          H8  n [        R                  " U R                  S   5      nUR                  S:w  a  M8   e   g )Nnamehash_aggregate)r0   pcget_functionr   kind)r8   arrow_fs     r;    test_hash_aggregate_not_exportedrD   x   s:     #//$"A"A&"IJ||//// #    c                     [         n [        U 5      S:  d   eU  Hb  n[        R                  " U5      nUR                  R                  5        H+  nUR                  UR                  UR                  4;  a  M+   e   Md     g )Nr   )	exported_option_classesr1   inspect	signature
parametersvaluesrB   VAR_POSITIONALVAR_KEYWORD)classesclssigparams       r;   test_exported_option_classesrR      sx    %Gw<2 $^^**,E::e&:&:&+&7&7&9 9 9 9 -	 rE   z<ignore:pyarrow.CumulativeSumOptions is deprecated as of 14.0c           
         / [         R                  " 5       P[         R                  " S5      P[         R                  R	                  [
        R                  " 5       5      P[         R                  " S SS9P[         R                  " 5       P[         R                  " SSS9P[         R                  " 5       P[         R                  " 5       P[         R                  " SS9P[         R                  " S5      P[         R                  " S5      P[         R                  " 5       P[         R                   " [
        R"                  " S	5      5      P[         R$                  " 5       P[         R&                  " SS
S	S5      P[         R(                  " SS9P[         R*                  " SS/SS/[
        R,                  " SS05      [
        R,                  " SS05      /S9P[         R.                  " [
        R"                  " S	5      S5      P[         R0                  " S5      P[         R2                  " 5       P[         R4                  " 5       P[         R6                  " S5      P[         R8                  " S	S9P[         R:                  " S	SS9P[         R<                  " S/SS9P[         R>                  " 5       P[         R@                  " 5       P[         RB                  " SSSS9P[         RD                  " SSS9P[         RF                  " SS	S5      P[         RH                  " SS5      P[         RJ                  " SS 5      P[         RL                  " S 5      P[         RN                  " S	S!SS"9P[         RP                  " S#S 5      P[         RR                  " 5       P[         RT                  " SS$/S%9P[         RV                  " [
        RX                  " S	/5      5      P[         RZ                  " SS&9P[         R\                  " SS	S	5      P[         R^                  " S'/SS9P[         R`                  " 5       P[         Rb                  " S5      P[         Rd                  " 5       P[         Rf                  " S(S)S5      P[         Rh                  " / S*9P[         Rj                  " 5       P[         Rl                  " 5       P[         Rn                  " S+5      P[         Rp                  " S,5      P[         Rr                  " 5       P[         Rt                  " S-S.5      P[         Rv                  " SSSS/9P[         Rx                  " S0S15      PnU Rz                  R|                  R~                  S2   (       a%  UR                  [         R                  " S35      5        U Vs1 s H  n[        U5      iM     nn[         Ha  nXC;  d  M
  U Rz                  R|                  R~                  S2   (       d  M4  U[         R                  :w  d  MJ   UR                  U" 5       5        Mc     U H  nX":X  d   e[        U5      R                  UR                  R                  5      (       d   eUR                  5       n[         R                  R                  U5      nX&:X  d   e[        U5      R                  S55      (       a#  [        U5      R                  S65      (       d   eM  [        U5      [        U5      :X  a  M   e   [        XS	S  5       H  u  pxXx:w  a  M   e   [        [         R                   " [
        R"                  " S	5      5      5      S7:X  d   e[        [         R                  " 5       5      S8:X  d   eg s  snf ! [         a    [        R                  " S4U 35         GM  f = f)9NUTCFstart
skip_nullsr   count_from_zero
week_startTrW   patternr$   )	recursivefieldnamesr   1r   2)field_nullabilityfield_metadatafirstr   periodat_startnull_placementheightraise)unexpected_key_behavior	ascendingmax	sort_keysrj   
tiebreakerrq   rj   r%   towards_infinitysecond)week_starts_mondayd   r   rn   rq   	min_countdummy
descending%Ysindices NFKC皙??rv   rY   first_week_is_fully_in_yearr&   0timezone_dataEurope/LjubljanazOptions class is not tested: CumulativeSumOptionsCumulativeOptionszIndexOptions(value=int64:1)z7ArraySortOptions(order=Ascending, null_placement=AtEnd))Nr@   ArraySortOptionsAssumeTimezoneOptionsCastOptionssafepar   r   CountOptionsDayOfWeekOptionsDictionaryEncodeOptionsRunEndEncodeOptionsElementWiseAggregateOptionsExtractRegexOptionsExtractRegexSpanOptionsFilterOptionsIndexOptionsscalarJoinOptionsListSliceOptionsListFlattenOptionsMakeStructOptionsKeyValueMetadataMapLookupOptionsMatchSubstringOptionsModeOptionsNullOptions
PadOptionsPairwiseOptionsPartitionNthOptionsPivotWiderOptionsQuantileOptionsRandomOptionsRankOptionsRankQuantileOptionsReplaceSliceOptionsReplaceSubstringOptionsRoundOptionsRoundBinaryOptionsRoundTemporalOptionsRoundToMultipleOptionsScalarAggregateOptionsSelectKOptionsSetLookupOptionsarraySkewOptionsSliceOptionsSortOptionsSplitOptionsSplitPatternOptionsStrftimeOptionsStrptimeOptionsStructFieldOptionsTakeOptionsTDigestOptionsTrimOptionsUtf8NormalizeOptionsVarianceOptionsWinsorizeOptionsWeekOptionsZeroFillOptionsconfigpyarrow
is_enabledappendtyperG   r6   r4   failrepr
startswith	__class____name__	serializeFunctionOptionsdeserializezip)	requestoptionsoptionrN   rO   bufdeserializedoption1option2s	            r;   test_option_class_equalityr      s   =
=
  '= 	BGGI&= 	4E:	=
 	= 	Ea@= 	""$= 	 = 	&&$7= 	y)= 	""9-= 	= 			!%= 	= 	Ar1d+=  	.!=" 	gw/04d|-/-@-@#s-L-/-@-@#s-L-N	O#=* 	BIIaL'2+=, 	  +-=. 	/=0 	1=2 	a3=4 	!$5=6 	q<7=8 	hZI9=: 	;=< 	==> 	&0U	D?=B 	.8	:C=F 	q!S)G=H 	""3,I=J 	-.K=L 	01M=N 	8EO=P 	!!#'9:Q=R 	!!#S=T 	!(:';<U=V 	BHHaSM*W=X 	#Y=Z 	1a [=\ 	/0L]=^ 	_=` 	y)a=b 	c=d 	4d+e=f 	b)g=h 	i=j 	k=l 	sm=n 	'o=p 	q=r 	D#&s=t 	$38	:u=x 	1c"y=G~ ~~((9r//0BCD*12'tF|'G2& ''22?CCr///Csu% ' F|&&v'7'7'@'@AAAA ))55c:%%% <""#9::%001DEEEE<4#5555   5!!! 6 		!-.2OOOO##%&AB B B= 3  C;C5ABBCs   4]	]#]65]6c                      [        [        R                  " 5       5      S:  d   eS[        R                  " 5       ;   d   eg )Nr   add)r1   r@   list_functions rE   r;   test_list_functionsr      s5    r  "#b(((B%%''''rE   c                    ^ [         R                  " U 5      n[        XA5      (       d   eUR                  nXS:  d   eU[	        UR
                  5      :X  d   e[        U4S jUR
                   5       5      (       d   eg )Nc              3   <   >#    U  H  n[        UT5      v   M     g 7fN)
isinstance).0kerexpected_ker_clss     r;   	<genexpr>&_check_get_function.<locals>.<genexpr>   s     ILSz#/00Ls   )r@   rA   r   num_kernelsr1   kernelsall)r>   expected_func_clsr   min_num_kernelsr8   ns     `   r;   _check_get_functionr      sk    ??4 Dd....ADLL!!!!IDLLIIIIIrE   c                  X    [        S[        R                  [        R                  S5        g )Nr      )r   r@   ScalarFunctionScalarKernelr   rE   r;   test_get_function_scalarr     s    r00"//1ErE   c                  X    [        S[        R                  [        R                  S5        g )Nuniquer   )r   r@   VectorFunctionVectorKernelr   rE   r;   test_get_function_vectorr     s    ""3"3R__aHrE   c                  X    [        S[        R                  [        R                  S5        g )Nmeanr   )r   r@   ScalarAggregateFunctionScalarAggregateKernelr   rE   r;   "test_get_function_scalar_aggregater    s     : :00!5rE   c                  X    [        S[        R                  [        R                  S5        g )Nhash_sumr$   )r   r@   HashAggregateFunctionHashAggregateKernelr   rE   r;    test_get_function_hash_aggregater    s    
B$<$<..3rE   c                     [         R                  " / SQ5      n [        R                  " / SQ5      nU R                  U5      n[        R
                  " SX/[         R                  " 5       S9n[         R                  " / SQ5      nUR                  U5      (       d   eUR                  U5      (       d   e[        R                  " X[         R                  " 5       S9nUR                  U5      (       d   eg )N)foobarbaz)r%   r%   r$   take)memory_pool)r
  r
  r	  )r   r   npr  r@   call_functiondefault_memory_poolequals)arrr   result1result2expectedresult3s         r;   #test_call_function_with_memory_poolr    s    
(((
)Chhy!GhhwGv~+-+A+A+CEGxx-.H>>(####>>(####ggc0F0F0HIG>>(####rE   c                    [         R                  " 5        H  n[         R                  " U5      nU R                  U R	                  U5      5      n[        U5      [        U5      L d   eUR                  UR                  :X  d   eUR                  UR                  :X  d   eUR                  UR                  :X  a  M   e   g r   )	r@   r   rA   loadsdumpsr   r>   r-   r   pickle_moduler>   r8   reconstructeds       r;   test_pickle_functionsr  $  s    !!#t$%++M,?,?,EFM"d4j000!!TYY...""djj000((D,<,<<<< $rE   c                     [         R                  " 5        H:  n [        [         U5      nU R	                  U R                  U5      5      nX2L a  M:   e   g ! [         a     ML  f = fr   )r@   r   getattrAttributeErrorr  r  r  s       r;   test_pickle_global_functionsr!  /  sc    !!#	2t$D &++M,?,?,EF$$$ $  		s   A
A#"A#c                     [         R                  " 5        H  n [         R                  " U 5      n[        U[         R                  5      (       d   eUR
                  U :X  d   eUR                  nUR                  [        U5      :X  d   e[        S U 5       5      (       d   e[        U5        U H  n[        U5        M     M     g )Nc              3   V   #    U  H  n[        U[        R                  5      v   M!     g 7fr   )r   r@   Kernel)r   r   s     r;   r   +test_function_attributes.<locals>.<genexpr>C  s     A#:c299--s   '))r@   r   rA   r   Functionr>   r   r   r1   r   r   )r>   r8   r   r   s       r;   test_function_attributesr'  ;  s    !!#t$$,,,,yyD   ,,3w<///AAAAAAT
CI  $rE   c                  *   [         R                  " SS/SS /5      n U R                  5       SS /:X  d   e[         R                  " SS/S5      n U R                  5       SS/:X  d   e[         R                  " / SQS5      R                  5       / SQ:X  d   eg )	Nr$   r%   r&   r   r'   )r  r	  Nr  TFN)r@   r   	to_pylistequalr  s    r;   test_input_type_conversionr-  I  s    
&&!Q!T
#C==?q$i'''
&&!Q
C==?q!f$$$88($9;*=> > >rE   
arrow_typec                    [         R                  " / SQU S9nUR                  5       R                  5       S:X  d   e[        R                  " U5      R                  5       S:X  d   e[         R                  " / SQU S9nUR                  5       R                  5       S:X  d   e[        R                  " U5      R                  5       S:X  d   e[         R                  " S /U S9nUR                  5       R                  5       b   e[        R                  " U5      R                  5       b   eUR                  SS9R                  5       S:X  d   e[        R                  " USS9R                  5       S:X  d   e[         R                  " / U S9nUR                  5       R                  5       b   eUR                  SS9R                  5       S:X  d   e[        R                  " USS9R                  5       S:X  d   eg )Nr$   r%   r#   r&   r   r   r$   r%   r#   r&   Nr   rz   )r   r   sumas_pyr@   r.  r  s     r;   test_sum_arrayr6  U  s   
((<j
1C779??"""66#;"$$$
((%J
7C779??"""66#;"$$$
((D6

+C779??$$$66#;&&&77Q7%%'1,,,66##))+q000
((2J
'C779??$$$77Q7%%'1,,,66##))+q000rE   c                    SSK Jn  [        R                  R	                  U 5      (       a!  [        R
                  " SU R                  5      O [        R                  " SU R                  5      nU" S5      nU" S5      nU" S5      n[        R                  " U" S5      U" S	5      /U S
9nUR                  5       R                  5       U:X  d   eUR                  5       R                  U:X  d   e[        R                  " U" S5      U" S	5      S /U S
9nUR                  5       R                  5       U:X  d   eUR                  5       R                  U:X  d   e[        R                  " U" S5      U" S5      /U S
9nUR                  5       R                  5       U:X  d   eUR                  5       R                  U:X  d   e[        R                  " U" S5      U" S5      S /U S
9nUR                  5       R                  5       U:X  d   eUR                  5       R                  U:X  d   e[        R                  " S /U S
9nUR                  5       R                  5       b   eUR                  5       R                  U:X  d   eUR                  SS9R                  5       U:X  d   eUR                  SS9R                  U:X  d   e[        R                  " / U S
9nUR                  5       R                  5       b   eUR                  5       R                  U:X  d   eUR                  SS9R                  5       U:X  d   eUR                  SS9R                  U:X  d   eg )Nr   Decimal&   L   5.79z10.000.001.234.56r1  z8.77rz   )decimalr9  r   typesis_decimal128
decimal128scale
decimal256r   r3  r4  r   )r.  r9  max_precision_typeexpected_sumexpected_sum_overflowzeror  s          r;   test_sum_decimal_arrayrJ  k  s    88!!*-- 	b***+]]2z//0 
 6?L#G,6?D ((GFOWV_5J
GC779??,,,779>>////
((GFOWV_d;*
MC779??,,,779>>//// ((GFOWV_5J
GC779?? 5555779>>////
((GFOWV_d;*
MC779?? 5555779>>////
((D6

+C779??$$$779>>////77Q7%%'4///77Q7$$(::::
((2J
'C779??$$$779>>////77Q7%%'4///77Q7$$(::::rE   c           	      v   [         R                  " [         R                  " / SQU S9/5      n[        R                  " U5      R                  5       S:X  d   e[         R                  " [         R                  " SS/U S9[         R                  " SS/U S9/5      n[        R                  " U5      R                  5       S:X  d   e[         R                  " [         R                  " SS/U S9[         R                  " / U S9[         R                  " SS/U S9/5      n[        R                  " U5      R                  5       S:X  d   e[         R                  " SU S9nUR                  S	:X  d   e[        R                  " U5      R                  5       b   e[        R                  " US	S
9R                  5       S	:X  d   eg )Nr0  r1  r   r$   r%   r#   r&   r   r   rz   )r   chunked_arrayr   r@   r3  r4  
num_chunksr5  s     r;   test_sum_chunked_arrayrN    sc   


BHH\
CD
EC66#;"$$$



!Qj)288QF+L C 66#;"$$$



!Qj)
*%
!Qj) C
 66#;"$$$


2J
/C>>Q66#;&&&66##))+q000rE   c           	      (   SSK Jn  [        R                  R	                  U 5      (       a!  [        R
                  " SU R                  5      O [        R                  " SU R                  5      nU" S5      nU" S5      n[        R                  " [        R                  " U" S5      U" S5      /U S	9/5      n[        R                  " U5      R                  5       U:X  d   e[        R                  " U5      R                  U:X  d   e[        R                  " [        R                  " U" S5      /U S	9[        R                  " U" S5      /U S	9/5      n[        R                  " U5      R                  5       U:X  d   e[        R                  " U5      R                  U:X  d   e[        R                  " [        R                  " U" S5      /U S	9[        R                  " / U S	9[        R                  " U" S5      /U S	9/5      n[        R                  " U5      R                  5       U:X  d   e[        R                  " U5      R                  U:X  d   e[        R                  " S
U S	9nUR                  S:X  d   e[        R                  " U5      R                  5       b   e[        R                  " U5      R                  U:X  d   e[        R                  " USS9R                  5       U:X  d   e[        R                  " USS9R                  U:X  d   eg )Nr   r8  r:  r;  r<  r=  r>  r?  r1  r   rz   )r@  r9  r   rA  rB  rC  rD  rE  rL  r   r@   r3  r4  r   rM  )r.  r9  rF  rG  rI  r  s         r;   #test_sum_chunked_array_decimal_typerP    su    88!!*-- 	b***+]]2z//0 
 6?L6?D


HHgfowv7jI	
C
 66#;,...66#;1111



'&/"4
'&/"4 C 66#;,...66#;1111



'&/"4
*%
'&/"4 C
 66#;,...66#;1111


2J
/C>>Q66#;&&&66#;111166##))+t33366##((,>>>>rE   c                     [         R                  " / SQSS9n [        R                  " U 5      n[	        U5      S:X  d   eUS   R                  5       SSS.:X  d   e[        R                  " U SS9n[	        U5      S:X  d   eUS   R                  5       SSS.:X  d   eUS   R                  5       S	SS.:X  d   e[         R                  " / SS9n [	        [        R                  " U 5      5      S:X  d   e[         R                  " / S
QSS9n [        R                  " U SS9n[	        U5      S:X  d   e[        R                  " U SS9n[	        U5      S:X  d   e[        R                  " U SSS9n[	        U5      S:X  d   e[         R                  " SS/5      n [        R                  " U SS9n[	        U5      S:X  d   eUS   R                  5       SSS.:X  d   eUS   R                  5       SSS.:X  d   eg )Nr$   r$   r#   r&   r#   r   r   r1  r$   r   r%   modecountr   r#   )r$   r$   r#   r&   r#   NFr[   r'   rz   r   rW   r{   T)r   r   r@   rT  r1   r4  r  rT  s     r;   test_mode_arrayrY    s   
((%G
4C773<Dt9>>7==?q15555773!Dt9>>7==?q155557==?q15555
((2G
$Crwws|!!!
(((w
7C7735)Dt9>>773!$Dt9>>7735A6Dt9>>
((D%=
!C773!Dt9>>7==?uq99997==?ta8888rE   c                  6   [         R                  " [         R                  " / SQSS9/5      n [        R                  " U 5      n[        U5      S:X  d   eUS   R                  5       SSS.:X  d   e[        R                  " U SS9n[        U5      S:X  d   eUS   R                  5       SSS.:X  d   eUS   R                  5       S	SS.:X  d   e[         R                  " S
SS9n U R                  S:X  d   e[        [        R                  " U 5      5      S:X  d   eg )NrR  r   r1  r$   r   r%   rS  rV  r#   r   )r   rL  r   r@   rT  r1   r4  rM  rX  s     r;   test_mode_chunked_arrayr[    s    


BHH%7gFG
HC773<Dt9>>7==?q15555773!Dt9>>7==?q155557==?q15555


2G
,C>>Qrwws|!!!rE   c                      Sn [         R                  " [        R                  U S9   [        R                  " / 5        S S S 5        [        R                  " / [        R
                  " 5       S9  g ! , (       d  f       N7= f)Nz@cannot construct ChunkedArray from empty vector and omitted typer.   r1  )r4   r5   r   ArrowInvalidrL  r   )msgs    r;   test_empty_chunked_arrayr_    sM    
LC	rc	2
 
3 Rbggi( 
3	2s   A..
A<c                     / SQn [         R                  " U 5      R                  5       S:X  d   e[         R                  " U SS9R                  5       S:X  d   e[         R                  " U SS9R                  5       S:X  d   eg )N)r$   r%   r#   r&   r   r'      r   g      @r   )ddofr$   g      @)r@   variancer4  datas    r;   test_variancerf    sk    #D;;t""$,,,;;t!$**,444;;t!$**,333rE   c                     / SQn [         R                  " U 5      R                  5       [        R                  " SSS9:X  d   e[         R                  " U SS9R                  5       b   e[         R                  " U SS9R                  5       b   eg )	Nr$   r$   Nr%   g;f?绽|=relFr[   r&   rz   )r@   skewr4  r4   approxrd  s    r;   	test_skewrn    sr    D774= FMM2C$OOOO774E*002:::7741%++-555rE   c                     / SQn [         R                  " U 5      R                  5       [        R                  " SSS9:X  d   e[         R                  " U SS9R                  5       b   e[         R                  " U SS9R                  5       b   eg )	Nrh  g      ri  rj  Fr[   r&   rz   )r@   kurtosisr4  r4   rm  rd  s    r;   test_kurtosisrq    sr    D;;t""$d(FFFF;;t.446>>>;;tq)//1999rE   zinput, expected)      ?g       @g      @g      D@NgIcݺ?gpՕ@)rl  rp  )r$   r%   (   gdV?rs  c                     [         R                  " U SSS9n[         R                  " U SSS9nUR                  5       US   :X  d   eUR                  5       US   :X  d   eg )NTF)rW   biasedrl  rp  )r@   rl  rp  r4  )inputr  
arrow_skewarrow_kurtosiss       r;   test_unbiased_skew_and_kurtosisry  #  s`     4>J[[4FN&!1111!Xj%9999rE   c                     [         R                  " 5       [         R                  " 5       4[         R                  " 5       [         R                  " 5       44 H  u  p[         R
                  " / SQU S9n[        R                  " US5      n[         R
                  " / SQUS9nXC:X  d   e[        R                  " USSS9n[         R
                  " / SQUS9nXC:X  a  M   e   g )N)abcababcabbaABNr1  r{  )r$   r$   r%   r   r   NTignore_case)r$   r$   r%   r   r$   N)r   r   r   large_stringr   r   r@   count_substringtyoffsetr  resultr  s        r;   test_count_substringr  3  s    ))+rxxz2//+RXXZ8:hh?bI##C.881?!!!##C4@881?!!!:rE   c                     [         R                  " 5       [         R                  " 5       4[         R                  " 5       [         R                  " 5       44 H  u  p[         R
                  " / SQU S9n[        R                  " US5      n[         R
                  " / SQUS9nUR                  U5      (       d   e[        R                  " USSS9n[         R
                  " / SQUS9nUR                  U5      (       a  M   e   g )N)r{  r|  baAacaar~  r  Nr1  za+)r$   r$   r#   r$   r   NTr  )r$   r$   r%   r$   r$   N)	r   r   r   r  r   r   r@   count_substring_regexr  r  s        r;   test_count_substring_regexr  A  s    ))+rxxz2//+RXXZ8:hhAK))#t4881?v&&&&))#tF881?v&&&&:rE   c                     [         R                  " 5       [         R                  " 5       [         R                  " 5       [         R                  " 5       4 H  n [         R
                  " / SQU S9n[        R                  " US5      nUR                  5       / SQ:X  d   e[        R                  " US5      nUR                  5       / SQ:X  d   e[         R
                  " / SQU S9n[        R                  " USS	S
9nUR                  5       / SQ:X  d   e[        R                  " USS	S
9nUR                  5       / SQ:X  a  M   e   g )N)r{  r|  r~  Nr1  r{  )r   r$   r]   Nza?b)r   r$   r   N)zab*zcAB*r~  zaB?zaB*Tr  )r   r$   r]   r]   )r   r$   r   r   )
r   r   r   r  large_binaryr   r@   find_substringr*  find_substring_regex)r  r  r  s      r;   test_find_substringr  O  s    yy{BIIK):BOO<MNhh0r:""3-!%5555((e4!_444hh3"=""34@!^333((eF!\111 OrE   c                  
   [         R                  " / SQ5      n [        R                  " U S5      n[         R                  " / SQ5      nUR	                  U5      (       d   e[         R                  " / SQ5      n [        R                  " U SSS9n[         R                  " / SQ5      nUR	                  U5      (       d   e[        R                  " U SSS9n[         R                  " / SQ5      nUR	                  U5      (       d   eg )	N)r{  zba%r~  ca%dNz_a\%%)FTFTN)aBzbA%r~  r  NTr  F)FFFTN)r   r   r@   
match_liker  r  r  r  s      r;   test_match_liker  `  s    
((4
5C]]3)Fxx89H??6""""
((4
5C]]3d;Fxx89H??6""""]]3e<Fxx9:H??6""""rE   c                  
   [         R                  " / SQ5      n [        R                  " U S5      n[         R                  " / SQ5      nUR	                  U5      (       d   e[         R                  " / SQ5      n [        R                  " U SSS9n[         R                  " / SQ5      nUR	                  U5      (       d   e[        R                  " U SSS9n[         R                  " / S	Q5      nUR	                  U5      (       d   eg )
N)r{  abcr~  Nr{  TTFN)u   áBu   Ábcr~  Nu   ábTr  F)FFFN)r   r   r@   match_substringr  r  s      r;   test_match_substringr  o  s    
((,
-CT*Fxx12H??6""""
((.
/CU=Fxx12H??6""""U>Fxx34H??6""""rE   c                  
   [         R                  " / SQ5      n [        R                  " U S5      n[         R                  " / SQ5      nUR	                  U5      (       d   e[         R                  " / SQ5      n [        R                  " U SSS9n[         R                  " / SQ5      nUR	                  U5      (       d   e[        R                  " U SSS9n[         R                  " / SQ5      nUR	                  U5      (       d   eg )	N)r{  r  r~  cNz^a?b)TTTFN)r  AbcBAr  NTr  F)FFFFN)r   r   r@   match_substring_regexr  r  s      r;   test_match_substring_regexr  ~  s    
((1
2C%%c62Fxx78H??6""""
((1
2C%%c6tDFxx78H??6""""%%c6uEFxx:;H??6""""rE   c                     [         R                  " / SQ5      n [        R                  " U 5      n[         R                  " / SQ5      nUR	                  U5      (       d   e[         R                  " / SQ5      n [        R
                  " U 5      n[         R                  " / SQ5      nUR	                  U5      (       d   e[         R                  " / SQ5      n [        R                  " U SS9n[         R                  " / SQ5      nUR	                  U5      (       d   e[        R                  " U S5      n[         R                  " / SQ5      nUR	                  U5      (       d   eg )N) fooNu    　foo bar 	)r  Nfoo bar)r  Nu
   　foo baru    f　)
characters)ooNzoo bar 	)r   r   r@   utf8_trim_whitespacer  ascii_trim_whitespace	utf8_trimr  s      r;   	test_trimr    s    
((6
7C$$S)Fxx01H??6""""
((6
7C%%c*Fxx67H??6""""
((6
7C\\#*5Fxx12H??6""""\\#z*Fxx12H??6""""rE   c                     [         R                  " / SQ5      n [        SS5       H  n[        R                  " [        SS5      S /5       H  nS H  n[         R                  " U  Vs/ s H  nUR                  5       XU2   PM     sn5      n[        R                  " XX#S9nUR                  U5      (       d   e[        R                  " U XU5      U:X  a  M   e   M     M     g s  snf )N) u   𝑓u   𝑓öu   𝑓öõu   𝑓öõḍu   𝑓öõḍšr'   )r]   r$   r%   r#   rV   stopstep)	r   r   range	itertoolschainr4  r@   utf8_slice_codeunitsr  )r  rV   r  r  kr  r  s          r;   test_slice_compatibilityr    s    
((U
VCr1OOE"aL4&9D-88.1%3.1 &'WWYu$%?.1%3 4004<v......s/4DBEKL L L . : %3s   &C$c            
         / SQn [         R                  " U 5      n[        R                  " [	        SS5      [	        SS5      [	        SS5      5       GH0  u  p#nUS:X  a  M  [         R                  " U Vs/ s H  nUR                  5       X#U2   PM     sn5      n[        R                  " XX4S9nUR                  U5      (       d   e[        R                  " XX45      U:X  d   eU  H  n[         R                  " U[         R                  " [        U5      5      S9n	XX42   n[        R                  " XX45      n
U
R                  [         R                  " [        U5      5      :X  d   eU
R                  5       U:X  a  M   e   GM3     g s  snf )	N)rE   r    s   as   ab s   abcs   abder  r'   r  r&   r   r  r1  )r   r   r  productr  r4  r@   binary_slicer  r   r   r1   r   )re  r  rV   r  r  r  r  r  item
fsb_scalaractuals              r;   test_binary_slice_compatibilityr    sH   DD
((4.C&..uR|/4R|/4R|=T 1988&)+&) WWYu$7&)+ ,44v&&&&s46&@@@D4biiD	.BCJ$O,H__ZCF;;"))CM"::::<<>X--- =
+s   4F
c                     [         R                  " SS/5      n [        R                  " U SS9n[         R                  " SS// SQ/5      nUR	                  U5      (       d   e[        R                  " U SSS	9n[         R                  " SS/S
S//5      nUR	                  U5      (       d   e[        R                  " U SSSS9n[         R                  " SS/SS//5      nUR	                  U5      (       d   eg )N-foo---bar--
---foo---b---r\   z-foozbar--r  r  r   r$   
max_splitsr  foo---bTr  reversez---foor   )r   r   r@   split_patternr  r  s      r;   test_split_patternr    s    
((NL1
2Cc51Fxx&'*,<=>H??6""""c5Q7Fxx&'*RO<=H??6""""c5QEFxx&'*XsO<=H??6""""rE   c                     [         R                  " SS/5      n [        R                  " U 5      n[         R                  " SS// SQ/5      nUR	                  U5      (       d   e[        R                  " U SS9n[         R                  " SS/SS	//5      nUR	                  U5      (       d   e[        R                  " U SS
S9n[         R                  " SS/SS//5      nUR	                  U5      (       d   eg )Nr      foo  　	br  r	  r  r$   r  r  
   foo  　	bTr  r  r   )r   r   r@   utf8_split_whitespacer  r  s      r;   test_split_whitespace_utf8r    s    
((I01
2C%%c*Fxx%)9:;H??6""""%%ca8Fxx%".>)?@AH??6""""%%caFFxx%&#78H??6""""rE   c                     [         R                  " SS/5      n [        R                  " U 5      n[         R                  " SS// SQ/5      nUR	                  U5      (       d   e[        R                  " U SS9n[         R                  " SS/SS	//5      nUR	                  U5      (       d   e[        R                  " U SS
S9n[         R                  " SS/SS//5      nUR	                  U5      (       d   eg )Nr  r  r  r	  )r  r  u   　r   r$   r  r  r  Tr  u	    foo  　r   )r   r   r@   ascii_split_whitespacer  r  s      r;   test_split_whitespace_asciir    s    
((I01
2C&&s+Fxx%)CDEH??6""""&&sq9Fxx%".>)?@AH??6""""&&sq$GFxx%.#)>?@H??6""""rE   c                     [         R                  " SS/5      n [        R                  " U SS9n[         R                  " / SQ/ SQ/5      nUR	                  U5      (       d   e[        R                  " U SSS9n[         R                  " S	S
/S	S//5      nUR	                  U5      (       d   e[
        R                  " [        SS9   [        R                  " U SSSS9nS S S 5        g ! , (       d  f       g = f)Nr  r  z-+r  )r  r  r	  r  r  r$   r  r  zfoo---bar--r  z"Cannot split in reverse with regexr.   r  T)r\   r  r  )r   r   r@   split_pattern_regexr  r4   r5   NotImplementedErrorr  s      r;   test_split_pattern_regexr    s    
((NL1
2C##C6Fxx/1ABCH??6""""##C!<Fxx"m,r9o>?H??6""""	*A
C''1d<
C 
C 
Cs   C&&
C4c                     / SQn [         R                  " U 5      nUR                  5       SSS.:X  d   e[         R                  " U [         R                  " 5       S9nUR                  5       SSS.:X  d   e[         R                  " U [         R                  " SS9S9nUR                  5       SSS.:X  d   e[         R                  " U [         R                  " SS9S9nUR                  5       S S S.:X  d   e[         R                  " U S	S0S9nUR                  5       S S S.:X  d   e[         R                  " U SS9nUR                  5       S S S.:X  d   e[        R
                  " [        5         [         R                  " U [         R                  " 5       SS
9nS S S 5        [         R                  " 5       n[        R
                  " [        5         [         R                  " XS9nS S S 5        [        R
                  " [        SS9   [         R                  " 5       nS S S 5        g ! , (       d  f       N= f! , (       d  f       NW= f! , (       d  f       g = f)N)r&   r   r'   Nr$   r$   r'   )minro   r   Tr[   FrW   )r   rW   zmin_max takes 1 positionalr.   )r@   min_maxr4  r   r4   r5   r6   r   )re  r   r   s      r;   test_min_maxr    s   D


4A779!,,,,


4!:!:!<=A779!,,,,


4!:!:d!KLA779!,,,,


4!:!:e!LMA779T2222 	

4,!67A779T2222


4E*A779T2222 
y	!JJ"335%I 
"
 nnG	y	!JJt- 
" 
y(D	EJJL 
F	E 
"	! 
"	! 
F	Es$   -*H#H4I#
H14
I
Ic                     [         R                  " SSS9n [        R                  " / SS9n[         R                  " U5      R                  5       b   e[         R                  " USS9R                  5       SL d   e[         R                  " XS9R                  5       SL d   e[        R                  " / SQ5      n[         R                  " U5      R                  5       S	L d   e[         R                  " XS9R                  5       S	L d   e[        R                  " / S
Q5      n[         R                  " U5      R                  5       SL d   e[         R                  " XS9R                  5       b   eg )NFr   rW  r	   r1  rz   r  )FNTT)FNF)r@   r   r   r   anyr4  r   r   s     r;   test_anyr  )  s    ''5AFG
&!A66!9??$$$66!q!'')U22266!%++-666
$%A66!9??$$$66!%++-555
%&A66!9??%%%66!%++-555rE   c                     [         R                  " SSS9n [        R                  " / SS9n[         R                  " U5      R                  5       b   e[         R                  " USS9R                  5       SL d   e[         R                  " XS9R                  5       SL d   e[        R                  " SS/5      n[         R                  " U5      R                  5       SL d   e[         R                  " XS9R                  5       SL d   e[        R                  " SS /5      n[         R                  " U5      R                  5       SL d   e[         R                  " XS9R                  5       b   e[        R                  " S/SS //5      n[         R                  " U5      R                  5       SL d   e[         R                  " XS9R                  5       b   e[        R                  " S/S//5      n[         R                  " U5      R                  5       SL d   e[         R                  " XS9R                  5       SL d   eg )	NFr   rW  r	   r1  rz   Tr  )r@   r   r   r   r   r4  rL  r  s     r;   test_allr  <  s    ''5AFG
&!A66!9??$$$66!q!'')T11166!%++-555
%A66!9??%%%66!%++-666
$A66!9??$$$66!%++-555
4&4,/0A66!9??$$$66!%++-555
4&5'*+A66!9??%%%66!%++-666rE   c                      / SQn [         R                  " U 5      R                  5       / SQ:X  d   e[        R                  " [
        5         [         R                  " U S S9  S S S 5        g ! , (       d  f       g = f)Nr&   r   N)TTFr  )r@   is_validr*  r4   r5   r6   rd  s    r;   test_is_validr  W  sN    D;;t&&(,????	y	!
D$' 
"	!	!s   A**
A8c                     [         R                  R                  [        R                  " S5      :X  d   e[         R
                  R                  [        R                  " S5      :X  d   e[         R                  R                  [        R                  " S5      :X  d   e[         R                  R                  [        R                  " S5      :X  d   eg )Naf          Compute the minimum and maximum values of a numeric array.

        Null values are ignored by default.
        This can be changed through ScalarAggregateOptions.

        Parameters
        ----------
        array : Array-like
            Argument to compute function.
        skip_nulls : bool, default True
            Whether to skip (ignore) nulls in the input.
            If False, any null in the input forces the output to null.
        min_count : int, default 1
            Minimum number of non-null values in the input.  If the number
            of non-null values is below `min_count`, the output is null.
        options : pyarrow.compute.ScalarAggregateOptions, optional
            Alternative way of passing options.
        memory_pool : pyarrow.MemoryPool, optional
            If not passed, will allocate memory from the default memory pool.

        Examples
        --------
        >>> import pyarrow as pa
        >>> import pyarrow.compute as pc
        >>> arr1 = pa.array([1, 1, 2, 2, 3, 2, 2, 2])
        >>> pc.min_max(arr1)
        <pyarrow.StructScalar: [('min', 1), ('max', 3)]>

        Using ``skip_nulls`` to handle null values.

        >>> arr2 = pa.array([1.0, None, 2.0, 3.0])
        >>> pc.min_max(arr2)
        <pyarrow.StructScalar: [('min', 1.0), ('max', 3.0)]>
        >>> pc.min_max(arr2, skip_nulls=False)
        <pyarrow.StructScalar: [('min', None), ('max', None)]>

        Using ``ScalarAggregateOptions`` to control minimum number of non-null values.

        >>> arr3 = pa.array([1.0, None, float("nan"), 3.0])
        >>> pc.min_max(arr3)
        <pyarrow.StructScalar: [('min', 1.0), ('max', 3.0)]>
        >>> pc.min_max(arr3, options=pc.ScalarAggregateOptions(min_count=3))
        <pyarrow.StructScalar: [('min', 1.0), ('max', 3.0)]>
        >>> pc.min_max(arr3, options=pc.ScalarAggregateOptions(min_count=4))
        <pyarrow.StructScalar: [('min', None), ('max', None)]>

        This function also works with string values.

        >>> arr4 = pa.array(["z", None, "y", "x"])
        >>> pc.min_max(arr4)
        <pyarrow.StructScalar: [('min', 'x'), ('max', 'z')]>
        a          Add the arguments element-wise.

        Results will wrap around on integer overflow.
        Use function "add_checked" if you want overflow
        to return an error.

        Parameters
        ----------
        x : Array-like or scalar-like
            Argument to compute function.
        y : Array-like or scalar-like
            Argument to compute function.
        memory_pool : pyarrow.MemoryPool, optional
            If not passed, will allocate memory from the default memory pool.
        a          Find the element-wise minimum value.

        Nulls are ignored (by default) or propagated.
        NaN is preferred over null, but not over any valid value.

        Parameters
        ----------
        *args : Array-like or scalar-like
            Argument to compute function.
        skip_nulls : bool, default True
            Whether to skip (ignore) nulls in the input.
            If False, any null in the input forces the output to null.
        options : pyarrow.compute.ElementWiseAggregateOptions, optional
            Alternative way of passing options.
        memory_pool : pyarrow.MemoryPool, optional
            If not passed, will allocate memory from the default memory pool.
        aO          Filter with a boolean selection filter.

        The output is populated with values from the input at positions
        where the selection filter is non-zero.  Nulls in the selection filter
        are handled based on FilterOptions.

        Parameters
        ----------
        input : Array-like or scalar-like
            Argument to compute function.
        selection_filter : Array-like or scalar-like
            Argument to compute function.
        null_selection_behavior : str, default "drop"
            How to handle nulls in the selection filter.
            Accepted values are "drop", "emit_null".
        options : pyarrow.compute.FilterOptions, optional
            Alternative way of passing options.
        memory_pool : pyarrow.MemoryPool, optional
            If not passed, will allocate memory from the default memory pool.

        Examples
        --------
        >>> import pyarrow as pa
        >>> arr = pa.array(["a", "b", "c", None, "e"])
        >>> mask = pa.array([True, False, None, False, True])
        >>> arr.filter(mask)
        <pyarrow.lib.StringArray object at ...>
        [
          "a",
          "e"
        ]
        >>> arr.filter(mask, null_selection_behavior='emit_null')
        <pyarrow.lib.StringArray object at ...>
        [
          "a",
          null,
          "e"
        ]
        )r@   r  __doc__textwrapdedentr   min_element_wisefilterr   rE   r;   test_generated_docstringsr  `  s    :: 42 4" 4 4 4l 66>>X__ .    " &&(// ; +   $ 99 '1 '! ' ' 'rE   c                     [         R                  " [        R                  5      n [	        U 5      S:X  d   e[         R                  " [        R
                  5      n [	        U 5      S:X  d   e[         R                  " [        R                  5      n [	        U 5      S:X  d   e[         R                  " [        R                  5      n [	        U 5      S:X  d   e[         R                  " [        R                  5      n [	        U 5      S:X  d   e[         R                  " [        R                  5      n [	        U 5      S:X  d   eg )Nz(x, y, /, *, memory_pool=None)zK(array, /, *, skip_nulls=True, min_count=1, options=None, memory_pool=None)zj(array, /, q=0.5, *, interpolation='linear', skip_nulls=True, min_count=0, options=None, memory_pool=None)zZ(*strings, null_handling='emit_null', null_replacement='', options=None, memory_pool=None)z'(indices, /, *values, memory_pool=None)z<(n, *, initializer='system', options=None, memory_pool=None))
rH   rI   r@   r   strr  quantilebinary_join_element_wisechooserandom)rP   s    r;   test_generated_signaturesr    s   
 

BFF
#Cs87777


BJJ
'Cs8 : ; ; ; 

BKK
(Cs8 : ; ; ; 

B77
8Cs8 , - - - 

BII
&Cs8@@@@


BII
&Cs8 : ; ; ;rE   c                     [        5       n [        SS5       Vs/ s H  nSUs=::  a  S:  a  M  O  [        U5      PM!     nn[        R                  " [
        R                  " U5      5      R                  5       n[        U5       H7  u  pAX4   UR                  5       :w  d  M  U R                  [        U5      5        M9     U $ s  snf )N           )setr  chrr@   utf8_is_printabler   r   r*  	enumerateisprintabler   ord)newr  r  is_printableis        r;   find_new_unicode_codepointsr    s    
%C"'g"6 1"6Q A.. . a&"6J 1''(<=GGIL*%?ammo-GGCFO & J1s
   CCi  i  >   ,  -  .  /  0  1  2  3  4  5  6  7  8  9  :  ;  <  =  >  ?  @  A  B  C  D  E  F  G  H  I  J  K  L  M  N  O  P  Q  R  S  T  U  V  W  X  Y  Z  [  \  \  ]  ]  ^  ^  _  _  `  a  b  c  d  e  f  g  h  i  j  p  q   x  z  |,  },                                                霦    靦                                                                                                                >H    N  N  Q  4  o  N  	N  _  O  _  _  _  !  *8  ,  0  AS  CS  DS  ES  FQ  F  LS  Lc  L  M;  ]N  iQ  kQ  k  mQ  pO  s  x  x  z^  ~v  4  醀  N  N  N  s  鮌    鳌  N  N  S  S  S  S           g    V  N  N  X    X    ^  b  ^  >l   @
 A
 B
 C
 ` `$  a a$  b b$  c c$  d d$  e e$  f f$  g g$  h h$  i  j  k  l  m  n  o  p  p   q  t   t$  u   u$  v   v$  v'  w   w$  w'  x   x$  x'  y   y$  y'  z$  z'  {$  {'  |$  |'  }'  ~'     '     '     '     '     '     '     '     '     $  '     $  $  '  $  '  $  '  $  '  $  '  $  '  $  '  '  '             $  $  $  $  $  $  $  $  $  $  $  >A   r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  )is_alnumis_alphais_digit
is_numericis_lowerfunction_name)
rL  rM  is_ascii
is_decimalrN  rP  rO  r  is_spaceis_uppervariantasciiutf8c                    US-   U -   nU R                  SS5      n[        R                  U [        5       5      [	        5       -  n[        [        (       a  SOS5       H  nU[        SS5      ;   a  M  XT;   a  M  [        U5      n[        [        U5      (       d  M>  U S:w  d  MF  [        R                  " U/5      n[        [        U5      nU" U5      S   R                  5       [        Xc5      " 5       :X  a  M   e   g )	N_r  r  r  r  r  rT  r   )replacecodepoints_ignoregetr  r  r  rW  r  hasattrr@   r   r   r  r4  )	rQ  rV  
arrow_namepy_nameignorer  r  ar
arrow_funcs	            r;   test_string_py_compat_booleanrd  h  s     3.J##C,G""=#%8#%&F%%3W-ff%%; F2z""}
'B1#B Z0Jb>!$**,0C0EEEE .rE   c                     [         R                  " / SQ5      n [        R                  " U SS9R	                  5       / SQ:X  d   e[        R
                  " U SS9R	                  5       / SQ:X  d   e[        R                  " U SS9R	                  5       / SQ:X  d   e[        R                  " U S5      R	                  5       / SQ:X  d   e[        R
                  " U S5      R	                  5       / SQ:X  d   e[        R                  " U S5      R	                  5       / SQ:X  d   e[         R                  " / SQ5      n [        R                  " U SS9R	                  5       / SQ:X  d   e[        R                  " U SS9R	                  5       / S	Q:X  d   e[        R                  " U SS9R	                  5       / S
Q:X  d   e[        R                  " U S5      R	                  5       / SQ:X  d   e[        R                  " U S5      R	                  5       / S	Q:X  d   e[        R                  " U S5      R	                  5       / S
Q:X  d   eg )N)Nr   abcdr#   width)Nz a rf  )Nz  arf  )Nza  rf  )N   árf  )Nu    á rf  )Nu     árf  )Nu   á  rf  )
r   r   r@   ascii_centertolist
ascii_lpad
ascii_rpadutf8_center	utf8_lpad	utf8_rpadr,  s    r;   test_padrq    s   
((&
'C??3a(//15JJJJ==A&--/3HHHH==A&--/3HHHH??3"))+/DDDD==a '')-BBBB==a '')-BBBB
(('
(C>>#Q'..04JJJJ<<1%,,.2HHHH<<1%,,.2HHHH>>#q!((*.DDDD<<Q&&(,BBBB<<Q&&(,BBBBrE   c            	         [         R                  [         R                  L d   e/ SQn [        SS5       Hu  n[        R
                  " U 5      n[         R                  " X!S9R                  5       nU  Vs/ s H  oDb  UR                  U5      OS PM     nnX5:X  a  Mg   SU SU SU 35       e   [        R
                  " / SQ5      n[         R                  " U[         R                  " S	S
S9S9R                  5       nU/ SQ:X  d   e[        R
                  " / SQ5      n[         R                  " U[         R                  " SSS9S9R                  5       nU/ SQ:X  d   e[        R
                  " S/5      n[        R                  " [        R                  SS9   [         R                  " U[         R                  " SSS9S9  S S S 5        [        R                  " [        R                  SS9   [         R                  " U[         R                  " SSS9S9  S S S 5        g s  snf ! , (       d  f       Nh= f! , (       d  f       g = f)N)Ar  ABCr  -1z+1ra   Nr   r'   rg  zMismatch at width=z: z vs )ra   z-2z+3r   u   💠)rh  paddingr  )u   💠💠💠💠1u   -💠💠💠2u   +💠💠💠3r&   x)xxx1z-xx2z+xx3r  zPadding must be one codepointr.   spamr  )r@   
utf8_zfillutf8_zero_fillr  r   r   r*  zfillr   r4   r5   r]  )examplesrh  r  r  rw  r  s         r;   test_utf8_zfillr~    s   ==B----- =Hq!hhx ""34>>@GOPx!mAGGEN=xP!W%7wbXJ#WW!	  (($
%CsB,>,>-! ""+)+ NNNN (($
%CsB,>,>- (y{ ---- ((E7
C	r.M	N
#r'9'96'RS 
O	r.M	N
#r'9'92'NO 
O	N' Q" 
O	N	N	Ns   3H)H"+)H3"
H03
Ic            	      `   [        SS5      n [        R                  " / SQ5      nUR                  5       R	                  [
        5      R                  [        R                  S 05      nU  H  nU  Hw  nUR                  R                  X4S5      n[        R                  " XUSS9nUR                  5       UR                  5       :X  d   e[        R                  " XUS5      U:X  a  Mw   e   M     [        R                  " / SQ5      nUR                  5       R	                  [
        5      R                  [        R                  S 05      nU  Hb  nU  HY  nUR                  R                  X4S5      n[        R                  " XUSS9nUR                  5       UR                  5       :X  a  MY   e   Md     g )Nr  r&   )Nr  r   r{  r  rf  abcdeXX)rV   r  replacement)Nr  u   πu   πbu   πbθu   πbθdu   πbθde)r  r   r   	to_pandasastyper3   r[  r  nanr  slice_replacer@   binary_replace_slicerk  utf8_replace_slice)offsetsr  seriesrV   r  r  r  s          r;   test_replace_slicer    sT   BlG
((@
AC]]_##F+33RVVTNCFDzz//TBH,,t?F==?hoo&7777**3tTBfLLL   ((H
IC]]_##F+33RVVTNCFDzz//TBH**t?F==?hoo&7777	  rE   c                     [         R                  " / SQ5      n [        R                  " U SSS9nUR	                  5       / SQ:X  d   e[        R                  " U SS5      nUR	                  5       / SQ:X  d   e[        R                  " U SSSS9nUR	                  5       / SQ:X  d   e[        R                  " U SSSS	9nUR	                  5       / SQ:X  d   eg )
N)foozfoofoodNr  r	  r\   r  )barzbarbardNr$   )r\   r  max_replacements)barzfoor  N)r  )r   r   r@   replace_substringrk  )re  rb  s     r;   test_replace_plainr    s    88-.D			dEu	EB99;3333			dE5	1B99;3333			dEu/0
2B99;3333			dE51	EB99;3333rE   c                  H   [         R                  " / SQ5      n / SQn[        R                  " U SSS9nUR	                  5       U:X  d   e[        R                  " U SSS9nUR	                  5       U:X  d   e[        R                  " U SS5      nUR	                  5       U:X  d   eg )N)r  moodN)f00m00dNz(.)ooz\100r  )r  )r   r   r@   replace_substring_regexrk  )re  r  rb  s      r;   test_replace_regexr    s    88)*D$H		#	#D'w	OB99;("""		#	#D'w	GB99;("""		#	#D'7	;B99;("""rE   c                      [         R                  " SS/5      n SSS.SSS./n[        R                  " U SS	9nUR	                  5       U:X  d   e[        R                  " U S5      nUR	                  5       U:X  d   eg )
Na1zb2zr   ra   letterdigitr   rb   z(?P<letter>[ab])(?P<digit>\d)r  )r   r   r@   extract_regexrk  rb  r  structs      r;   test_extract_regexr    sv    	4.	!B-#/LMHb*JKF==?h&&&b"BCF==?h&&&rE   c                     [         R                  " SS/5      n SS/SS/S.SS/SS/S./n[        R                  " U SS	9nUR	                  5       U:X  d   e[        R                  " U S5      nUR	                  5       U:X  d   eg )
Nr  zb234zr   r$   r  r%   r#   z(?P<letter>[ab])(?P<digit>\d+)r  )r   r   r@   extract_regex_spanrk  r  s      r;   test_extract_regex_spanr    s    	4"	#Bq6QF3q6QF35H""2/PQF==?h&&&""2'HIF==?h&&&rE   c                  H   [         R                  " SS/S / /5      n [         R                  " / SQ5      n[        R                  " U S5      R	                  U5      (       d   e[         R                  " SS/[         R
                  " 5       S9n[         R                  " SS	/[         R
                  " 5       S9n[         R                  " S
S/SS//[         R                  " [         R
                  " 5       5      S9n [        R                  " X5      R	                  U5      (       d   eg )Nr  r	  )zfoo-barNr  -ra   rb   r1  a1bc2dr   r   r  d)r   r   r@   binary_joinr  r   list_)ar_listr  separator_arrays      r;   test_binary_joinr    s    hhb12Gxx-.H>>'3'..x8888hhSz		<OxxRYY[9Hhhc
S#J/bhhryy{6KLG>>'3::8DDDDrE   c                     [         R                  " S [         R                  " 5       S9n / SQ/ SQ/ SQ/n[        R                  " U6 R                  5       / SQ:X  d   e[        R                  " SSS5      R                  5       S	:X  d   e[        R                  " SU S5      R                  5       b   e[        R                  " SSU 5      R                  5       b   e[        R                  " S
S9n[        R                  " USU06R                  5       / SQ:X  d   e[        R                  " SSSUS9R                  5       S	:X  d   e[        R                  " SU SUS9R                  5       S:X  d   e[        R                  " SSXS9R                  5       b   e[        R                  " SSS9n[        R                  " USU06R                  5       / SQ:X  d   e[        R                  " SSSUS9R                  5       S	:X  d   e[        R                  " SU SUS9R                  5       S:X  d   e[        R                  " SSXS9R                  5       b   eg )Nr1  )Nr   r   )r  Nr  )Nr  z--)NNb--dr   r   r  za-bskip)null_handlingr   )Nr   r  r  r[  ry  )r  null_replacement)Na-spamr  r  )r   r   r   r@   r  r*  r4  r   )nullarrsr  r[  s       r;   test_binary_join_element_wiser    sK   99T		,D.0ABD&&-779  &&sC5;;=FFF&&sD#6<<>FFF&&sC6<<>FFF>>/D&&;d;EEG  &&S#t%%*UW6 6 6&&T3&&+eg5 5 5&&S$&&+eg6 6 6 nn9vNG&&>g>HHJ ! ! !&&S#w((-59 9 9&&T3)).H= = =&&S$)).9 9 9rE   )r  rK   c                    [         R                  " XS9n[         R                  " 5       [         R                  " 5       4 H  n[         R                  " / SQUS9nUR	                  U5      nUR                  5         [         R                  " US   US   US   S /U S9nUR                  U5      (       d   e[         R                  " / US9nUR	                  U5      nUR                  5         [         R                  " / U S9nUR                  U5      (       a  M   e   [         R                  " SS/5      n[        R                  " [        5         UR	                  U5        S S S 5        [         R                  " SS/5      n[        R                  " [        5         UR	                  U5        S S S 5        g ! , (       d  f       N[= f! , (       d  f       g = f)Nr1  r   r&   r%   Nr   r&   r%   r   r]   )
r   r   r   r   r  validater  r4   r5   
IndexError)r  rK   r  indices_typer   r  r  s          r;   	test_taker  !  sS   
((6
#CBHHJ/((?>'"88VAYq	6!9dC"M}}X&&&& ((2L1'"88BR(}}X&&&& 0 hh1vG	z	" 
# hh2wG	z	" 
#	"	 
#	" 
#	"s   F4G4
G
Gc                  @   [         R                  " [        S5      5      n S Hk  n[         R                  " / SQUS9nU R                  U5      nUR	                  5         [         R                  " / SQ5      nUR                  U5      (       a  Mk   e   [         R                  " 5       [         R                  " 5       4 HN  n[         R                  " / SQUS9n[        R                  " [        5         U R                  U5        S S S 5        MP     g ! , (       d  f       Mb  = f)Nr   )r
   r   r   r   r   r   r   r   r  r1  )r   r&   r%   )r   r   r  r  r  r  float32float64r4   r5   r  )r  r  r   r  r  s        r;   test_take_indices_typesr  ;  s    
((58
C?((?>'"88O,}}X&&&&? rzz|4((9<8]]./HHW 0/ 5//s   /D
D	c                     [         R                  " / SQ/ SQ/5      n [         R                  " / SQ5      nU R                  U5      n[         R                  " / SQ/5      nUR	                  U5      (       d   e[         R                  " S/SS//5      nU R                  U5      n[         R                  " S/S	S
//5      nUR	                  U5      (       d   eg )N)r   r   r  r  e)fghr  j)r   r   r$   r'   r(   r%   )r   r  r   r  r  r  r$   r(   r%   r   r  r  )r   rL  r   r  r  )r  r   r  r  s       r;   test_take_on_chunked_arrayr  L  s    


	
	
 C" hh)*GXXgF!? @AH==""""aV}-GXXgF	
 	
	! H ==""""rE   orderedFTc                 b   [         R                  R                  / SQ/ SQU S9nUR                  [         R                  " / SQ5      5      nUR                  5         UR                  5       / SQ:X  d   eUR                  R                  5       / SQ:X  d   eUR                  R                  U L d   eg )N)r   r$   r%   r   r$   r%   r   r   r  )r  )r   r$   r#   )r   r   r   )
r   DictionaryArrayfrom_arraysr  r   r  r*  
dictionaryr   r  )r  r  r  s      r;   test_take_dictionaryr  r  s    



(
();_18 ) :CXXbhhy)*F
OO000&&(O;;;;;')))rE   c                  >   [         R                  " S /S-  5      n [         R                  " S /S-  /S-  5      n[         R                  " U /S/S9n[         R                  " SU 05      n[         R                  " / SQ5      n[        U R                  U5      5      S:X  d   e[        UR                  U5      5      S:X  d   e[        UR                  U5      R                  S5      5      S:X  d   e[        UR                  U5      R                  S5      5      S:X  d   eg )	Nr   r   r%   r   r`   )r$   r#   ra  Nr&   r   )r   r   rL  record_batchtabler1   r  column)r  chunked_arrbatchr  r   s        r;   test_take_null_typer  }  s    
((D6B;
C""TFQJ<!#34KOOSE#/EHHc3Z Ehh'Gsxx !Q&&&{()Q...uzz'"))!,-222uzz'"))!,-222rE   c                 `   [         R                  " XS9nUR                  5       nUR                  SS9  [	        [        U5      5       Vs/ s H  oBU   R                  (       d  M  UPM     nnUR                  [         R                  " U5      5      nUR                  U5      (       d   eg s  snf )Nr1  Tfull)	r   r   	drop_nullr  r  r1   r  r  r  )r  rK   r  r  r  r   r  s          r;   test_drop_nullr    s~    
((6
#C]]_F
OOOC/=/QV__q/G=xx)*H=="""" >s   
B+%B+c                      [         R                  " SS // SQS // /5      n [         R                  " S/SS// / /5      nU R                  5       nUR                  U5      (       d   eg )Nr   r  r  Nr  r  )r   rL  r  r  )r  expected_dropr  s      r;   test_drop_null_chunked_arrayr    sa    


S$K)9D62F
GC$$sec3ZR%@AM]]_F==''''rE   c                  h   [         R                  " [         R                  " / SQ5      /S/S9n U R                  5       n[         R                  " [         R                  " / SQ5      /S/S9nUR	                  U5      (       d   e[         R                  " [         R                  " / SQ5      [         R                  " / SQ5      /SS/S9n U R                  5       n[         R                  " [         R                  " S/5      [         R                  " S/5      /SS/S9nUR	                  U5      (       d   eg )Nr   Nr  r  Na'r  r   r  r  )NNr  Nr  zb'r  )r   r  r   r  r  )r  r  r  s      r;   test_drop_null_record_batchr    s    OO	-	./v?E__F 9:4&IH==""""OO	-	.	.	/	19=tFE __F	3%"((C5/*4,@H==""""rE   c                     [         R                  " [         R                  " / SQ5      /S/S9n [         R                  " [         R                  " / SQ5      /S/S9nU R                  5       nUR	                  U5      (       d   e[         R                  " [         R
                  " SS // SQ/5      [         R
                  " SS // SQ/5      [         R
                  " S/S/S /SS //5      // S	QS9n [         R                  " [         R                  " SS/5      [         R                  " SS/5      [         R                  " SS/5      // S	QS9nU R                  5       nUR	                  U5      (       d   e[         R                  " [         R
                  " SS// S
Q/5      [         R
                  " S/S/S /SS //5      [         R
                  " SS // SQ/5      // S	QS9n [         R                  " [         R                  " SS/5      [         R                  " SS/5      [         R                  " SS/5      // S	QS9nU R                  5       nUR	                  U5      (       d   eg )Nr  r   r  r  r  )Nr  Nr   r  r  r  r  r  rs  BDza`)zc`d`Nr  )r   r  r   r  r  rL  )r  r  r  s      r;   test_drop_null_tabler    s	   HHbhh:;<SEJExx/23C5AH__F==""""HHb&&d5E'FG&&d5F'GH&&utfsDk'JKM +,E xx3*-3*-3*-/ ./H __F==""""HHb&&c
O'DE&&utfsDk'JK&&t6H'IJL +,E xx3*-3*-4,/1 ./H __F==""""rE   c                     [         R                  " S /S-  5      n [         R                  " S /S-  /S-  5      n[         R                  " U /S/S9n[         R                  " SU 05      n[        U R                  5       5      S:X  d   e[        UR                  5       5      S:X  d   e[        UR                  5       R                  S5      5      S:X  d   e[        UR                  5       R                  S5      5      S:X  d   eg )Nr   r   r%   r   r  r   )r   r   rL  r  r  r1   r  r  )r  r  r  r  s       r;   test_drop_null_null_typer    s    
((D6B;
C""TFQJ<!#34KOOSE#/EHHc3Z Es}}1$$${$$&'1,,,u ''*+q000u ''*+q000rE   c                    [         R                  " XS9n[         R                  " / SQ5      nUR                  USS9nUR                  5         UR	                  [         R                  " US   US   /U S95      (       d   eUR                  USS9nUR                  5         UR	                  [         R                  " US   US   S /U S95      (       d   e[         R                  " / SQ5      n[
        R                  " [        5         UR                  U5        S S S 5        [         R                  " / S	Q5      n[
        R                  " [        S
S9   UR                  U5        S S S 5        g ! , (       d  f       NZ= f! , (       d  f       g = f)Nr1  TFFTNdropnull_selection_behaviorr   r#   	emit_nullr   r$   r   r$   r   TFTmust all be the same lengthr.   )	r   r   r  r  r  r4   r5   r  
ValueErrorr  rK   r  maskr  s        r;   test_filterr    s)   
((6
#C8845DZZfZ=F
OO==6!9fQi"8rBCCCCZZkZBF
OO==6!9fQi">RHIIII 88O$D	*	+

4 
, 88'(D	z)F	G

4 
H	G 
,	+
 
H	Gs   E,E=,
E:=
Fc                    [         R                  " XS9n[        R                  " / SQ5      nUR                  USS9nUR	                  5         UR                  [         R                  " US   US   /U S95      (       d   eg )Nr1  r  r  r  r   r#   )r   r   r  r  r  r  r  s        r;   test_filter_numpy_array_maskr    sj     ((6
#C8845DZZfZ=F
OO==6!9fQi"8rBCCCCrE   c                     [         R                  " SS // SQ/5      n [         R                  " S/S//5      n[         R                  " S/S S//5      n[         R                  " / SQ5      [         R                  " / SQSS//5      / SQ4 HT  nU R                  U5      nUR	                  U5      (       d   eU R                  USS	9nUR	                  U5      (       a  MT   e   g )
Nr   r  r  TFNFTr)  FTr  r  )r   rL  r   r  r  )r  r  expected_nullr  r  s        r;   test_filter_chunked_arrayr    s    


S$K9
:C$$secU^4M$$sedC[%9:M 	12
-t}=>( D!}}]++++D+F}}]++++rE   c                  r   [         R                  " [         R                  " / SQ5      /S/S9n [         R                  " / SQ5      nU R                  U5      n[         R                  " [         R                  " SS/5      /S/S9nUR	                  U5      (       d   e[         R
                  " SS/S /SS//5      nU R                  U5      nUR	                  U5      (       d   eU R                  US	S
9n[         R                  " [         R                  " / SQ5      /S/S9nUR	                  U5      (       d   eg )Nr   Nr  r  r  r  r  r  r   r  TFr  r  r   Nr  )r   r  r   r  r  rL  )r  r  r  r  chunked_masks        r;   test_filter_record_batchr
    s   OO	,	-.tf>E 8845D\\$F#s 45dVDH=="""" ##dE]TFUDM$JKL\\,'F==""""\\$\DF)9 :;D6JH==""""rE   c                  0   [         R                  " [         R                  " / SQ5      /S/S9n [         R                  " [         R                  " SS/5      /S/S9n[         R                  " [         R                  " / SQ5      /S/S9n[         R                  " / SQ5      [         R                  " SS// S	Q/5      / SQ4 HT  nU R	                  U5      nUR                  U5      (       d   eU R	                  US
S9nUR                  U5      (       a  MT   e   g )Nr  r   r  r  r  r  TF)NFTr  r  )r   r  r   rL  r  r  )r  r  r  r  r  s        r;   test_filter_tabler     s    HHbhh9:;C5IEHHbhhSz23C5AMHHbhh'789#GM 	12
4-)<=>( d#}}]++++dKH}}]++++rE   c                  ^   [         R                  " SS // SQ/5      n [         R                  " [         R                  " / SQ5      /S/S9n[         R                  " [         R                  " / SQ5      /S/S9nXU4 H  n[         R                  " / SQ5      n[
        R                  " [        5         UR                  U5        S S S 5        [         R                  " / SQ5      n[
        R                  " [         R                  SS	9   UR                  U5        S S S 5        M     [         R                  " S
5      nXU4 H7  n[
        R                  " [        5         UR                  U5        S S S 5        M9     g ! , (       d  f       N= f! , (       d  f       GM  = f! , (       d  f       Mo  = f)Nr   r  r  r  r  r  r  r  r.   T)r   rL  r  r   r  r4   r5   r  r  r]  r   r6   )r  r  r  objr  r   filts          r;   test_filter_errorsr  3  s3   


S$K9
:COO	,	-.tf>EHHbhh9:;C5IEE"xx(]]./JJt 0 xx+,]]2??!>@JJt@ @ # YYt_Fv&]]9%LL &% ' 0/
@ @ &%s$   0E9F
F9
F	

F	
F,	c                  D   [         R                  " S /S-  5      n [         R                  " S /S-  /S-  5      n[         R                  " U /S/S9n[         R                  " SU 05      n[         R                  " SS/S-  5      n[        U R                  U5      5      S:X  d   e[        UR                  U5      5      S:X  d   e[        UR                  U5      R                  S5      5      S:X  d   e[        UR                  U5      R                  S5      5      S:X  d   eg )	Nr   r   r%   r   r  TFr   )r   r   rL  r  r  r1   r  r  )r  r  r  r  r  s        r;   test_filter_null_typer  K  s    
((D6B;
C""TFQJ<!#34KOOSE#/EHHc3Z E88T5MA%&Dszz$ A%%%{!!$'(A---u||D!((+,111u||D!((+,111rE   c                     [         R                  " / [         R                  " 5       S9n [         R                  " U / SQS// SQS/U /5      n[         R                  " / SQ/[         R                  " 5       S9n[        R
                  " U5      R                  U5      (       d   e[        R                  " S[         R                  " 5       S9n[        R
                  " XS	9R                  U5      (       d   e[        R
                  " US
S9R                  U5      (       d   e[        R                  " [        SS9   [        R
                  " USS9  S S S 5        g ! , (       d  f       g = f)Nr1  )r(   ra  r   r#   r$   r   )r%   r&   r'   r   )
r   r&   r'   r#   ra  r%   r   r$   r(   r   r(   )	max_indexoutput_typer  r]   r  Index out of bounds: 9r.   r&   )r   r   r   rL  r@   inverse_permutationr  InversePermutationOptionsr4   r5   r   )arr0r  r  r   s       r;   test_inverse_permutationr  Y  s   88BRXXZ(D


osIsD C !? @rxxzRH!!#&--h7777**QBHHJOG!!#7>>xHHHH!!#4;;HEEEE	.F	G
sa0 
H	G	Gs   8E
E%c                  T   [         R                  " / SQ5      n [         R                  " / SQ5      n[         R                  " / SQ5      n[        R                  " X5      nUR	                  U5      (       d   e[        R
                  " SS9n[        R                  " XUS9R	                  U5      (       d   e[        R                  " XSS9R	                  U5      (       d   e[        R                  " [        SS	9   [        R                  " XS
S9  S S S 5        g ! , (       d  f       g = f)N)
TFTTFFTTTF)
r(   r   ra  r'   r   r&   r#   r%   r$   r   )
FTTTFFTTFTr]   r  r  r(   r  r.   r&   )	r   r   r@   scatterr  ScatterOptionsr4   r5   r   )rK   r   r  r  r   s        r;   test_scatterr  i  s    XXVWFhh56Gxx 8 9HZZ(F=="""""-G::fw7>>xHHHH::f3::8DDDD	.F	G


6a0 
H	G	Gs   :D
D'typr   rL  c                    U S:X  a  S nOS nU" / SQ5      nU" / SQ5      n[         R                  " X#5      nUR                  U" / SQ5      5      (       d   e[         R                  " X#5      nUR                  U" / SQ5      5      (       d   e[         R                  " X#5      nUR                  U" / SQ5      5      (       d   e[         R
                  " X#5      nUR                  U" / S	Q5      5      (       d   e[         R                  " X#5      nUR                  U" / S
Q5      5      (       d   e[         R                  " X#5      nUR                  U" / SQ5      5      (       d   eg )Nr   c                 .    [         R                  " U 5      $ r   r   r   rK   s    r;   contest_compare_array.<locals>.con|      88F##rE   c                 0    [         R                  " U /5      $ r   r   rL  r$  s    r;   r%  r&        ##VH--rE   r2  )r$   r$   r&   Nr&   )TFFNN)FTTNN)FFTNN)TFTNN)FTFNN)TTFNN)r@   r+  r  	not_equalless
less_equalgreatergreater_equal)r   r%  arr1arr2r  s        r;   test_compare_arrayr2  y  s#   
g~	$	. !"D!"DXXd!F===>????\\$%F==<=>>>>WWT F===>????]]4&F==<=>>>>ZZ#F===>????d)F==<=>>>>rE   c                    U S:X  a  S nOS nU" / SQ5      n[         R                  " S5      n[        R                  " X#5      nUR	                  U" / SQ5      5      (       d   eU S:X  aa  [         R                  " S SS9n[        R                  " X%5      n[        R
                  " U5      nUR	                  U" / S	Q5      5      (       d   e[        R                  " X#5      nUR	                  U" / S
Q5      5      (       d   e[        R                  " X#5      nUR	                  U" / SQ5      5      (       d   e[        R                  " X#5      nUR	                  U" / SQ5      5      (       d   e[        R                  " X#5      nUR	                  U" / SQ5      5      (       d   e[        R                  " X#5      nUR	                  U" / SQ5      5      (       d   eg )Nr   c                 .    [         R                  " U 5      $ r   r#  r$  s    r;   r%  'test_compare_string_scalar.<locals>.con  r'  rE   c                 0    [         R                  " U /5      $ r   r)  r$  s    r;   r%  r5    r*  rE   )r   r   r  Nr   FTFNr   r1  )TTTTTFTNTFFNr  FFTNFTTN)r   r   r@   r+  r  is_nullr+  r,  r-  r.  r/  )r   r%  r  r   r  nascalarisnulls          r;   test_compare_string_scalarr?    ss   
g~	$	. #
$CYYs^FXXc"F==789999
g~99T1#(F#}}S!9:;;;;\\#&F==678888WWS!F==789999]]3'F==678888ZZ$F==789999c*F==678888rE   c                 x   U S:X  a  S nOS nU" / SQ5      n[         R                  " S5      n[        R                  " X#5      nUR	                  U" / SQ5      5      (       d   eU S:X  aC  [         R                  " S SS9n[        R                  " X%5      nUR                  5       / S	Q:X  d   e[        R                  " X#5      nUR	                  U" / S
Q5      5      (       d   e[        R                  " X#5      nUR	                  U" / SQ5      5      (       d   e[        R                  " X#5      nUR	                  U" / SQ5      5      (       d   e[        R                  " X#5      nUR	                  U" / SQ5      5      (       d   e[        R                  " X#5      nUR	                  U" / SQ5      5      (       d   eg )Nr   c                 .    [         R                  " U 5      $ r   r#  r$  s    r;   r%   test_compare_scalar.<locals>.con  r'  rE   c                 0    [         R                  " U /5      $ r   r)  r$  s    r;   r%  rB    r*  rE   r$   r%   r#   Nr%   r7  r   r1  NNNNr8  r9  r  r:  r;  )r   r   r@   r+  r  r*  r+  r,  r-  r.  r/  )r   r%  r  r   r  r=  s         r;   test_compare_scalarrF    sa   
g~	$	. o
CYYq\FXXc"F==789999
g~99T0#(!%====\\#&F==678888WWS!F==789999]]3'F==678888ZZ$F==789999c*F==678888rE   c                  T   [         R                  " / SQ5      n [         R                  " / SQSS //5      n[         R                  " SS// SQ/5      n[         R                  " / SQ/5      nX4X4X44 H3  u  pE[        R                  " XE5      nUR                  U5      (       a  M3   e   g )Nr2  r$   r%   r#   r&   r$   r%   )r#   r&   N)TTTTN)r   r   rL  r@   r+  r  )r  arr_chunkedarr_chunked2r  leftrightr  s          r;    test_compare_chunked_array_mixedrM    s    
((%
&C""I4y#9:K##aV\$:;L!? @AH 
		#
 $&}}X&&&&rE   c                      [         R                  " / SQ5      n [         R                  " / SQ5      n[        R                  " X5      n[         R                  " / SQ5      nUR	                  U5      (       d   eg )Nr$   r%   r#   r&   r   r   r]   r$   r%   r#   )r$   r$   r&   r'   r   )r   r   r@   r   r  rK  rL  r  r  s       r;   test_arithmetic_addrR    sP    88O$DHH%&EVVD Fxx(H==""""rE   c                      [         R                  " / SQ5      n [         R                  " / SQ5      n[        R                  " X5      n[         R                  " / SQ5      nUR	                  U5      (       d   eg )NrO  rP  )r$   r#   r%   r%   r%   )r   r   r@   subtractr  rQ  s       r;   test_arithmetic_subtractrU    sP    88O$DHH%&E[[%Fxx(H==""""rE   c                      [         R                  " / SQ5      n [         R                  " / SQ5      n[        R                  " X5      n[         R                  " / SQ5      nUR	                  U5      (       d   eg )NrO  rP  )r   r  r#   r      )r   r   r@   multiplyr  rQ  s       r;   test_arithmetic_multiplyrY    sQ    88O$DHH%&E[[%Fxx)*H==""""rE   r  roundround_to_multiplec                    U S:X  a)  [         R                  n[        [         R                  SS9nO.U S:X  a(  [         R                  n[        [         R
                  SS9n/ SQn/ SQ/ S	Q/ S
Q/ SQ/ SQ/ SQ/ SQ/ SQ/ SQ/ SQS.
nUR                  5        HQ  u  pVW" US9nW" X7S9n[        R                  " U[        R                  " 5       S9n	U	R                  U5      (       a  MQ   e   g )NrZ  r   ndigitsr[  r$   multiple)g	@      @皙@      @皙	g      gN)r#   r#   r#   r&   re  re  N)r&   r&   r&   r   r  r  r  N)r#   r#   r#   r&   r  r  r  N)r&   r&   r&   r   re  re  re  N)r#   r#   r&   r&   r  re  re  N)r#   r&   r&   r   r  r  re  N)r#   r#   r&   r&   r  r  re  N)r#   r&   r&   r   r  re  re  N)r#   r&   r&   r&   r  re  re  N)r#   r#   r&   r   r  r  re  N)
downuptowards_zerort   	half_downhalf_uphalf_towards_zerohalf_towards_infinityhalf_to_evenhalf_to_odd
round_moder  r1  )r@   rZ  r   r   r[  r   itemsr   r   r  r  )
r  rZ  r   rK   rmode_and_expectedrp  r  r   r  expected_arrays
             r;   test_round_to_integerrt  	  s    	W}r:	"	"$$r881E9F.,6:31;!?65 !3 8 8 :
*5v/(>$$V,,,,	 !;rE   c                     / SQn / SQ/ SQ/ SQ/ SQ/ SQS.nUR                  5        H  u  p#[        R                  " US5      n[        R                  " XS	9n[        R
                  R                  U[        R                  " U5      S
S9  [        R                  " XSS9U:X  d   e[        R                  " XS5      U:X  a  M   e   g )N@  ra  g@rc  gV-	g):ˏAg\(\Ni,  r   r   r   r   r   r   Nrw  r   r   r   r   ir   N)rw  r&   r#   r   r  ir  Nrw  ra  @rc  rd  ̌Ar  N)rw  ra  gp=
ף@rc  gGz	g(\AffffffN)r  r]   r   r$   r%   rl  r  T	equal_nanro  )	rq  r@   r   rZ  r  testingassert_allcloser   r   )rK   ndigits_and_expectedr^  r  r   r  s         r;   
test_roundr  &  s    CF,-,6< 2779//'+BC&2


""6288H+="Nxx#:<?EF 	F Fxx)@AVKKK :rE   c                  j   / SQn S/ SQ[         R                  " S5      / SQS/ SQS/ S	Q[         R                  " S
[         R                  " SS5      S9/ SQ0nUR                  5        H  u  p#[        R
                  " US5      n[        R                  " XS9n[        R                  R                  U[         R                  " U5      SS9  [        R                  " XS5      U:X  a  M   e   SS[         R                  " S5      4 HC  n[        R                  " [         R                  SS9   [        R                  " XS9  S S S 5        ME     [        S4 H9  n[        R                  " [        SS9   [        R                  " XS9  S S S 5        M;     g ! , (       d  f       M  = f! , (       d  f       M_  = f)Nrv  r   )rw  ra  r{  rc  rd  r|  r}  Nr   rz  r%   )rw  r&   r&   r&   re  ire  Nr   ry  rw   r&   r1  rx  rl  r  Tr~  r   r  g$z"Rounding multiple must be positiver.   r_  l   l+?R zis not a valid multiple type)r   r   rE  rq  r@   r   r[  r  r  r  r   r4   r5   r]  r3   r6   )rK   multiple_and_expectedr`  r  r   r  s         r;   test_round_to_multipler  9  sk   CF<
		#C	,
-
		#BMM"a01, 499;++H6MN%%f>


""6288H+="N##F$;=@FG 	G G	 < BIIe,-]]2??!EG  ;G G .
 45]]9,JK  ; LK 6	G G
 LKs   *F/F#
F 	#
F2	c                  `   / SQn [         R                  " / SQ[         R                  " 5       5      n[         R                  " / SQ[         R                  " 5       5      n[        R
                  " X5      U:X  d   e[         R                  " S[         R                  " 5       5      n[         R                  " S[         R                  " 5       5      n[         R                  " S[         R                  " 5       5      n[        R
                  " SUSS	9U:X  d   e[        R
                  " SUS
S	9U:X  d   eg )N)w/^@/$Rm@+ٚu@gv|@r  r  r  )r  r  r]   r   r$   r%   r#   )r      i^  i  g     ^@g
ףp=Rm@r  r   r   r]   g      @rk  ro  rl  )r   r   r   r  r@   round_binaryr   )rK   scalesr  expect_zero
expect_infrD  s         r;   test_round_binaryr  U  s    LFXX.
;Fxx2BJJLBH??6*h666))Arzz|,K2rzz|,JIIb"((*%E??U247BC C C??U68;EF F FrE   c            	      r   [         R                  " / SQ5      n U R                  5       n[         R                  " / SQ5      nUR                  U5      (       d   eUR                  [        R                  " U 5      5      (       d   eU R                  5       n[         R                  " / SQ5      nUR                  U5      (       d   eUR                  [        R
                  " U 5      5      (       d   e[         R                  " SS/SS //5      n U R                  5       n[         R                  " SS/SS//5      nUR                  U5      (       d   eU R                  5       n[         R                  " SS/SS//5      nUR                  U5      (       d   e[         R                  " SSSS [        S	5      /5      n U R                  5       n[         R                  " / S
Q5      nUR                  U5      (       d   eU R                  SS9n[         R                  " / SQ5      nUR                  U5      (       d   eg )NrD  )FFFT)TTTFr$   r%   r#   FTr  )FFFTF)nan_is_null)FFFTT)r   r   r<  r  r@   r  rL  r   r  s      r;   test_is_nullr  f  s   
((?
#C[[]Fxx34H==""""==C))))\\^Fxx12H==""""==S)****


QFQI.
/C[[]F%% ?@H==""""\\^F$e} =>H==""""
((Aq!T5<0
1C[[]Fxx:;H==""""[[T[*Fxx9:H==""""rE   c            	         [         R                  " SSSS [        S5      /5      n U R                  5       n[         R                  " / SQ5      nUR	                  U5      (       d   e[         R                  " / SQ[         R
                  " 5       S9n [        R                  " [        SS	9   U R                  5       nS S S 5        [        R                  " [        SS	9   [         R                  " / S
Q[         R                  " 5       S9n U R                  5       nS S S 5        g ! , (       d  f       Nk= f! , (       d  f       g = f)Nr$   r%   r#   r  )FFFNT)ra   rb   Nr1  z"has no kernel matching input typesr.   r       bbN)
r   r   r   is_nanr  r   r4   r5   r   r  )r  r  r  rZ  s       r;   test_is_nanr    s    
((Aq!T5<0
1CZZ\Fxx9:H==""""
((#"))+
6C	$,P
RJJL
R 
$,P
Rhh*1BCJJL
R 
R	
R 
R
R 
Rs   (D;D/
D,/
D=c                     [         R                  " / SQ[         R                  " 5       S9n [         R                  " S/[         R                  " 5       S9n[        R                  " [         R
                  SS9   U R                  U5        S S S 5        [         R                  " / SQ[         R                  " 5       S9n [         R                  " S [         R                  " 5       S9nU R                  U5      n[         R                  " / SQ5      nUR                  U5      (       d   e[         R                  " / SQ5      n U R                  S5      n[         R                  " / S	Q5      nUR                  U5      (       d   e[         R                  " / S
Q[         R                  " 5       S9n U R                  S5      n[         R                  " / SQ[         R                  " 5       S9nUR                  U5      (       d   e[         R                  " / SQ5      n U R                  S 5      n[         R                  " / SQ5      nUR                  U5      (       d   eg ! , (       d  f       GN= f)Nr$   r%   Nr&   r1  r   +Array arguments must all be the same lengthr.   rE  )r   bbNccc)r   r  r  r  )r    r  s   ccc)r   r   r   r4   r5   r]  	fill_nullr  r   r  r  )r  
fill_valuer  r  s       r;   test_fill_nullr    s   
((?
3C1#BGGI.J	rJ
Lj!
L ((+"'')
<C4bggi0J]]:&Fxx01H==""""
(($
%C]]5!Fxx*+H==""""
((&R__->
?C]]5!Fxx-BOO4EFH==""""
(($
%C]]4 Fxx)*H==""""/
L 
Ls   7I
I#c                    [         R                  " / SQU S9n[         R                  " SU S9nUR                  U5      n[         R                  " / SQU S9nUR	                  U5      (       d   eUR                  S5      nUR	                  U5      (       d   e[         R
                  R                  UR                  5      (       d:  [        R                  " [        [        45         UR                  S5        S S S 5        UR                  [         R                  " SSS95      nUR	                  U5      (       d   eg ! , (       d  f       NK= f)Nr  r1  r   )r$   r%   r   r&   5r   )r   r   r   r  r  rA  is_unsigned_integerr   r4   r5   r  r6   )r.  r  r  r  r  s        r;   test_fill_null_arrayr    s    
((?
4C1:.J]]:&Fxx:6H=="""" ]]1F=="""" 88''11]]J	23MM# 4 ]]299QV45F==""""	 43s   $D;;
E	c           	         [         R                  " SU S9n[         R                  " [         R                  " / SQU S9/5      nUR	                  U5      n[         R                  " [         R                  " / SQU S9/5      nUR                  U5      (       d   e[         R                  " [         R                  " SS/U S9[         R                  " / U S9[         R                  " S S/U S9/5      n[         R                  " [         R                  " SS/U S9[         R                  " / U S9[         R                  " SS/U S9/5      nUR	                  U5      nUR                  U5      (       d   eUR	                  S5      nUR                  U5      (       d   eUR	                  [         R                  " SSS95      nUR                  U5      (       d   eg )	Nr   r1  )Nr%   r#   r&   )r   r%   r#   r&   r$   r%   r&   r   )r   r   rL  r   r  r  )r.  r  r  r  r  s        r;   test_fill_null_chunked_arrayr    sy   1:.J


BHH_:FG
HC]]:&F,Z!H IJH==""""



!Qj)
*%
$, C
 
!Qj)
*%
!Qj)! H
 ]]:&F=="""" ]]1F==""""]]299QV45F==""""rE   c                     [         R                  " / SQ5      n [         R                  " S[         R                  " 5       S9n[         R                  R                  SX/5      nUR                  SS9  [         R                  " / SQ5      nUR                  U5      (       d   e[         R                  " 5       [         R                  " 5       [         R                  " 5       [         R                  " 5       4 H  n[         R                  " / SQUS9n [         R                  " SUS9n[         R                  R                  SX/5      nUR                  SS9  [         R                  " / S	QUS9nUR                  U5      (       a  M   e   g )
N)TFFFFNTr1  coalescer  )TFFFFT)r$   r%   r#   r&   r   N*   )r$   r%   r#   r&   r   r  )r   r   r   bool_computer  r  r  r   r   r   r   )r  r   r  r  r  s        r;   !test_fill_null_windows_regressionr    s    ((;
<C
		$RXXZ(AZZ%%j3(;F
OOOxx@AH==""""wwy"((*bhhj"((*=hh,26IIbr"))*sh?T"88/b9}}X&&&& >rE   c                     [         R                  " / SQ5      n [         R                  " / SQ5      n[        R                  " X5      [         R                  " / SQ5      :X  d   e[        R                  " X5      [         R                  " / SQ5      :X  d   e[        R
                  " X5      [         R                  " / SQ5      :X  d   e[        R                  " X5      [         R                  " / SQ5      :X  d   e[        R                  " X5      [         R                  " / SQ5      :X  d   e[        R                  " U 5      [         R                  " / SQ5      :X  d   eg )Nr9  )TTFTr  r7  r;  )	r   r   r@   and_
and_kleeneor_	or_kleenexorinvertr*   s     r;   test_logicalr    s    
+,A
*+A771=BHH%?@@@@=="((+E"FFFF66!<288$=>>>><<*C!DDDD66!<288$>????99Q<288$=>>>>rE   c                     [         R                  " / SQ5      n U R                  5       n[        R                  " U5      nX:w  d   eX:X  d   eU [        R                  " U 5      :X  d   e[        R                  " U5      U:X  d   eg )N)r   r   r   r  r   )r   r   dictionary_encoder@   dictionary_decode)r   dictionary_arraydictionary_array_decodes      r;   test_dictionary_decoder    s~    HH./E..0 223CD$$$+++B((//// 015EEEErE   c                     [         R                  " / SQSS9n [        R                  " [         R                  " 5       5      n[
        R                  " [        5         [        R                  " U S S9  S S S 5        [
        R                  " [        5         [        R                  " U SUS9  S S S 5        [
        R                  " [        5         [        R                  " U SUS9  S S S 5        [        R                  " XS9[         R                  " / SQS	S9:X  d   e[         R                  " S
/SS9n [        R                  " [         R                  " 5       SS9n[
        R                  " [         R                  5         [        R                  " U S5        S S S 5        [        R                  " U SSS9[         R                  " S/SS9:X  d   e[        R                  " XS9[         R                  " S/SS9:X  d   e[         R                  " [        R                  " SSS5      [        R                  " SSS5      /5      n [         R                  " SS/SS9n[        R                  " U S5      U:X  d   e[         R                  " SS// SQ/[         R                  " [         R                  " 5       5      S9n [         R                  " SS// SQ/[         R                  " [         R                  " 5       5      S9n[        R                  " XR                   5      U:X  d   eg ! , (       d  f       GN= f! , (       d  f       GN= f! , (       d  f       GNe= f! , (       d  f       GN= f)Nr0  r   r1  )target_typer   r  T)r   r   r   l    )allow_int_overflowFr   r]   i  r$   i  l    x\Nl    0E*ztimestamp[ms]r%   )r#   r&   r   ra   rb   )34r  )r   r   r@   r   r   r4   r5   r6   castr  r   r]  datetime
large_listr  rX  r   )r  r   allow_overflow_optionsr  s       r;   	test_castr    sZ   
((<g
.CnnRWWY'G	y	!
& 
" 
z	"
Wg. 
# 
z	"
$0 
# 773(BHH6-# # # # ((K=w
/C^^

t- 
r	'
W 
( 773e,"G0LLLL7737288	7<    ((			4A	&(9(9$1(EFHCxx6_MH773(H444
((QFI&R]]2779-E
FCxx#s_5XXbggi02H773&(222A 
"	! 
#	" 
#	" 
(	's0   LL/M<M
L,/
L>
M
M"
value_typec                     [         R                  " SSS5      n[        R                  " U/U S9n[        R
                  " X 5      U:X  d   eg )Ni  r#   r$   r1  )r  dater   r   r@   r  )r  dtr  s      r;   test_identity_cast_datesr  ;  s=    	tQ	"B
((B4j
)C773#s***rE   c                 ^   [         R                  " [         R                  " SU 5      S5      n[         R                  " 5       n[         R                  " [         R                  " SU5      S5      n[         R                  R                  [         R                  " / SQUS9US9nXR                  U5      R                  :X  d   e[         R                  R                  [         R                  " / SQUS9US9nXR                  U5      R                  :X  d   e[         R                  " 5       n[         R                  " [         R                  " SU5      S5      n[         R                  R                  [         R                  " / SQUS9US9nXR                  U5      R                  :X  d   e[         R                  " [         R                  " SU 5      S5      nS	n[        R                  " [         R                  R                  US
9   UR                  U5        S S S 5        g ! , (       d  f       g = f)Nelementr%   rK   )r$   r%   r#   r&   r   r'   r1  )r$   NNr&   r   r'   )NNNNNNr#   z&Size of FixedSizeList is not the same.r.   )r   r  r_   r   FixedSizeListArrayr  r   r  r   r  r4   r5   libArrowTypeError)r  	cast_typedtyper   fslerr_msgs         r;   test_fsl_to_fsl_castr  C  s    )Z8!<IHHJE88BHHXu-q1D



+
+
#%0t , =C+00000 


+
+
)6T , CC+00000 GGIE88BHHXu-q1D



+
+
5EB , OC+00000 )Z8!<I6G	rvv,,G	< 
=	<	<s   H
H,DecimalTypeTraits)r>   factorymax_precisionFloatToDecimalCase)	precisionrD  	float_val	decimal32	decimal64   rC  r:  rE  r;  c                     U S:  d   eUS:  d   e[        U 5      SU-  -  nUSU-  -  U :  a:  [        R                  " US5      nUSU-  -  U :  a  [        R                  " US5      nUSU-  -  U ::  d   eU$ )z9
Find the largest float f such as `f * 10**scale <= val`
r   r           )r   r  	nextafter)valrD  r  s      r;   largest_scaled_float_not_abover  n  s     !8O8A::c
RY&I2u9s"LLC0	r5y 3&Y4Ir5y C'''rE   c                     [        U [        5      (       d   e[        R                  " U 5      nUR	                  U* 5      n[        U5      nU$ )zK
Return a float representation (possibly approximate) of `int_val**-scale`
)r   intr@  r9  scalebr   )int_valrD  unscaledscaledr  s        r;   scaled_floatr  ~  sD     gs####w'H__eV$FfIrE   c              #      #    Sn[        SUS5       Hd  n[        SUS5       HP  n[        X4S5      v   [        X4S5      v   S[        X2-
  U5      -  n[        SU-  U-
  U5      n[        X4U5      v   MR     Mf     g	7f)
z;
Return FloatToDecimalCase instances with integral values.
r)   r$   r#   r   r%   r  rr  r   N)r  r  ro   r  )float_tyr  mantissa_digitsr  rD  epsilon
abs_maxvals          r;   $integral_float_to_decimal_cast_casesr    s      O1mQ/	1i+E$Ys;;$Ys;;#i95AAG7I'0J$YzBB , 0   A9A;c              #      #    Sn[        SUS5       Hd  n[        SUS5       HP  nSS[        X2-
  S5      -  -  n[        XT5      n[        SU-  U-
  U5      n[        X4U5      v   [        X4U5      v   MR     Mf     g7f)z7
Return FloatToDecimalCase instances with real values.
r)   r$   r#   r   r%   r   N)r  ro   r  r  )r  r  r  r  rD  r  
abs_minvalr  s           r;    real_float_to_decimal_cast_casesr    s      O1mQ/	1i+E"c)"=qAAAG7GJ7I'0J$YzBB$YzBB , 0r  c              #   *  #    [         R                  " S5      n[        SUS5       Hh  n[        SUS5       HT  n[        S5       HB  nUR                  SSU-  5      n[	        Xd5      nUSU-  -  SU-  :  d   e[        X4U5      v   MD     MV     Mj     g7f)	z7
Return random-generated FloatToDecimalCase instances.
r  r$   r'   r   r&      r   N)r  Randomr  	randranger  r  )r  r  rr  rD  r  r  r  s           r;   "random_float_to_decimal_cast_casesr    s      	bA1mQ/	1i+E2Y;;q"i-8(9	 2u9,r9}<<<(9EE	  , 0s   BBc                 &   UR                   Ul        [        R                  Ul        UR                  U5      nUR                  [        R                  " S5      R                  UR                  * 5      5      n[        R                  " XS9n[        R                  " Xb5      R                  5       nXu:w  a^  [        Xu-
  5      SUR                  -  -  nUR                   US-
  :  a  SOSn	X::  d$   SU< SUR                    SU< S	U< S
U< 3
5       eg g )Nr$   r1  r   r%   r&   zfloat_val = z, precision=z, expected = z, actual = z, diff_digits = )r  precr@  ROUND_HALF_EVENroundingcreate_decimal_from_floatquantizer9  r  rD  r   r   r@   r  r4  abs)
r  r  
decimal_tydecimal_ctxr  r  r   r  diff_digitslimits
             r;   check_cast_float_to_decimalr    s    "++K"22K44Y?H  !3!:!:J<L<L;L!MNH
		)+AWWQ#))+F &+,r:3C3C/CC))MA,==1# 	.9-|J4H4H3I J"[
 ;(O-	.# rE   r  )idsr  c                     U R                   $ r   r>   vs    r;   <lambda>r        qvvrE   case_generator)	integralsrealsr  c           
         [         R                  " 5        nU" XR                  5       HH  n[        XR                  UR                  UR                  UR                  5      X1R                  5        MJ     S S S 5        g ! , (       d  f       g = fr   )r@  localcontextr  r  r  r  r  rD  )r  r  r  ctxcases        r;   test_cast_float_to_decimalr    sd     
			3"8-E-EFD'..""4>>4::>--/ G 
 		s   AA>>
Bdecimal_traitsc                     U R                   $ r   r  r	  s    r;   r  r    r  rE   c                    [         R                  " S5      n[        R                  " 5       [        R                  [        R
                  " 5       [        R
                  0U    n[        R                  " 5       S[        R
                  " 5       S0U    n[        R                  " 5       S[        R
                  " 5       S0U    u  pV[        R                  " [        R                  " SU-  5      5      nUR                  nX:  aZ  [        R                  " [        R                  " SU-  5      5      n[        R                  " [        R                  " SU-  5      5      n[        R                  " 5        n	Un
Xl        [        U* U
[        R                  " [        R                  " SU-  5      5      -   5      n[!        U[        R                  " [        R                  " SU-  5      5      5      n[#        X5       GHr  nUR%                  X5      nU* [        R                  " [        R                  " SX-
  -  5      5      -   nX_s=::  a  U::  d   e   e[#        S5       GH	  nUR'                  S	SU-  5      n[        R(                  " U" U5      U5      n[+        UU5      (       d   eUS	:  a  [        R,                  " U5      SU-  -  nO[        R,                  " U5      SU* -  -  n[/        UR1                  U5      5      n[2        R4                  " [        R6                  " UU S
9U5      R9                  5       n[/        UR1                  U5      5      n[;        UU-
  5      S::  a  GM
   e   GMu     SSS5        g! , (       d  f       g= f)zD
Test float-to-decimal conversion against exactly generated values.
+      5   )i   )ii  r%   r   r   r   r1  r$   N)r  r  r   r  r  r  mathfloorlog10r  log2r@  r  r  ro   ceilr  r  r  r  ldexpr   r9  rZ  r  r@   r  r   r4  r   )r  r  r  np_float_tymantissa_bitsfloat_exp_minfloat_exp_maxr  r  r  r  	min_scale	max_scalerD  r  	float_expr  mantissar  r  expected_as_intr  actual_as_ints                          r;   !test_cast_float_to_decimal_randomr,    s    	bA


bjj


bjj K
 	

b


b M
 	

k


m$ $ M jjA},<!=>O"00M &

499R->#?@**TZZ=0@%AB				3#	 !DIIdjjM9I.J$KKM	

4::a.>#?@B	90E'//	AJ
 (DIIb93D.E$FGHI >>>>>>1X;;q!]*:;HH[%:IF	!)[9999 >&x81i<GH&x81yj=HH"'(>"?IIih7EEJUW  %fmmE&: ;=?:;q@@@  1 
 		s   /G/M5#	M55
Nc            	         [         R                  " / SQ5      n [        R                  " U SSS9n[         R                  " [        R                  " SSS5      S [        R                  " SS	S
5      /[         R
                  " S5      S9nX:X  d   e[        R                  " U SSS9U:X  d   e[         R                  " [        R                  " SSS5      S S /[         R
                  " S5      S9n[        R                  " U SSSS9nX:X  d   e[        R                  " [         R                  SS9   [        R                  " U SSSS9  S S S 5        [        R                  " [         R                  SS9   [        R                  " U SSS9  S S S 5        [        R                  " U SSSS9nU[         R                  " / SQ[         R
                  " S5      S9:X  d   eg ! , (       d  f       N= f! , (       d  f       Nh= f)N)z5/1/2020Nz
12/13/1900z%m/%d/%Yr   formatuniti  r   r$   il        r1  r0  z%d/%m/%YT)r/  r0  error_is_nullz"Failed to parse string: '5/1/2020'r.   z%Y-%m-%dF)NNN)	r   r   r@   strptimer  	timestampr4   r5   r]  )r  gotr  s      r;   test_strptimer8  !	  s   
((3
4C
++c*3
7Cxx			4A	&h.?.?b".MN\\# H ??;;sJS1S888xx**4A6dC\\#.0H
++c*3d
KC??	rA
C
C
EJ
C 
rA
C
C
5
C ++c*3d
KC"((-BLL4EFFFF
C 
C
C 
Cs   -G0G)
G&)
G7c            	      H   / SQn / SQn/ SQn[         R                  S:w  a  UR                  / SQ5        U GH:  n[        R                  " U 5      R                  U5      nS H  n[        R                  " U[        R                  " XS5      S9nU H  n[        R                  " U5      n[        R                  " XhS9n	[        R                  " UR                  U5      5      R                  U	R                  5      n
U	R                  U
5      (       a  M   e   M     S	n[        R                  " U[        R                  " S
U5      S9n[        R                  " U[        R                  " 5       S9n	[        R                  " UR                  U5      5      R                  U	R                  5      n
U	R                  U
5      (       d   e[        R                  " U[        R                  " S
U5      S9n[        R                  " U[        R                  " US-   5      S9n	[        R                  " UR                  US-   5      5      R                  U	R                  5      n
U	R                  U
5      (       d   e[        R                  " U[        R                  " S
U5      S9n[        R                  " S5      n[        R                  " XhS9n	[        R                  " UR                  S5      5      R                  U	R                  5      n
U	R                  U
5      (       d   e[        R                  " U[        R                  " SU5      S9n[        R                  " S5      n[        R                  " XhS9n	[        R                  " UR                  S5      5      R                  U	R                  5      n
U	R                  U
5      (       d   e[        R                  " U[        R                  " S
U5      S9n[        R                  " USS9n[        R                  " XhS9n	[        R                  " UR                  U5      5      R                  U	R                  5      n
U	R                  U
5      (       a  GM;   e   S	n[        R                  " U 5      n[        R                  " U[        R                  " S
5      S9n[        R                  " U[        R                  " U5      S9n	[        R                  " UR                  U5      5      R                  U	R                  5      n
[        R                  " Xg5      U	:X  d   eU	R                  U
5      (       d   e[        R                   " [        R"                  SS9   [        R                  " U[        R                  " US-   5      S9  S S S 5        [        R                   " [        R"                  SS9   [        R                  " U[        R                  " US-   5      S9  S S S 5        g ! , (       d  f       Ng= f! , (       d  f       g = f)N)z2018-03-10 09:00z2038-01-31 12:23N)CETrT   r   )z%az%Az%wz%dz%bz%Bz%mz%yr   z%Hz%Iz%pz%M%z%Zz%jz%Uz%Wz%%z%Gz%Vz%uwin32)z%cz%xz%Xr   msusnsr1  r  %Y-%m-%dT%H:%M:%Sr   r<  z%Sr@  z%S.%fC)localez.Timezone not present, cannot convert to stringr.   r;  )sysplatformextendpdto_datetimetz_localizer   r   r6  r@   r   strftimer  r   r  r4   r5   r]  )times	timezonesformatstimezonetsr0  tsafmtr   r  r  s              r;   test_strftimerS  =	  sb    ;E2IQG
||w)*^^E"..x8+D((2BLL$@AC,,S1S:88BKK$45::6;;G}}X....  , " hhrS( ;<S"*<*<*>?88BKK,-226;;?}}X&&&& hhrS( ;<S"*<*<S4Z*HI88BKKd
3499&++F}}X&&&& hhrS( ;<$$T*S288BKK-.33FKK@}}X&&&& hhrT8 <=$$T*S288BKK0166v{{C}}X&&&& hhrS( ;<$$S5S288BKK,-226;;?}}X&&&&Y ^ C		B
((2BLL-
.C[[b&8&8&=>FxxC()..v{{;H ;;s F***==""""	rM
O
C!3!3C$J!?@
O 
rM
O
C!3!3C$J!?@
O 
O
O 
O
O 
Os   4-X-X
X
X!c                    SSK Jn  [        R                  " U 5      R	                  S5      R                  U5      R                  5       n[        R                  " U[        R                  " SUS95      nUR                  R                  S-  UR                  R                  -   S-  R                  S5      n[        R                  " S	[        R                  " 5       5      [        R                  " S
[        R                  " 5       5      [        R                  " S[        R                  " 5       5      /nU" [        R                   5      U" S5      :  ad  UR#                  S 5      R%                  S5      nUR#                  S 5      R%                  S5      nUR#                  S 5      R%                  S5      n	OUR                  R'                  5       S   R%                  S5      nUR                  R'                  5       S   R%                  S5      nUR                  R'                  5       S   R%                  S5      n	[        R(                  R+                  XxU	/US9n
UR                  R,                  R%                  S5      nUR                  R.                  R%                  S5      nUR                  R0                  R%                  S5      nUR                  R2                  R%                  S5      nUR                  R4                  R%                  S5      nUR                  R6                  R%                  S5      nUR                  R8                  R%                  S5      nUR                  R:                  R%                  S5      nUR                  R<                  R>                  R%                  S5      nUR                  R                  R%                  S5      nUR                  R                  R%                  S5      n[@        R,                  " U5      RC                  [        R                  " U5      5      (       d   e[@        RD                  " U5      RC                  [        R                  " UR                  RD                  5      5      (       d   e[@        R.                  " U5      RC                  [        R                  " U5      5      (       d   e[@        R0                  " U5      RC                  [        R                  " U5      5      (       d   e[@        RF                  " U5      RC                  [        R                  " U5      5      (       d   e[@        RH                  " U5      RC                  [        R                  " U5      5      (       d   e[@        RJ                  " U5      RC                  [        R                  " U5      5      (       d   e[@        RL                  " U5      RC                  [        R                  " U5      5      (       d   e[@        RN                  " U5      RC                  U
5      (       d   e[@        R6                  " U5      RC                  [        R                  " U5      5      (       d   e[@        R8                  " U5      RC                  [        R                  " U5      5      (       d   e[@        R:                  " U5      RC                  [        R                  " U5      5      (       d   e[@        R<                  " U5      RC                  [        R                  " U5      5      (       d   e[@        RP                  " U5      RC                  [        R                  " US-  5      5      (       d   e[@        R                  " U5      RC                  [        R                  " US-  5      5      (       d   e[@        R                  " U5      RC                  [        R                  " U5      5      (       d   e[@        RR                  " U5      RC                  [        R                  " U5      5      (       d   e[@        RT                  " U5      RC                  [        R                  " UR                  R	                  S 5      5      5      (       d   eUR                  RV                  (       a  UR                  RV                  [X        RZ                  R\                  L a  S/[_        U5      -  nOURa                  S 5      n[@        Rb                  " U5      RC                  [        R                  " U5      5      (       d   e[@        Rd                  " SSS9n[@        RF                  " UUS9RC                  [        R                  " US-   5      5      (       d   e[@        Rf                  " SSSS9n[@        Rh                  " UUS9RC                  [        R                  " U5      5      (       d   eg )Nr   )VersionrT   rA  tzi  g&.>r(   iso_yeariso_weekiso_day_of_weekz1.1.0c                 (    U R                  5       S   $ Nr   isocalendarrw  s    r;   r  ,_check_datetime_components.<locals>.<lambda>	      AMMOA$6rE   r   c                 (    U R                  5       S   $ )Nr$   r]  r_  s    r;   r  r`  	  ra  rE   c                 (    U R                  5       S   $ )Nr%   r]  r_  s    r;   r  r`  	  s    1==?1#5rE   yearweekday)fieldsFc                 <    U R                  5       R                  S:  $ r\  )dstsecondsr_  s    r;   r  r`  	  s    !(;rE   r$   rX   r  Tr   )5pyarrow.vendored.versionrU  rH  rI  rJ  
tz_convert	to_seriesr   r   r6  r  microsecond
nanosecondrZ  r_   r   __version__mapr  r^  StructArrayr  rd  monthrf  	dayofweek	dayofyearquarterhourminuteru   rK   r@   r  is_leap_yearday_of_weekday_of_yearrX  rY  iso_calendarmillisecond	subsecondlocal_timestamprW  r  rO  utcr1   applyis_dstr   r   re  )
timestampsrO  rU  rP  rQ  
subsecondsiso_calendar_fieldsrX  rY  iso_dayr|  rd  rs  rf  rt  ru  rv  rw  rx  ru   rn  ro  r  day_of_week_optionsweek_optionss                            r;   _check_datetime_componentsr  	  s   0	
	#	/	/
z(#IIK 
((2r||DX6
7C55$$w.55##$'/016q  	RXXZ(
RXXZ(
"BHHJ/ r~~!116667>>wG6667>>wG&&56==gF 55$$&v.55g>55$$&v.55g>%%##%e,33G<>>--	W%" . $L 55::W%DEEKKw'E
%%))

7
#C&&w/I&&w/Ieemm""7+G55::W%DUU\\  )FUU\\  ''0F%%##**73K!!((1J773<rxx~....??3&&rxx0B0B'CDDDD88C=000066#;bhhsm,,,,>>#%%bhhy&9::::>>#%%bhhy&9::::;;s""288H#56666;;s""288H#56666??3&&|4444::c?!!"((7"34444773<rxx~....99S>  &!1222299S>  &!12222>>#%%bhh{g/E&FGGGG>>#%%bhh{W/D&EFFFF==$$RXXj%9::::<<##BHHZ$89999c"))"((2553D3DT3J*KLLLL	uuxx5588x((,,,Ws2w&FXX;<Fyy~$$RXXf%56666--!->>#':;BB
Q! ! ! ! >>$)+L 773-44RXXh5GHHHHrE   c                     / SQn/ SQn[        U5        U R                  R                  R                  S   (       d  [        R
                  " S5        g U H  n[        X5        M     g )Nz1970-01-01T00:00:59.123456789z2000-02-29T23:23:23.999999999z2033-05-18T03:33:20.000000000z2020-01-01T01:05:05.001z2019-12-31T02:10:10.002z2019-12-30T03:15:15.003z2009-12-31T04:20:20.004132z2010-01-01T05:25:25.005321z2010-01-03T06:30:30.006163z2010-01-04T07:35:35.0z2006-01-01T08:40:40.0z2005-12-31T09:45:45.0z2008-12-28T00:00:00.0z2008-12-29T00:00:00.0z2012-01-01T01:02:03.0)rT   America/ChicagoAsia/Kolkata	Etc/GMT-4	Etc/GMT+4zAustralia/Broken_Hillr   z-Timezone database is not installed on Windows)r  r   r   r   r4   r  )r   r  rM  rO  s       r;    test_extract_datetime_componentsr  	  sT    +JDI z* >>!!,,_=CD!H&z< "rE   c                  .   [         R                  " S/SSS9n U R                  [        R                  " SSS95      n[         R
                  " U5      S   R                  5       S:X  d   e[         R                  " U5      S   R                  5       S	:X  d   eg )
Nz2012-12-12T12:12:12rB  r   r.  z+05:30rV  r      r  )r@   r5  r  r   r6  rw  r4  rx  )r  	zoned_arrs     r;   test_offset_timezoner  	  s}    
++,-6IPS
TCch78I779a &&(B...99Y"((*b000rE   r0  r>  c                 J   [         R                  " [        R                  " SSSS5      /S-  [         R                  " U 5      5      n[        R
                  " U5      n[         R                  R                  S/S-  S/S-  S/S-  // S	QS
9nUR                  U5      (       d   eg )Ni  r$   r%   r(   2   i  4   ra  )rX  rY  rZ  r  )	r   r   r  r6  r@   r|  rr  r  r  )r0  r  r  r  s       r;   test_iso_calendar_longer_arrayr  
  s     ((H%%dAq!45b8",,t:L
MC__S!F~~))
RDGaSV$9 * H ==""""rE   c                     [         R                  " S5      n [        R                  " / SQ5      n[        R                  " SS/5      n[        R                  " / SQ5      n[         R                  " X0S9n[         R                  " X S9nS GH+  n[
        R                  " U5      n[         R                  " XS9nUR                  U5      n	[
        R                  " XS9n
U
R                  [         R                  " U	5      5      (       d   e[
        R                  " X5      n
U
R                  [         R                  " U	5      5      (       d   e[         R                  " U[         R                  " SU5      S9n[        R                  " [         R                  S	S
9   [
        R                  " XS9  S S S 5        GM.     [
        R                  " S5      n[        R                  " [        SS
9   [
        R                  " WUS9  S S S 5        Sn[
        R                  " U5      n[
        R                  " USSS9n[
        R                  " USSS9n[        R                  " [        SU S3S
9   [
        R                  " UUS9  S S S 5        [         R                  " UR                  USS95      n	[
        R                  " X_S9n
U	R                  U
5        [         R                  " UR                  USS95      n	[
        R                  " X^S9n
U	R                  U
5        [
        R                  " U5      n[
        R                  " USSS9n[
        R                  " USSS9n[        R                  " [        SU S3S
9   [
        R                  " UUS9  S S S 5        UR                  U/ SQS9n	[
        R                  " UUS9n
U
R                  [         R                  " U	5      5        UR                  U/ SQS9n	[
        R                  " UUS9n
U
R                  [         R                  " U	5      5        g ! , (       d  f       GM  = f! , (       d  f       GNI= f! , (       d  f       GN= f! , (       d  f       N= f)NrA  r  z2015-03-29 02:30:00z2015-03-29 03:30:00)z2018-10-28 01:20:00z2018-10-28 02:36:00z2018-10-28 03:46:00r1  )rT   r  r  r  zalready have a timezone:r.   zEurope/Brusselsssznot found in timezone databaseEurope/Brusselsrl   earliest)	ambiguousnonexistentlatestz%Timestamp doesn't exist in timezone ''shift_forward)r  shift_backwardz$Timestamp is ambiguous in timezone ')TTT)r  )FFF)r   r6  rH  rI  r   r@   r   rJ  assume_timezoner  r4   r5   r]  r  )ts_typer  r  r  ambiguous_arraynonexistent_arrayrO  r   tar  r  ta_zonedinvalid_optionsoptions_nonexistent_raiseoptions_nonexistent_earliestoptions_nonexistent_latestoptions_ambiguous_raiseoptions_ambiguous_latestoptions_ambiguous_earliests                      r;   test_assume_timezoner  
  s    ll4 G !: ;J .."7"7"9 :K  7 8I hhy7O;>**84XXj/))(3##B8}}RXXh/0000##B1}}RXXh/000088JR\\$-IJ]]2??2LMx9 NM ? ../BCO	z)I	J
27 
K !H " 8 8 B#%#;#;G$= !#!9!9G"; 
z$$,:Q0
1 	,#<	>
1 xx//o 0 / 0H?FOOFxx//. 0 0 1HAFOOF 66x@!77H' ;!#!9!9JG"= 
z**216
7 	?4KL
7
 $$X9K$LH!;=F
MM"((8$%$$X9N$OH!9;F
MM"((8$%i NM 
K	J
1 
10
7 
7s0   P-(Q 'Q6Q$-
P=	 
Q
Q!$
Q2c           	         SSSSSSSS.nSSSSSSS	.n[         R                  " U 5      nU GH  n[        U5      X2   -   n[        R                  " Xb5      n[        R
                  " XXS
9R                  5       n	U R                  R                  U5      n
[        R                  R                  X5        [        R                  " XXS
9R                  5       n	U R                  R                  U5      n
[        R                  R                  X5        [        R                  " XXS
9R                  5       n	U R                  R                  U5      n
[        R                  R                  X5        US:w  Gal  [        R                  " XbSS9nU R                  R                  XB   5      nUR                   R"                  ca  [        R
                  " XXS
9R                  5       n	X-
  R                  R                  U5      U-   n
[        R                  R                  X5        [        R                  " XXS
9R                  5       n	X-
  R                  R                  U5      U-   n
[        R                  R                  X5        [        R                  " XXS
9R                  5       n	X-
  R                  R                  U5      U-   n
[        R                  R                  X5        US:X  d  GM  [        R
                  " XVS9R                  5       n	U R                  R                  U5      n
[        R                  R                  X5        [        R                  " XVS9R                  5       n	U R                  R                  U5      n
[        R                  R                  X5        [        R                  " XVS9R                  5       n	U R                  R                  U5      n
[        R                  R                  X5        GM     UR                   R"                  c  [        R                  " WUSS9n[        R
                  " XXS
9n	U R                  R                  W5      n
[        R$                  " X:H  U
[&        R(                  " XcU   5      -   U
5      n
[        R                  R                  X5        US:X  Ga  Sn[        R
                  " U5      R                  5       n	U R                  R                  U5      n
[        R                  R                  X5        [        R                  " U5      R                  5       n	U R                  R                  U5      n
[        R                  R                  X5        [        R                  " U5      R                  5       n	U R                  R                  U5      n
[        R                  R                  X5        g g )NrA  r@  r?  r   r  r  r  ro  rn  r}  ru   rx  rw  rf  )ro  rn  r}  ru   rx  rw  r  rf  T)calendar_based_originr_  )ceil_is_strictly_greater1D)r   r   r  r@   r   ceil_temporalr  r  r   r  r  assert_array_equalfloor_temporalr  round_temporalrZ  r   rW  whererH  	Timedelta)rP  rK   r0  unit_shorthandgreater_unitr  value	frequencyr   r  r  origins               r;   _check_temporal_roundingr  l
  sX   N L 
"BJ!55	))%6!!"6@@B55::i(


%%f7""27AAC55;;y)


%%f7""27AAC55;;y)


%%f7
 5=--49GUU[[!34Fwwzz!))">HHJK++00;fD

--f?&&r;EEGF''--i86AHJJ))&;&&r;EEGF''--i86AHJJ))&; 5=%%b9CCEFuuzz),HJJ))&;&&r:DDFFuu{{9-HJJ))&;&&r:DDFFuu{{9-HJJ))&;c n 
wwzz))4$8!!"655::i(88Nr||E$+?@@ 	

%%f7 u}	!!"%//155::i(


%%f7""2&00255;;y)


%%f7""2&00255;;y)


%%f7 rE   r  c           
      @   Sn/ SQn[         R                  " U Vs/ s H  n[         R                  " USS9PM     sn5      n[        XAU 5        / SQnU HC  nUR                  R                  S5      R                  R                  U5      n[        XqU 5        ME     g s  snf )N)r$   r%   r#   r&   r   r'   ra  r   rW  r  <      i  i  )z1923-07-07 08:52:35.203790336z1931-03-17 10:45:00.641559040z1932-06-16 01:16:42.911994368z1941-05-27 11:46:43.822831872z1943-12-14 07:32:05.424766464z1954-04-12 04:31:50.699881472z1966-02-12 17:41:28.693282560z1967-02-26 05:56:46.922376960z1975-11-01 10:55:37.016146432z1982-01-21 18:43:44.517366784z1992-01-01 00:00:00.100000000z1999-12-04 05:55:34.794991104z2026-10-26 08:39:00.316686848rA  r3  )r  zAmerica/New_Yorkr  r  r  zPacific/Marquesasr  rT   rT   )rH  Series	Timestampr  r  rJ  rl  )r0  rK   r  rw  rP  rM  rO  ts_zoneds           r;   test_round_temporalr  
  s    
 BF)J 

C
1BLL.
C	DBR.SI 55$$U+..99(C 48  Ds   Bc                  h   [         R                  " / SQ5      n [        R                  " U 5      R	                  5       S:X  d   e[        R                  " U SS9R	                  5       S:X  d   e[        R                  " U SS9R	                  5       S:X  d   e[        R                  " U SS9R	                  5       S:X  d   e[        R                  " U S5      R	                  5       S:X  d   e[
        R                  " [        S	S
9   [        R                  " U S5        S S S 5        g ! , (       d  f       g = f)Nr$   r%   r#   NNr#   
only_validrT  	only_nullr%   r   r   z*"something else" is not a valid count moder.   zsomething else)r   r   r@   rU  r4  r4   r5   r  r,  s    r;   
test_countr  
  s    
(((
)C88C= A%%%88Cl+113q88888Ck*002a77788Ce$**,11188C%%'1,,,	zI
K
&'
K 
K 
Ks   D##
D1c                     [         R                  " / SQ[         R                  " 5       S9n [        R                  " U [         R
                  " S5      5      R                  5       S:X  d   e[        R                  " U [         R
                  " S[         R                  " 5       S95      R                  5       S:X  d   e[        R                  " U S5      R                  5       S:X  d   eU R	                  SSS9R                  5       S:X  d   eU R	                  S 5      R                  5       S:X  d   e[         R                  " S	S/S	S//[         R                  " 5       S9n U R	                  S	5      R                  5       S:X  d   eU R	                  S	SS9R                  5       S:X  d   eU R	                  S	S	SS
9R                  5       S:X  d   eg )N)r   r$   Nr#   r&   r1  r   r%   r]   r&   r#   rV   r$   )rV   end)	r   r   r   r@   indexr   r4  r   rL  r,  s    r;   
test_indexr     si   
((%BHHJ
7C88C1&,,.!33388C1277956<<>"DDD88C!!#q(((99Qa9 &&(A---99T?  "b(((


QFQF+"((*
=C99Q<1$$$99Qa9 &&(A---99QaQ9'--/2555rE   c                   ^ UR                  5       n[        U5      [        U 5      :X  d   e[        U5      [        [	        [        U 5      5      5      :X  d   e[	        U5       Vs/ s H	  o@X      PM     nn[	        U[        U 5      5       Vs/ s H	  o@X      PM     nnXU      mTc:  US:X  a  [        S U 5       5      (       d   eg [        S U 5       5      (       d   eg US:X  a9  [        U4S jU 5       5      (       d   e[        U4S jU 5       5      (       d   eg [        U4S jU 5       5      (       d   e[        U4S jU 5       5      (       d   eg s  snf s  snf )Nrh   c              3   (   #    U  H  oS L v   M
     g 7fr   r   r   r
  s     r;   r   &check_partition_nth.<locals>.<genexpr>       6+QDy+   c              3   (   #    U  H  oS L v   M
     g 7fr   r   r  s     r;   r   r    r  r  c              3   B   >#    U  H  oS L =(       d    UT:*  v   M     g 7fr   r   r   r
  ps     r;   r   r         @KqDy*AF*K   c              3   ,   >#    U  H	  oT:  v   M     g 7fr   r   r  s     r;   r   r         3{!Av{   c              3   ,   >#    U  H	  oT:*  v   M     g 7fr   r   r  s     r;   r   r    r  r  c              3   B   >#    U  H  oS L =(       d    UT:  v   M     g 7fr   r   r  s     r;   r   r     r  r  )r*  r1   sortedlistr  r   )re  r   pivotrj   r  until_pivotafter_pivotr  s          @r;   check_partition_nthr    s=   !Gw<3t9$$$'?d5T#34444-25\:\
#\K:-25#d)-DE-D
#-DKEU^AyZ'6+666666+66666Z'@K@@@@@3{333333{33333@K@@@@@ ;Es   %EE!c                  j   [        [        SS5      5      n [        R                  " U 5        Sn[        R
                  " XS9n[        XUS5        [        R
                  " X5      U:X  d   e[        R                  " [        SS9   [        R
                  " U 5        S S S 5        g ! , (       d  f       g = f)Nrw      r   )r  at_endz8'partition_nth_indices' cannot be called without optionsr.   )
r  r  r  shuffler@   partition_nth_indicesr  r4   r5   r  )re  r  r   s      r;   test_partition_nthr  #  s    c3 D
NN4E&&t9Guh7##D0G;;;	L
N 	  &
N 
N 
Ns   B$$
B2c                      [        [        S5      5      S /S-  -   n [        R                  " U 5        S H-  nS H$  n[        R
                  " XUS9n[        XX5        M&     M/     g )Nr   )r   ra  r2     )rh   r  )r  rj   )r  r  r  r  r@   r  r  )re  r  rj   r   s       r;   !test_partition_nth_null_placementr  2  sZ    b	?dVb[(D
NN44N..t>LNGuE 5  rE   c                  X   SS jn [         R                  " / SQ5      nS Hg  nS H$  n[        R                  " XSU4/S9nU " XAU5        M&     [        R                  " XS9nU " XAS5        [        R
                  " XS9nU " XAS	5        Mi     [        R                  " U[        R                  " S
S/S9S9nU " XAS5        [        R                  " U[        R                  " S
S/S9S9nU " XAS	5        [        R                  " US
S/S9U:X  d   e[        R                  " US
S/5      U:X  d   eg )Nc                     [         R                  " USU4/S9nUR                  S[        U 5      5      nU(       a  X:X  d   eg [         R                  " X5      n[         R                  " X5      nXv:X  d   eg )Nr}   ry   r   r@   sort_indicesslicer1   r  )select_k_indicesr  orderstable_sortsorted_indiceshead_k_indicesr  r  s           r;   validate_select_k.test_select_k_array.<locals>.validate_select_k>  si    '59I8JK'--a5E1FG#555wws3HWWS3F%%%rE   r$   r%   Nr   r   r%   r&   )r~   rn   r}   r  rq   )r  r~   rn   r%   r|   r  r}   rn   ry   F)r   r   r@   select_k_unstabletop_k_unstablebottom_k_unstabler   )r  r  r  r  r  s        r;   test_select_k_arrayr  =  sB   & ((?
#C0E))gu%5$68Ff51 1
 ""3,&|4%%c/&{3  !!R&&346F f<0!!R&&7M6NOF f;/ Q+A*BDGMN N NQ)?(@AVKKKrE   c                  ^   SS jn [         R                  " / SQ/ SQS.5      nS H  n[        R                  " XS/S9nU " X1S/S9  [        R                  " X[        R                  " S	5      S
4S/S9nU " X1SS/S9  [        R
                  " XS	/S9nU " X1S/S9  [        R                  " XS	S/S9nU " X1SS/S9  M     [        R                  " [        SS9   [        R                  " U5        S S S 5        [        R                  " [        SS9   [        R                  " USS/S9  S S S 5        [        R                  " [        SS9   [        R                  " US/ S9  S S S 5        [        R                  " [        SS9   [        R                  " UWS/S9  S S S 5        [        R                  " [        SS9   [        R                  " UWS/S9  S S S 5        g ! , (       d  f       N= f! , (       d  f       N= f! , (       d  f       N= f! , (       d  f       N{= f! , (       d  f       g = f)Nc                     [         R                  " XS9nUR                  S[        U 5      5      nU(       a  X:X  d   eg [         R                  " X5      n[         R                  " X5      nXv:X  d   eg )Nry   r   r  )r  tblrq   r  r  r  r  r  s           r;   r  .test_select_k_table.<locals>.validate_select_kg  s_    B'--a5E1FG#555wws3HWWS3F%%%rE   )r$   r%   r   )r$   r   r$   r*   r   r   rn   r  ry   r   rn   rx   r   r~   r   z4'select_k_unstable' cannot be called without optionsr.   z,select_k_unstable requires a nonnegative `k`r]   z2select_k_unstable requires a non-empty `sort_keys`r%   not a valid sort orderr   nonscending.Invalid sort key column: No match for.*unknownunknownrn   r  )
r   r  r@   r  r_   r  r  r4   r5   r  )r  r  r  r  s       r;   test_select_k_tabler  f  s   & HH9956E%%#5"68&4F3GH%%BHHSM;#?AS"TV&8:L%M	O ""5#?&4G3HI%%eS#JG&8:L%M	O " 
H
J 	U#
J
 
zK
M
Ub5G4HI
M 
z5
6 	Ua26
6
 
z)A	B
Ua4H3IJ 
C 
zM
O
Ua4L3MN
O 
O#
J 
J

M 
M
6 
6
 
C	B
O 
Os<   GG+G< H9H
G(+
G9<
H

H
H,c                     [         R                  " / SQ5      n [        R                  " U 5      nUR	                  5       / SQ:X  d   e[        R                  " U SS9nUR	                  5       / SQ:X  d   e[        R                  " U SS9nUR	                  5       / SQ:X  d   e[        R                  " U SSS9nUR	                  5       / S	Q:X  d   e[        R                  " U SSS
9nUR	                  5       / S	Q:X  d   e[
        R                  " [        SS9   [        R                  " U SS9  S S S 5        g ! , (       d  f       g = f)Nr  r#   r   r$   r%   rn   )r  r~   r$   r   r#   r%   rh   )r  rj   r%   r$   r   r#   ri   r  r.   r  )r   r   r@   array_sort_indicesr*  r4   r5   r  r  r  s     r;   test_array_sort_indicesr    s   
((?
#C""3'F---""3k:F---""3l;F---""3l2<>F---""32<>F---	z)A	B
c7 
C	B	Bs   D55
Ec                     [         R                  " / SQ5      n [        R                  " U 5      nUR	                  5       / SQ:X  d   e[        R                  " U S/S9nUR	                  5       / SQ:X  d   e[        R                  " U S/S9nUR	                  5       / SQ:X  d   e[        R                  " U S/SS9nUR	                  5       / S	Q:X  d   e[        R                  " U S/SS
9nUR	                  5       / S	Q:X  d   e[        R                  " U [        R
                  " S/S9S9nUR	                  5       / SQ:X  d   e[        R                  " U [        R
                  " S/SS9S9nUR	                  5       / S	Q:X  d   eg )Nr  r  r  ry   r|   r  rh   rs   r  ri   r  )r   r   r@   r  r*  r   r  s     r;   test_sort_indices_arrayr    sb   
((?
#C__S!F---__S-C,DEF---__S-D,EFF---__S-D,E,68F---__S#:";,68F---__R^^/F.GHF ---__R^^/F.G3=?F ---rE   c                     [         R                  " / SQ/ SQS.5      n [        R                  " U S/S9nUR	                  5       / SQ:X  d   e[        R                  " U [        R
                  " S5      S4/S	S
9nUR	                  5       / SQ:X  d   e[        R                  " U SS/S9nUR	                  5       / SQ:X  d   e[        R                  " U SS/S	S
9nUR	                  5       / SQ:X  d   e[        R                  " U SS/S	S9nUR	                  5       / SQ:X  d   e[        R                  " [        SS9   [        R                  " U 5        S S S 5        [        R                  " [        SS9   [        R                  " U S/S9  S S S 5        [        R                  " [        SS9   [        R                  " U S/S9  S S S 5        g ! , (       d  f       N= f! , (       d  f       NX= f! , (       d  f       g = f)N)r$   r$   Nr   )r$   r   r   r$   r*   r  ry   r  r   rn   rh   rs   )r%   r#   r   r$   r  rx   r  r  ri   z"Must specify one or more sort keysr.   r  r  r  r  )	r   r  r@   r  r*  r_   r4   r5   r  )r  r  s     r;   test_sort_indices_tabler    s   HH?>?E__U/A.BCF---__U{/K.L,68F---__-/ABF ---__-/AB!F ---__#%78!F ---	z)M	N
 
O 
zM
O
*B)CD
O 
z)A	B
*>)?@ 
C	B 
O	N
O 
O 
C	Bs$   9G	1G)G+	
G
G(+
G9c                  P   [         R                  " / SQ5      n [        R                  " U [         R                  " / SQ5      S9nUR	                  5       / SQ:X  d   e[        R                  " U [         R                  " / SQ5      SS9nUR	                  5       / SQ:X  d   e[        R                  " U [         R                  " SS	/5      S9nUR	                  5       / SQ:X  d   e[        R                  " U [         R                  " SS	/5      SS9nUR	                  5       / SQ:X  d   eg )
Nr$   r%   Nr$   r%   r#   r$   r#   N	value_set)TFTTFTTr$  rW   )TFFTFTr$   r#   )r   r   r@   is_inr*  r  s     r;   
test_is_inr'    s    
(((
)CXXcRXXl%;<F!GGGGXXcRXXl%;MF!HHHHXXcRXXq!f%56F!HHHHXXcRXXq!f%5$GF!HHHHrE   c                     [         R                  " / SQ5      n [        R                  " U [         R                  " / SQ5      S9nUR	                  5       / SQ:X  d   e[        R                  " U [         R                  " / SQ5      SS9nUR	                  5       / SQ:X  d   e[        R                  " U [         R                  " SS	/5      S9nUR	                  5       / SQ:X  d   e[        R                  " U [         R                  " SS	/5      SS9nUR	                  5       / SQ:X  d   e[        R                  " U [         R                  " SS	/5      SS
9nUR	                  5       / SQ:X  d   eg )Nr!  r"  r#  )r   Nr%   r   Nr$   Tr%  )r   NNr   Nr$   r$   r#   r[   )r   r   r@   index_inr*  r  s     r;   test_index_inr*    s   
(((
)C[[(>?F!9999[[(>$(*F!<<<<[[!Q(89F!<<<<[[!Q(8TJF!<<<< [[bhh1v.4@F!<<<<rE   c                  4   [         R                  " / SQ5      n [        R                  " U 5      nUR	                  5       S/:X  d   e[        R                  " U SS9nUR	                  5       S/:X  d   e[        R                  " U SS9nUR	                  5       S/:X  d   e[        R                  " U SS9nUR	                  5       S/:X  d   e[        R                  " U S	S9nUR	                  5       S/:X  d   e[        R                  " U S
S9nUR	                  5       S/:X  d   e[         R                  " SS/5      n [        R                  " U / SQS9nUR	                  5       / SQ:X  d   e[        R                  " U / SQSS9nUR	                  5       / SQ:X  d   e[        R                  " U / SQSS9nUR	                  5       / SQ:X  d   e[        R                  " U / SQS	S9nUR	                  5       / SQ:X  d   e[        R                  " U / SQSS9nUR	                  5       / SQ:X  d   e[        R                  " U / SQS
S9nUR	                  5       / SQ:X  d   e[        R                  " U / SQS
S9nUR	                  5       / SQ:X  d   e[
        R                  " [        SS9   [        R                  " U SS9  S S S 5        [
        R                  " [        SS9   [        R                  " U SS9  S S S 5        g ! , (       d  f       NF= f! , (       d  f       g = f)Nr0        @lower)interpolationr%   higherr#   nearestmidpointlinearr$   )g      ?      ?g      ?q)      ?      ?g      ?)r5  r.  )r$   r$   r$   )r%   r%   r%   )r7  r7  r7  r$   r$   r%   z Quantile must be between 0 and 1r.   皙?z"not a valid quantile interpolationzzz)r   r   r@   r  r*  r4   r5   r  r  s     r;   test_quantiler;    s   
((<
 C[[F#&&&[[G4F!$$$[[H5F!$$$[[I6F!$$$[[J7F#&&&[[H5F#&&&
((Aq6
C[[ 12F!2222[[ 1IF***[[ 1JF***[[ 1LF000[[ 1KF***[[ 1JF!2222 [[/xHF!2222	z)K	L
C3 
M	z)M	N
Cu- 
O	N 
M	L	N	Ns   "K8L	8
L	
Lc                     [         R                  " / SQ5      n [        R                  " U 5      nUR	                  5       S/:X  d   e[         R
                  " [         R                  " SS/5      [         R                  " SS/5      /5      n [        R                  " U 5      nUR	                  5       S/:X  d   e[         R                  " / SQ5      n [        R                  " U / SQS9nUR	                  5       / S	Q:X  d   e[         R
                  " [         R                  " SS/5      [         R                  " SS/5      /5      n [        R                  " U / SQ5      nUR	                  5       / S	Q:X  d   eg )
Nr0  r,  r$   r%   r#   r&   )r   r3  r$   r4  )r$   r,  r&   )r   r   r@   tdigestr*  rL  r  s     r;   test_tdigestr>  ;  s   
((<
 CZZ_F#&&&


BHHaV,bhh1v.>?
@CZZ_F#&&&
((<
 CZZ{+F,,,


BHHaV,bhh1v.>?
@CZZ[)F,,,rE   c                  "   [         R                  " S /[         R                  " 5       5      R                  S5      n U R	                  [         R
                  " 5       5      nU[         R                  " S/[         R
                  " 5       5      :X  d   eg )NFr   )r   r   r  r  r  r   r  s     r;   test_fill_null_segfaultr@  M  sZ    
((D6288:
&
0
0
7CXXbggi FRXXqc2779----rE   c                     [         R                  " / SQ5      n [         R                  " / SQ5      n[         R                  " / SQ5      n[        R                  " X5      nU[         R                  " / SQ5      :X  d   e[        R                  " X5      nU[         R                  " / SQ5      :X  d   e[        R                  " XU5      nU[         R                  " / SQ5      :X  d   e[        R                  " XU5      nU[         R                  " / SQ5      :X  d   e[        R                  " XSS9nU[         R                  " / S	Q5      :X  d   e[        R                  " XSS9nU[         R                  " / SQ5      :X  d   e[        R                  " X[        R
                  " 5       S
9nU[         R                  " / S	Q5      :X  d   e[        R                  " X[        R
                  " 5       S
9nU[         R                  " / SQ5      :X  d   e[        R                  " XSS9nU[         R                  " / SQ5      :X  d   e[        R                  " XSS9nU[         R                  " / SQ5      :X  d   eg )NrH  )r#   r$   r%   r%   r#   N)r#   r%   r#   r8  )r#   r#   r#   Tr[   )r%   r#   r#   r  F)r$   r%   N)r   r   r@   max_element_wiser  r   )r0  r1  arr3r  s       r;   test_min_max_element_wiserE  T  s   88ID88ID88L!D  ,FRXXi((((  ,FRXXi((((  T2FRXXi((((  T2FRXXi((((   =FRXXi((((  =FRXXi((((  B::<>FRXXi((((  B::<>FRXXi((((   >FRXXl++++  >FRXXl++++rE   rV   )r6  g      %@g      %rW   )TFc                    [        U 5      nS U[        R                  " U[        R                  " 5       S9[        R                  " U[        R                  " 5       S9/nU GH5  n[        R
                  " / SQ5      [        R
                  " / SQ5      [        R                  " SS /SS//5      /n[        R
                  " / SQ5      U(       a  [        R
                  " / SQ5      O[        R
                  " / S	Q5      U(       a  [        R                  " / SQ/5      O[        R                  " / S	Q/5      /n[        U5       HP  u  px[        R                  " XUS
9n	[        R                  " Xg   Ub  UOS5      n
U	R                  U
5      (       a  MP   e   GM8     S U [        R                  " U [        R                  " 5       S9[        R                  " U [        R                  " 5       S9/nU GH  n[        R
                  " / SQ5      [        R
                  " S[        R                  SSSS/5      [        R
                  " S[        R                  S SS S/5      /n[        R
                  " / SQ5      [        R
                  " S[        R                  [        R                  [        R                  [        R                  [        R                  /5      U(       aF  [        R
                  " S[        R                  S [        R                  S [        R                  /5      O)[        R
                  " S[        R                  S S S S /5      /n[        U5       Hr  u  px[        R                  " XUS
9n	[        R                  " Xg   Ub  UOS5      n
[        R                   R#                  U	R%                  SS9U
R%                  SS95        Mt     GM     S[        R                  " S5      S4 HG  n[&        R(                  " [        R*                  5         [        R                  " / SQUS9  S S S 5        MI     g ! , (       d  f       M[  = f)Nr1  rH  )r   Nr     r   r  rG  )r$   r#   r'   )r   Nr  r  )r   NNNrU   )      ?g      @g     @@r$   r%   r  r&   r   r#   )rH  g      @g     @Fzero_copy_onlyr   arrowr9  r  )r  r   r   r   r   r   rL  r  r@   cumulative_sumr   r  r  r  r  r  r  assert_array_almost_equalto_numpyr4   r5   r]  rV   rW   	start_intstartsstrtarraysexpected_arraysr  r  r  r  s              r;   test_cumulative_sumrU  v  s   
 E
IIryyCii	
35FHHYHH&'q$i"b23
 HHY HH&'!xx(=> /01!//1F0GH
  'FA&&s:NFvvo0$:J$#$&H==**** ( ( E299U>iiBJJL13FHH+,HHaB1-.HHaq$23
 HH,-HHa@A HHarvvtRVV<=!xxBFFD$d(KL	
  'FA&&s:NFvvo0$:J$#$&HJJ00$ 2A 2&'/'8'8'8'NP ( ( bii(#.]]2??+it4 ,+ /++   P88
Q	c                    [        U 5      nS U[        R                  " U[        R                  " 5       S9[        R                  " U[        R                  " 5       S9/nU GH5  n[        R
                  " / SQ5      [        R
                  " / SQ5      [        R                  " SS /SS//5      /n[        R
                  " / SQ5      U(       a  [        R
                  " / SQ5      O[        R
                  " / S	Q5      U(       a  [        R                  " / SQ/5      O[        R                  " / S	Q/5      /n[        U5       HP  u  px[        R                  " XUS
9n	[        R                  " Xg   Ub  UOS5      n
U	R                  U
5      (       a  MP   e   GM8     S U [        R                  " U [        R                  " 5       S9[        R                  " U [        R                  " 5       S9/nU GH  n[        R
                  " / SQ5      [        R
                  " S[        R                  SSSS/5      [        R
                  " S[        R                  S SS S/5      /n[        R
                  " / SQ5      [        R
                  " S[        R                  [        R                  [        R                  [        R                  [        R                  /5      U(       aF  [        R
                  " S[        R                  S [        R                  S [        R                  /5      O)[        R
                  " S[        R                  S S S S /5      /n[        U5       Hr  u  px[        R                  " XUS
9n	[        R                  " Xg   Ub  UOS5      n
[        R                   R#                  U	R%                  SS9U
R%                  SS95        Mt     GM     S[        R                  " S5      S4 HG  n[&        R(                  " [        R*                  5         [        R                  " / SQUS9  S S S 5        MI     g ! , (       d  f       M[  = f)Nr1  rH  )r$   Nr  r   r$   r  r   )r$   r%   r'   )r$   Nr  rw   )r$   NNNrU   )r7  r,  ra  r%   r  r&   r#   )r7  g      @g     @*@FrI  r   rK  r9  r  )r  r   r   r   r   r   rL  r  r@   cumulative_prodrX  r  r  r  r  r  r  rM  rN  r4   r5   r]  rO  s              r;   test_cumulative_prodrY    s   
 E
IIryyCii	
35FHHYHH%&q$i"a12
 HHY HH'(!xx(=> 012!//1F0GH
  'FA''JOF{{?#5t?Ot()+H==**** ( ( E299U>iiBJJL13FHH_%HHaB1-.HHaq$23
 HH()HHa@A HHarvvtRVV<=!xxBFFD$d(KL	
  'FA''JOF{{?#5t?Ot()+HJJ00$ 2A 2&'/'8'8'8'NP ( ( bii(#.]]2??+y5 ,+ /++rV  )r3  ra  g      @c                    [        U 5      nS U[        R                  " U[        R                  " 5       S9[        R                  " U[        R                  " 5       S9/nU GH=  n[        R
                  " / SQ5      [        R
                  " / SQ5      [        R                  " / SQ/ SQ/5      /n[        R
                  " / SQ5      U(       a  [        R
                  " / SQ5      O[        R
                  " / SQ5      U(       a  [        R                  " / SQ/5      O[        R                  " / SQ/5      /n[        U5       HX  u  px[        R                  " XUS	9n	[        R                  " Xg   Ub  UO
[        S
5      SS9n
U	R                  U
5      (       a  MX   e   GM@     S U [        R                  " U [        R                  " 5       S9[        R                  " U [        R                  " 5       S9/nU GHU  n[        R
                  " / SQ5      [        R
                  " SSS[        R                  SS/5      [        R
                  " SSS [        R                  SS /5      /n[        R
                  " / SQ5      [        R
                  " / SQ5      U(       a  [        R
                  " / SQ5      O[        R
                  " / SQ5      /n[        U5       Hq  u  px[        R                  " XUS	9n	[        R                  " Xg   Ub  UOS
SS9n
[        R                   R#                  U	R%                  SS9U
R%                  SS95        Ms     GMX     S[        R                  " S5      S4 HG  n[&        R(                  " [        R*                  5         [        R                  " / SQUS9  S S S 5        MI     g ! , (       d  f       M[  = f)Nr1  )r%   r$   r#   r   r&   r'   )r%   r$   Nr   r&   N)r%   r$   N)r   r&   N)r%   r%   r#   r   r   r'   )r%   r%   Nr   r   N)r%   r%   NNNNrU   g    eFr[   )r,  ?rb  ffffff@皙@@r,  r[  rb  r]  r^  )r,  r,  rb  r\  r\  r^  )r,  r,  rb  rb  r]  r^  )r,  r,  Nr,  r]  N)r,  r,  NNNNrI  r   rK  r9  rH  r  )r  r   r   r   r   r   rL  r  r@   cumulative_maxrC  r  r  r  r  r  r  rM  rN  r4   r5   r]  rO  s              r;   test_cumulative_maxr`    s   
 E
IIryyCii	
35FHH'(HH-.lL9:
 HH'( HH-.!xx(FG 678<=>
  'FA&&s:NF**"D,<D#d) "H ==**** ( , E299U>iiBJJL13FHH34HHc3RVVS#67HHc3bffc489
 HH34HH34 HH56!xx(JK	
  'FA&&s:NF**"D,<D$ "H JJ00$ 2A 2&'/'8'8'8'NP ( * bii(#.]]2??+it4 ,+ /++   N55
O	c                    [        U 5      nS U[        R                  " U[        R                  " 5       S9[        R                  " U[        R                  " 5       S9/nU GH=  n[        R
                  " / SQ5      [        R
                  " / SQ5      [        R                  " / SQ/ SQ/5      /n[        R
                  " / SQ5      U(       a  [        R
                  " / SQ5      O[        R
                  " / SQ5      U(       a  [        R                  " / SQ/5      O[        R                  " / SQ/5      /n[        U5       HX  u  px[        R                  " XUS	9n	[        R                  " Xg   Ub  UO
[        S
5      SS9n
U	R                  U
5      (       a  MX   e   GM@     S U [        R                  " U [        R                  " 5       S9[        R                  " U [        R                  " 5       S9/nU GHU  n[        R
                  " / SQ5      [        R
                  " SSS[        R                  SS/5      [        R
                  " SSS [        R                  SS /5      /n[        R
                  " / SQ5      [        R
                  " / SQ5      U(       a  [        R
                  " / SQ5      O[        R
                  " / SQ5      /n[        U5       Hq  u  px[        R                  " XUS	9n	[        R                  " Xg   Ub  UOS
SS9n
[        R                   R#                  U	R%                  SS9U
R%                  SS95        Ms     GMX     S[        R                  " S5      S4 HG  n[&        R(                  " [        R*                  5         [        R,                  " / SQUS9  S S S 5        MI     g ! , (       d  f       M[  = f)Nr1  )r   r'   r&   r%   r#   r$   )r   r'   Nr%   r#   N)r   r'   NrB  )r   r   r&   r%   r%   r$   )r   r   Nr%   r%   N)r   r   NNNNrU   g    eAFr[   )      @333333@@ @333333@333333?rc  rd  re  rg  rh  )rc  rc  re  rf  rf  rh  )rc  rc  re  re  rg  rh  )rc  rc  Nrc  rg  N)rc  rc  NNNNrI  r   rK  r9  rH  r  )r  r   r   r   r   r   rL  r  r@   cumulative_minr  r  r  r  r  r  r  rM  rN  r4   r5   r]  r_  rO  s              r;   test_cumulative_minrj    s   
 E
IIryyCii	
35FHH'(HH-.lL9:
 HH'( HH-.!xx(FG 678<=>
  'FA&&s:NF**"D,<D#c( "H ==**** ( , E299U>iiBJJL13FHH34HHc3RVVS#67HHc3bffc489
 HH34HH34 HH56!xx(JK	
  'FA&&s:NF**"D,<D# "H JJ00$ 2A 2&'/'8'8'8'NP ( * bii(#.]]2??+it4 ,+ /++ra  c                     [         R                  " SS5      R                  5       SSS.:X  d   e[         R                  " SSSS/S9R                  5       SSS.:X  d   e[         R                  " / SQS	R                  5       5      [        R
                  R                  / SQS	R                  5       /S
R                  5       S9:X  d   e[        R                  " [        SS9   [         R                  " / SQS	R                  5       5        S S S 5        [        R                  " [        SS9   [         R                  " SS/S9  S S S 5        g ! , (       d  f       NG= f! , (       d  f       g = f)Nr$   r   )r   ra   r  r   )field_names)r  r   rH  za b cz0 1r  r  r.   r0  z0 arguments but 2 field namesonetwo)
r@   make_structr4  splitr   rr  r  r4   r5   r  r   rE   r;   test_make_structrq  X  s.   >>!S!'')13-????>>!SsCj9??ASF    >>)!--/+.0nn.H.H'%mmoJ/6;kkm /I /EE E E
 
zJ
L
|W]]_5
L 
z)H	I
E5>2 
J	I	
L 
L 
J	Is    (E	)E	
E
E(c                     [         R                  " [         R                  " 5       [         R                  " 5       5      n [         R                  " SS/S// SS/S /U S9n[         R                  " / SQ[         R                  " 5       S9n[         R                  " / SQ[         R                  " 5       S9n[         R                  " S	/S S S
S/S /[         R
                  " [         R                  " 5       5      S9n[        R                  " USS5      U:X  d   e[        R                  " U[         R                  " S[         R                  " 5       S9S5      U:X  d   e[        R                  " U[         R                  " S[         R                  " 5       S9S5      U:X  d   e[        R                  " U[         R                  " S[         R                  " 5       S9S5      U:X  d   eg )N)rm  r$   )rn  r%   )noner#   )rm  r   )rm  ra  r1  )r$   NNr   N)r$   NNra  Nr$   r   ra  rm  re   lastr   )	r   map_rX  r   r   r  r@   
map_lookupr   )r  r  result_firstresult_last
result_alls        r;   test_map_lookuprz  k  su   	BHHJ	'B
((Z,{mZ0$8>@BC884288:FL((3"((*EKA3dQFD9!xx
35J ==eW-=====biiBGGI '),89 9 9==biiBGGI &(+67 7 7==biiBGGI %'*45 5 5rE   c                  :   [         R                  " / SQ[         R                  " 5       S9n [         R                  " / SQ5      n[         R                  R	                  X/SS/5      n[         R                  R	                  X/SS/5      n[
        R                  " US5      U:X  d   e[
        R                  " US5      U:X  d   e[
        R                  " USS/5      U:X  d   e[
        R                  " US	S/5      U:X  d   e[
        R                  " US
5      U:X  d   e[
        R                  " U[
        R                  " S5      5      U:X  d   e[
        R                  " US5      U :X  d   e[
        R                  " US/5      U :X  d   e[
        R                  " US5      U :X  d   e[
        R                  " U[
        R                  " S5      5      U :X  d   e[
        R                  " US	S	/S9U:X  d   e[
        R                  " US5      U:X  d   e[
        R                  " US/5      U :X  d   e[
        R                  " U/ 5      U:X  d   e[        R                  " [         R                  SS9   [
        R                  " US5        S S S 5        [        R                  " [         R                  SS9   [
        R                  " US5        S S S 5        [        R                  " [         R                  SS9   [
        R                  " US5        S S S 5        [        R                  " [         R                  SS9   [
        R                  " U5        S S S 5        g ! , (       d  f       N= f! , (       d  f       N= f! , (       d  f       Ns= f! , (       d  f       g = f)Nr&   r   r'   r1  )r	  Nr  r   r   r  z.c.bs   .c.br$   )r"   r   )r  r   z.a)r   r   )r$   r$   r   zNo match for FieldRefr.   r  z.c.fooz.a.fooz cannot be called without options)r   r   r   rr  r  r@   struct_fieldr_   r4   r5   r]  )r   r   r  r  s       r;   test_struct_fields_optionsr~  }  s   
,A
"#A
""A6C:6A
..
$
$aVc3Z
8C??3'1,,,??3(A---??3c
+q000??3C)Q...??3,111??3 45:::??3%***??3&!+++??3$)))??3 01Q666??3A/1444??3'1,,,??3$)))??3#s***	r.E	F
U# 
G 
r.E	F
X& 
G 
r.E	F
X& 
G 
r.P	Q
 
R	Q 
G	F 
G	F 
G	F 
R	Qs0   0M3M*6M;9N
M'*
M8;
N	
Nc                      [         R                  " [         R                  " / SQ/ SQ5      / SQ/ SQ5      [        R                  " / SQ5      :X  d   eg )Nr)  )FTNrH  )   r1  r2  )r$   r1  N)r@   	case_whenro  r   r   r   rE   r;   test_case_whenr    sE    <<':':<!$& *,-)@A A ArE   c                  ~   [         R                  " S[         R                  " 5       4S[         R                  " 5       4/5      n [         R                  " U 5      nSSS.S SSS.S SS	S./nS S
SS.SSS.S SSS./n[         R
                  " X#/U5      nSn[         R                  R                  XE5      n[         R
                  " S S
SS./U 5      nUR                  U5      (       d   eSn[         R                  R                  XE5      n[         R
                  " SS	S.SSS./U 5      nUR                  U5      (       d   eg )Nr   r   r   r%   r*   r   r&   gffffff@r'   gp=
ף?r#   ffffff?g333333?r   r$   )	r   r  r  r   r  r   r  list_elementr  )element_type	list_typel1l2listsr  r  r  s           r;   test_list_elementr    s   99sBJJL1C3CDEL&I
T!#4d#A<N	OB
c""1$5t2A=N	OBHHbXy)EEZZ$$U2FxxT23\BH==""""EZZ$$U2Fxxs+2A->?NH==""""rE   c            	      Z   [        SS5       V s/ s H  n [        R                  " U SSS9PM     nn [        R                  " U[        R                  " S5      5      n[
        R                  " U5      [        R                  " [        U5      [        R                  " 5       S9:X  d   eg s  sn f )Ni  i,  r$   )rd  rs  rf  rA  r1  )
r  r  r   r   r6  r@   count_distinctr   r1   r   )ysamplesr  s      r;   test_count_distinctr    s{    BGdBSTBSQx  aqa8BSGT
((7BLL.
/CS!RYYs7|"((*%MMMM Us    B(c                     [         R                  " / SQ5      n [        R                  " U 5      R	                  5       S:X  d   e[        R                  " U SS9R	                  5       S:X  d   e[        R                  " U SS9R	                  5       S:X  d   e[        R                  " U SS9R	                  5       S:X  d   e[        R                  " U S5      R	                  5       S:X  d   eg )	Nr  r#   r  r  r  r$   r   r&   )r   r   r@   r  r4  r,  s    r;   test_count_distinct_optionsr    s    
(((
)CS!'')Q...S|4::<AAAS{399;q@@@Su-335:::S%(..0A555rE   c                     [         R                  " S/5      n [        R                  " U SS9U :X  d   e[        R                  " U SS9[         R                  " S/5      :X  d   e[        R                  " U S5      U :X  d   e[        R                  " U S5      [         R                  " S/5      :X  d   e[        R
                  " [        SS	9   [        R                  " U S
S9  S S S 5        g ! , (       d  f       g = f)Nu   01²3NFC)formr   0123NFDNFKDz/"NFZ" is not a valid Unicode normalization formr.   NFZ)r   r   r@   utf8_normalizer4   r5   r  r,  s    r;   test_utf8_normalizer    s    
((G9
CSu-444Sv."((F82DDDDS%(C///S&)RXXvh-????	C
E 	#E*
E 
E 
Es   C**
C8c            
         S HD  n [         R                  " SU S9[        R                  " / [        R                  " 5       S9:X  a  MD   e   [        S5       Vs/ s H0  n[        [         R                  " S5      R                  5       5      PM2     nn[        [        U5      5      [        U5      :X  d   e[        SS5       Vs/ s H2  n[        [         R                  " SUS-  S9R                  5       5      PM4     nn[        [        U5      5      S:X  d   e[        5       SS	/nUR                  S
 [        S5       5       5        U Vs/ s H/  n[        [         R                  " SUS9R                  5       5      PM1     nn[        [        U5      5      [        U5      :X  d   e[        R                  " [        SS9   [         R                  " S/ S9  S S S 5        g s  snf s  snf s  snf ! , (       d  f       g = f)N)systemr  is   abcdefr   )initializerr1  r   rw   ra  r|  r  c              3   N   #    U  H  n[         R                  " S 5      v   M     g7f)r   N)osurandom)r   r  s     r;   r   test_random.<locals>.<genexpr>  s     :	1

2	s   #%zJinitializer should be 'system', an integer, or a hashable object; got \[\]r.   )r@   r  r   r   r  r  tupler*  r1   r  r3   rG  r4   r5   r6   )r  r  rS  initializerss       r;   test_randomr    s   5yy4HHRbjjl+, 	, , 6
 :?rCAeBIIcN,,./FCs6{s6{*** Q}&$! BIIcq1u5??AB$  &s6{q    Hi/L:b	::#%#! BIIcq1;;=>#  %s6{s6{***	y?
@ 			#2&
@ 
@ D&%
@ 
@s   7G9G!	6G&=G++
G9ztiebreaker,expected_valuesr  )r#   r$   r&   r'   r&   r'   r$   ro   )r#   r%   r   ra  r   ra  r%   re   r#   r$   r&   r'   r   ra  r%   dense)r%   r$   r#   r&   r#   r&   r$   c                    [         R                  " / SQ5      n[        R                  " SSU S9n[        R                  " X#S9n[         R                  " U[         R
                  " 5       S9nUR                  U5      (       d   eg )Nrh  r  333333@Nr  Nr  rn   r  rp   r  r1  )r   r   r@   r   rankr   r  )rr   expected_valuesr  rank_optionsr  r  s         r;   test_rank_options_tiebreakerr    sd     ((8
9C>>K19-79L WWS/Fxxbiik:H==""""rE   c                     [         R                  " / SQ5      n [         R                  " / SQ[         R                  " 5       S9n[        R                  " U 5      nUR                  U5      (       d   e[        R                  " U [        R                  " 5       S9nUR                  U5      (       d   e[        R                  " U [        R                  " S/S9S9nUR                  U5      (       d   e[        R                  " U SS9n[         R                  " / S	Q[         R                  " 5       S9nUR                  U5      (       d   e[        R                  " U S
S9n[         R                  " / SQ[         R                  " 5       S9nUR                  U5      (       d   e[        R                  " [        SS9   [        R                  " S
SSS9  S S S 5        g ! , (       d  f       g = f)Nr  r  r1  r  rx   ry   rh   ri   )r   r#   r'   r$   ra  r%   r&   r~   )r#   r&   r$   r'   r%   ra  r   z'"NonExisting" is not a valid tiebreakerr.   r  NonExistingrp   )
r   r   r   r@   r  r  r   r4   r5   r  r  r  r  expected_at_startexpected_descendings        r;   test_rank_optionsr    si   
((8
9Cxx-BIIK@H WWS\F=="""" WWS".."23F=="""" WWS"..%&#( F ==""""WWS4F!6RYY[I==*++++WWSL1F((#8ryy{K==,----	zG
I
&."/	1
I 
I 
Is   8G
G&c                     [         R                  " / SQ5      n [         R                  " / SQ[         R                  " 5       S9n[        R                  " U 5      nUR                  U5      (       d   e[        R                  " U [        R                  " 5       S9nUR                  U5      (       d   e[        R                  " U [        R                  " S/S9S9nUR                  U5      (       d   e[        R                  " U SS9n[         R                  " / S	Q[         R                  " 5       S9nUR                  U5      (       d   e[        R                  " U S
S9n[         R                  " / SQ[         R                  " 5       S9nUR                  U5      (       d   e[        R                  " [        SS9   [        R                  " U SS9  S S S 5        g ! , (       d  f       g = f)NNr$   Nr%   N)r  r   r  r   r  r1  r  rx   ry   rh   ri   )r   r  r   r   r   r~   )r  r   r  r   r  r  r.   XXX)
r   r   r  r@   rank_quantiler  r   r4   r5   r  r  s        r;   test_rank_quantile_optionsr  #  sk   
((+
,Cxx1

EH c"F=="""" c2+A+A+CDF=="""" c2+A+A%&,( F ==""""c*=F!:N==*++++c\:F((#<2::<P==,----	z)A	B
. 
C	B	Bs   8G
G%c                     [         R                  " / SQ5      n [        R                  " / SQ5      n[        R
                  " U 5      nUR                  5       U:X  d   e[        R
                  " U SSS9nUR                  5       U:X  d   e[        R
                  " U [        R                  " 5       S9nUR                  5       U:X  d   e[        R                  " / SQ5      n[        R
                  " U SS	S9nUR                  5       U:X  d   e[        R
                  " U [        R                  " SS	S9S9nUR                  5       U:X  d   eg )
Nr  )ł?g2m6<r  łr  r  rn   )rj   rq   r  )r  g2m6<?r  r  r  rh   r~   )r   r   r4   rm  r@   rank_normalr*  r   r  r  r  s      r;   test_rank_normal_optionsr  A  s    
((+
,C}}	23H ^^C F)))^^CKPF)))^^C)?)?)ABF)))}}	23H ^^C
lSF)))^^C$&$:$:*EQ%STF )))rE   c                     [         R                  " [         R                  " S[         R                  " 5       5      [         R                  " S[         R                  " [         R                  " S[         R
                  " 5       5      /5      5      /5      n [        R                  " S5      n[        R                  " S5      n[        R                  " S5      n[        R                  " S5      n[        R                  " S 5      n[        R                  " SS05      n[        R                  " [         R                  " S5      5      n[        R                  " [        R                  " S	5      5      n[        R                  " S
5      n	[        R                  " S5      n
XX4XWXU
/	n/ X:H  PX:g  PX:  PX9-  PX9-  PU) PUR                  5       PX-   PX-
  PX-  PX-  P[        R                  " U5      P[        R                  " X5      P[        R                  " X5      P[        R                  " X5      P[        R                  " X5      P[        R                  " X5      P[        R                   " U5      P[        R"                  " U5      P[        R$                  " U5      P[        R&                  " U5      P[        R(                  " U5      P[        R*                  " U5      P[        R,                  " U5      P[        R.                  " U5      P[        R0                  " X"5      P[        R2                  " U5      P[        R4                  " U5      P[        R6                  " U5      P[        R8                  " U5      P[        R:                  " U5      P[        R<                  " U
5      P[        R>                  " U5      P[        R@                  " U5      P[        RB                  " U5      P[        RD                  " X5      P[        RF                  " X5      P[        RH                  " X5      P[        RJ                  " U5      P[        RL                  " U5      P[        RN                  " X5      PURQ                  [         RR                  " 5       S
S9Pn[        R                  " S5      S:  [        R                  " S5      S:H  [        R                  " S5      S:H  [        R                  " S5      S:H  [        R                  " SS5      S:H  /n[        R                  " S5      S:  [        R                  " S5      S:H  [        R                  " S5      S:H  [        R                  " S5      S:H  [        R                  " SS5      S:H  /nUURU                  / SQ5      [        R                  " S5      RW                  5       /nURY                  5       nUU-  nUU-  nUU-  nUUUUUUU S.$ )Ni64r  r	  r$   r9  Tr   r   r%   Fr   r  r   ra  )r  r	  r  )r$   r   rH  )r   literalscallsrefsnumeric_refsspecialschema)-r   r  r_   r   r  r   r@   r   r  r  negater   rT  dividerX  powersqrtexpcossintanacosatanasinatan2sinhcoshtanhasinhacoshatanhr   signbit_wise_notbit_wise_andbit_wise_orbit_wise_xorr  	is_finiter  r  r   isinr<  copy)r  r   r   r  r  r  r  r  r  r  r  literal_exprsexprs_with_callexprs_with_refexprs_with_numeric_refsspecial_cases	all_exprss                    r;   create_sample_expressionsr  Y  s   YY
3RXXryy"((5"))+6786: ; <F 			!A
		#A
		$A
		(A
		$A
		3(A
		"))A,A
		"((1+A
		%A
		!A 1qQ/M7qv 7qv 7qu 7ae 7QU 7QB 7

 7u7e7%&U7,-E73599Q<7vva|7%'[[%678:		!7 {{1(7 +-((1.7 ;=''!*7 vvay	7 #%&&)	7 .0VVAY	7 9;q		7
 wwqz7
 $&771:7
 02wwqz7
 <>88A>7 wwqz7 $&771:7 02wwqz7 xx{7 %'HHQK7 24!7 vvay7 #%''!*7 /1ooa.@7 q,7 /1nnQ.B7 q,7 /1iil7 =?LLO7 {{1(7 vvbhhjuv57O  hhuo)288E?a+?hhuo*hh~.'9hhue,79N  "xx{Qq0@!xx{a/!xx/7:!xx1~8: 	
	y
!M ""$I III ! /  rE   c                     [        5       S    H\  n[        U[        R                  5      (       d   eU R	                  U R                  U5      5      nUR                  U5      (       a  M\   e   g )Nr   )r  r   r@   
Expressionr  r  r  )r  exprrestoreds      r;   #test_expression_serialization_arrowr    s[    )+E2$.... &&}':':4'@A{{8$$$$ 3rE   c                     [        5       n U S   nU S    HK  nUR                  U5      n[        R                  R	                  U5      nUR                  U5      (       a  MK   e   U S    H  nUR                  U5      n[        R                  R	                  U5      n[        U5      [        U5      :X  d   eUR                  U5      n[        R                  R	                  U5      nUR                  U5      (       a  M   e   [        U S   U S   5       H  u  p'UR                  U5      n[        R                  R	                  U5      n[        U5      [        U5      :X  d   eUR                  U5      n[        R                  R	                  U5      nUR                  U5      (       a  M   e   U S    H{  nUR                  U5      n[        R                  R	                  U5      nUR                  U5      n[        R                  R	                  U5      nUR                  U5      (       a  M{   e   U S   S   nUR                  U5      n[        R                  R	                  U5      nUR                  [        R                  " SS	05      5      (       d   e[        R                  " S	5      n	U	R                  / S
Q5      nU	S	:H  U	S:H  -  U	S:H  -  n
UR                  U5      n[        R                  R	                  U5      n[        U
5      [        U5      :X  d   eUR                  U5      n[        R                  R	                  U5      nUR                  U5      (       d   eg )Nr  r  r  r  r  r  r   r  r$   rH  r%   r#   )
r  to_substraitr@   r  from_substraitr  r  r   r   r  )exprsr  r  
serializedr   serialized_againdeserialized_again	expr_normr  r   targets              r;   'test_expression_serialization_substraitr    s    &'E8_F j!&&v.
}}33J?{{<(((( " g&&v.
}}33J? < CI---'44V<]]99:JK""#56666  uV}eN.CD&&v.
}}33J?< C	N222'44V<]]99:JK""#56666 E i &&v.
}}33J?'44V<]]99:JK""#56666 ! 	iA'J==//
;Lryy"a12222 			!A66)D1fa AF+F""6*J==//
;Lv;#l++++#008556FG12222rE   c                     [         R                  " S5      n [         R                  " S5      n[         R                  " S5      n[         R                  " S5      n[         R                  " S5      n[         R                  " S5      n[         R                  " SSS5      n[         R                  " S	5      n[         R                  " S
S5      nX-  U:H    U) U:H    S[        R                  " 5       4 H  n	UR                  U	5      U:H    M     UR                  SS/5        UR                  SS/5        UR                  SS/5        UR                  SS/5        [        R                  " [        5         UR                  S5        S S S 5        [        R                  " [        R                  5         U[        5       :g    S S S 5        g ! , (       d  f       NI= f! , (       d  f       g = f)Nr   r$   TFr   r_   r    r   )nestedr_   r  r	   r%   r  r	  )r@   r   r_   r   r  r  r  r4   r5   r6   r]  r3   )
rI  rm  truefalser   r_   nested_mixed_typesnested_fieldnested_field2r   s
             r;   test_expression_constructionr    sW   99Q<D
))A,C99T?DIIeEYYx FHHWE$3/88/0LHHXw/MJ&	EUN
#

34 $ 
JJ1vUEN+uen%u~&	y	!

1 
" 
r	' 
(	' 
"	! 
(	's   /G-G
G
G#c                  D   [         R                  " S5      n [         R                  " S5      n[        R                  " [        SS9   U =(       a    U  S S S 5        [        R                  " [        SS9   U =(       d    U  S S S 5        [        R                  " [        SS9   [        U 5        S S S 5        [        R                  " [        SS9   U (       +   S S S 5        g ! , (       d  f       N= f! , (       d  f       Nv= f! , (       d  f       NZ= f! , (       d  f       g = f)NTFz"cannot be evaluated to python Truer.   )r@   r   r4   r5   r  r	   )r  r  s     r;   !test_expression_boolean_operatorsr  	  s    99T?DIIeE	z)M	N 
O 
z)M	N 
O 
z)M	NT
 
O 
z)M	N 
O	N 
O	N 
O	N 
O	N 
O	Ns0   C3C/ D D
C,/
C= 
D
Dc                  l   [         R                  " S5      n [        [         R                  " U 5      5      S:X  d   e[        [         R                  " U 5      5      S:X  d   e[        [         R                  " U SS95      S:X  d   e[        [         R
                  " U S5      5      S:X  d   e[        [         R
                  " U [        R                  " S5      5      5      S:X  d   eSn[        R                  " [        US	9   [         R
                  " U [        5        S S S 5        g ! , (       d  f       g = f)
Nr_   zhour(field)zround(field)r$   r]  z2round(field, {ndigits=1, round_mode=HALF_TO_EVEN})zadd(field, 1)z+only other expressions allowed as argumentsr.   )r@   r_   r  rw  rZ  r   r   r   r4   r5   r6   r3   )r_   r^  s     r;   test_expression_call_functionr    s    HHWE rwwu~-/// rxx>111rxxq)*<= = = rvveQ O333rvveRYYq\*+>>> 8C	y	,
uf 
-	,	,s    D%%
D3c                     [         R                  " SSS/05      n [        R                  " [         R                  R
                  5         [        R                  " U [         R                  " 5       5        S S S 5        g ! , (       d  f       g = f)Nr   r$   r%   )	r   r  r4   r5   r  r  r@   r  r   )r  s    r;   test_cast_table_raisesr  1  sN    HHcAq6]#E	rvv,,	-
rxxz" 
.	-	-s   	+A==
Bzstart,stop,expectedrH  r  r'   NNr  r$   r%   r  fixedc                    US:X  as  [         R                  " / SQ/ SQ/ SQS /[         R                  " [         R                  " 5       S5      5      R	                  [         R                  " U" 5       S5      5      nOa[         R                  " / SQSS/S/S /[         R                  " [         R                  " 5       5      5      R	                  U" U" 5       5      5      nX`XS	4nUcH  US:w  aB  S
n[
        R                  " [         R                  US9   [        R                  " U6   S S S 5        g [        R                  " U6 n	U	R	                  [         R                  " [         R                  " 5       U	R                  R                  5      5      R                  5       n
X Vs/ s H  o(       a  US S U2   OUPM     sn:X  d   eg ! , (       d  f       g = fs  snf )Nr  rH  r  r  r#   r&   r   r'   TzZUnable to produce FixedSizeListArray from non-FixedSizeListArray without `stop` being set.r.   )r   r   r  r   r  r4   r5   r]  r@   
list_slicer   	list_sizer*  )rV   r  r  r  r  r  r  r:   r^  r  pylistr  s               r;   test_list_slice_output_fixedr  8  sd    Ghh	<$Gxx	1-//3tBHHZ\14M/N 	 hh	Aq6A35xx	*,,0D:<1H,I 	 t4'D|	W,B]]2??#6MM4  76 %RXXbggi#[[224 55>Y[ 	BAq!FdF)a/BBBB 76 Cs   G G 
Gz
start,stop))r   N)r   r$   )r   r%   r  )r%   r&   c                 *   US:X  au  / SQ/ SQ/ SQS /n[         R                  " U[         R                  " [         R                  " 5       S5      5      R	                  [         R                  " U" 5       S5      5      nOc/ SQSS/S/S /n[         R                  " U[         R                  " [         R                  " 5       5      5      R	                  U" U" 5       5      5      nUS:X  a  [         R                  n[
        R                  " X`XS	S
9nUR                  U" U" 5       5      :X  d   eUR	                  [         R                  " [         R                  " 5       5      5      R                  5       nU V	s/ s H  ob  XX2   OS PM     n
n	X:X  d   eg s  sn	f )Nr  rH  r  r  r#   r&   r   r'   Freturn_fixed_size_list)	r   r   r  r   r  r@   r
  r   r*  )rV   r  r  r  r  re  r  r  r  r  r  s              r;   test_list_slice_output_variabler  X  sD    G<$?hhHHRWWY"$$(D*,)B$C 	 Aq6A3-hhtxx	*,,0D:<1H,I 	 GHH	]]3t279F;;)JL1111[["''),-779F HLLt!m/"=tHL Ms   2Freturn_fixed_sizer)  r   c                  ~    [         R                  " [         R                  " S[         R                  " 5       5      5      $ Ncolr   r  r_   r   r   rE   r;   r  r  ~  s    BHHRXXeRWWY/0rE   c                      [         R                  " [         R                  " S[         R                  " 5       5      S5      $ )Nr  r$   r  r   rE   r;   r  r    s     BHHRXXeRWWY/3rE   c                  ~    [         R                  " [         R                  " S[         R                  " 5       5      5      $ r  )r   r  r_   r   r   rE   r;   r  r    s    BMM"((5"'')45rE   c                 J   [         R                  " S//U" 5       5      n[        R                  " USSU S9nUR                  R                  S5      R                  UR                  R                  S5      R                  :X  d   eU c  UR                  UR                  :X  d   eg g )Nr$   r   r  )r   r   r@   r
  r   r_   r>   )r  r   r  outs       r;   $test_list_slice_field_names_retainedr  |  s     ((QC5$&
!C
--Q:K
LC88>>!!!SXX^^A%6%;%;;;;  xx388### !rE   c                     [         R                  " S//[         R                  " [         R                  " 5       S5      5      n Sn[        R
                  " [         R                  US9   [        R                  " U SS5        S S S 5        [        R
                  " [         R                  US9   [        R                  " U SS5        S S S 5        [        R
                  " [         R                  US9   [        R                  " U SS5        S S S 5        Sn[        R
                  " [         R                  US-   S9   [        R                  " U SSSS	9  S S S 5        [        R
                  " [         R                  US
-   S9   [        R                  " U SSSS	9  S S S 5        g ! , (       d  f       GN&= f! , (       d  f       N= f! , (       d  f       N= f! , (       d  f       N= f! , (       d  f       g = f)Nr$   z@`start`(.*) should be greater than 0 and smaller than `stop`(.*)r.   r]   r%   r   z`step` must be >= 1, got: r   )r  ru  )	r   r   r  r   r4   r5   r]  r@   r
  )r  r^  s     r;   test_list_slice_bad_parametersr    s0   
((QC5"((2779a0
1C
MC	rc	2
c2q! 
3	rc	2
c1a  
3 
rc	2
c1a  
3 'C	rcCi	8
c1aa( 
9	rcDj	9
c1ab) 
:	9 
3	2	2	2 
3	2
 
9	8	9	9s<   'F+F1/G8G>G$
F.1
F?
G
G!$
G2c                     / SQn[         R                  " X S9n[        R                  " X1S9n[        R                  " U5      nUR
                  UR
                  :X  d   eUR                  U5      (       d   eg )N)r$   r$   r$   r%   r%   r$   r$   r$   r$   r$   r#   r#   r#   r#   r#   r#   r#   r#   r#   r1  r  )r   r   r@   run_end_encoderun_end_decoder   r  )r  run_end_encode_optsrK   r  encodeddecodeds         r;   check_run_end_encode_decoder$    s`    FF
((6
+CAG(G<<388###>>#rE   r   c                     [        X5        g r   )r$  )r  r   s     r;   test_run_end_encoder&    s    4  
3rE   c                     [         R                  " / SQ5      n [         R                  " / SQ5      n[         R                  R                  U SS9nUR	                  U5      (       d   e[         R                  " / SQ5      n [         R                  " / SQ5      n[         R                  R                  U SS9nUR	                  U5      (       d   e[         R                  " / SQ[         R
                  " 5       S9n [         R                  " / SQ[         R
                  " 5       S9n[         R                  R                  U S	S9nUR	                  U5      (       d   e[         R                  " / SQ[         R                  " 5       S9n [         R                  " / S
Q[         R                  " 5       S9n[         R                  R                  U S	S9nUR	                  U5      (       d   e[         R                  " / SQ[         R                  " 5       S9n [        R                  " [         R                  SS9   [         R                  R                  U S	S9  S S S 5        g ! , (       d  f       g = f)N)r$   r%   r#   Nr&   r   )Nr$   r$   NNr$   r$   rf   )NNr%   Nr$   Nr%   r1  )r]   r]   NNr]   Nr]   )   r(  NNr(  Noverflowr.   )r   r   r  pairwise_diffr  r   r
   r4   r5   r]  pairwise_diff_checkedr  s      r;   test_pairwise_diffr,    s   
(((
)Cxx34HZZ%%c!%4F==""""
(((
)Cxx67HZZ%%c!%4F=="""" (((rwwy
9Cxx6RWWYGHZZ%%c"%5F=="""" (((rxxz
:Cxx9
KHZZ%%c"%5F=="""" (((rxxz
:C	r'
)


((R(8
) 
) 
)s   .I
I$c                     SS/n [         R                  " / SQ/ SQ5      nUR                  5       0 :X  d   e[         R                  " / SQ/ SQU 5      nUR                  5       S SS.:X  d   e[        UR                  5       5      SS/:X  d   e[         R                  " / SQ/ SQU S9nUR                  5       S SS.:X  d   e[        R
                  " [        SS	9   [         R                  " / SQ/ SQU S
S9nS S S 5        [        R
                  " [        SS	9   [         R                  " / SQ/ SQU S9nS S S 5        g ! , (       d  f       NK= f! , (       d  f       g = f)Nrh  rk   )rk   rh  depth)r   Nr  r   )rh  rk   )	key_nameszUnexpected pivot key: depthr.   rl   )r/  rm   z(Encountered more than one non-null value)rk   rh  rk   )r@   pivot_widerr4  r  r4   r5   KeyErrorr  )r/  r  s     r;   test_pivot_widerr2    s    (#I^^8.IF<<>R^^8.%'F<<>tr::::GX#6666^^8.&/1F<<>tr::::	x'D	E <n*38?A 
F
 
z)S	T =~*35 
U	T 
F	E
 
U	Ts   D9E
9
E

Ec                     [         R                  " / SQ5      n [        R                  " U SS5      nUR	                  5       / SQ:X  d   e[        R                  " U [        R
                  " SSS9S9nUR	                  5       / SQ:X  d   eg )N)
r   r&   r(   r   r   r#   ra  r%   r$   r'   r   g?)
r   r&   r   r   r   r#   ra  r%   r%   r'   )lower_limitupper_limitr  )r   r   r@   	winsorizer*  r   r  s     r;   test_winsorizer7    st    
((2
3C\\#sC(F!????\\R((ScJLF!????rE   )r$   r   )collectionsr   r  r@  	functoolsr   r   rH   r  r  r  r4   r  rE  r  numpyr  ImportErrorpandasrH  r   r   pyarrow.computer  r@   pyarrow.libr   r   pyarrow.substrait	substraitpasr  __dict__rq  r^  r0   r   r   r   
issubclassrG   r   r   r   r
   r   r   r  r  numerical_arrow_typesr  r   r  r  r  all_array_typesr<   rD   rR   markfilterwarningsr   r   r   r   r   r  r  r  r  r!  r'  r-  parametrizer6  rC  rE  rJ  rN  rP  rY  r[  r_  rf  rn  rq  rm  ry  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  unknown_issue_is_alphautf8proc_issue_is_lowernumeric_info_missingdigit_info_missingr\  rd  rq  r~  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r
  r  r  r  r  r  r2  r?  rF  rM  rR  rU  rY  rt  r  r  r  r  r  r  r  r  r  r  r  r  date32date64r  r  r  r  r  r  decimal_type_traitsr  r  r  r  r  r  r  r  r,  r8  r   rS  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r'  r*  r;  r>  r@  rE  rU  rY  r`  rj  rq  rz  r~  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r   r  r  r  r  r$  r   float16r   r&  r,  r2  r7  )r>   r8   rO   s   000r;   <module>rQ     s  $ #   (    	   
    A#
 $BKK$5$5$7848\dt12 	84 
 ""++"3"3"56.6KT3 2%%%  	3**+ 6.  GGIHHJHHJHHJIIKIIKJJLJJL	  -.eAhU1XuQxeAhuQxeAhuQ|eArl%&&',-01YYq\;<XXbggiAq6Aq6Aq64!RAB]]288:!i!Q2w GHYYbggi 3	"234a$aa 0$aa8H7J K#,40	9 BbBbBJ( )*JFI5
3
 $ $=	%	> '<=1 >1* a(;R]]1a=P'QR'; S';T '<=1 >1, a(;R]]1a=P'QR&? S&?R9<"")46: *#01]]#56	8
 &--(:;NOWt./- ::"'2"####,L.0###< D6&76(BJ;D   !&) . 4 3 ".  %'99&"&'   +E F
 Wf$56F 7FF(C$P> 8 804#''E9< )?; <2"##L UDM2* 3*3 )?;# <#(#"#:	1 )?; <, )?;D < D,&#(,&021 1  / :;? <?< / :;!9 <!9H / :; 9 < 9F' ### )<=>- ?-8 L L$ < <6F"#:"#: '<=# >#( '<=# >#8',?	F$3N 		RYY['AB+ C+ '<= >< 2CE    4 CE  )bllAF(bllBG(r}}bI(r}}bIK  CCF.0 bjjl^=':-  /)>:<> >	  ?
/?/ > / bjjlBJJL%AsK)+>-  /;A/ L ;A|G8 HA  HAVPIf = =<1 !89	# :	# W&  W&te8P  "E F9 F 96
(6A*'F&LR0Of8&.6!AHI =*(.V-$.,D "56}515 6 7 15h "56}516 6 7 16h /2}545 6 3 45n /2}545 6 3 45n3&5$"JA#$N6	+'6  "#"#$%$%'##1B/<*0HZ % % :3  :3z8$,# .y,>?QC!qc4 !QFQFQIt,-QC!tfd#$QId|dD\4891  (		288RZZ'HIrxx&HIC J J )C,  (  (		288RZZ'HIrxx&HI J J )4 ,.AB035"7 8$	8 C
$*( 
	















Q
Q
a
a  
rxxz*
w'
rxxz*	4!249<54@y~  	B
  	B  
C4.sm   A@  A@/ A@> =AAAAAAAA+AAAA@ A@,@+A@,@/A@;@:A@;@>AA
A	AA
