
    Owg]              	          d Z ddlZddlZddlZddlmZ ddlmZ ddl	Z
ddlmZ ddlmZmZ d Zej$                  d        Zej$                  d        Zd	 Zd
 Zd Zd Zd Zd Zd Zd Zd Zd Zej>                  jA                  d      d        Z!ej>                  jA                  d      d        Z"d Z#d Z$d Z%d Z&d Z'ej>                  jQ                  dejR                   ejT                  d       e+d      de
jX                  g      d        Z-ej>                  jQ                  dd d!g      d"        Z.d# Z/d$ Z0d% Z1ej>                  jQ                  d&d d!g      ej>                  jA                  d'      d(               Z2ej>                  jQ                  d&d d!g      ej>                  jA                  d'      d)               Z3ej>                  jQ                  d*d+d,g      ej>                  jQ                  d&d d!g      d-               Z4ej>                  jQ                  d*d+d,g      ej>                  jQ                  d.e
jj                  e
jl                  g      d/               Z7d0 Z8d1 Z9ej>                  ju                  d2      d3        Z;ej>                  ju                  d2      d4        Z<d5 Z=d6 Z>ej>                  jQ                  d7g d8 ejl                  g d9      fg d: ejl                  g d;      fg      d<        Z?d= Z@ej>                  jQ                  d>ej                  ej                  ejT                  g      d?        ZCd@ ZDdA ZEdB ZFdC ZGdD ZHdE ZIy)Fz
This module tests the functionality of StringArray and ArrowStringArray.
Tests for the str accessors are in pandas/tests/strings/test_string_array.py
    N)pa_version_under12p0)is_dtype_equal)ArrowStringArrayArrowStringArrayNumpySemanticsc                 `    | j                   dk(  rt        j                  S t        j                  S )Npyarrow_numpy)storagenpnanpdNAdtypes    ^/var/www/horilla/myenv/lib/python3.12/site-packages/pandas/tests/arrays/string_/test_string.pyna_valr      s     }}'vvuu    c                 .    t        j                  |       S )z=Fixture giving StringDtype from parametrized 'string_storage')r	   )r   StringDtype)string_storages    r   r   r      s     >>.11r   c                 "    | j                         S )z3Fixture giving array type from parametrized 'dtype')construct_array_typer   s    r   clsr   #   s     %%''r   c                    t        j                  dt        j                  dt         j                  dg|       i      }| j                  dk(  rd}nd}t        |      |k(  sJ | j                  dk(  rd}nd	}t        |j                        |k(  sJ | j                  d
k(  r	d}d| d}n | j                  dk(  r	d}d| d}nd}d| d}t        |j                  j                        |k(  sJ y )NAabr   r   z     A
0    a
1  NaN
2    bz      A
0     a
1  <NA>
2     bz10      a
1    NaN
2      b
Name: A, dtype: stringz40       a
1    <NA>
2       b
Name: A, dtype: stringpyarrowr   <z+>
['a', <NA>, 'b']
Length: 3, dtype: stringr   z*>
['a', nan, 'b']
Length: 3, dtype: stringStringArray)r   	DataFramearrayr   r	   reprr   )r   dfexpectedarr_names       r   	test_reprr&   )   s    	sBHHc255#%6eDE	FB}}'378x}}'IL:!!!}}	!%xj MN	/	)3xj LM xj MN

x'''r   c                 t    | j                  g d|      }|d   J |d   t        |j                        u sJ y )N)r   Nr   r      )_from_sequencer   r   )r   r   r   s      r   test_none_to_nanr*   C   sB    +59AQ4Q46!''?"""r   c                    | j                  ddg|      }| t        j                  j                  u rd}nd}t	        j
                  t        |      5  d|d<   d d d        | t        j                  j                  u rd	}nd}t	        j
                  t        |      5  t        j                  d
dg      |d d  d d d        y # 1 sw Y   ixY w# 1 sw Y   y xY w)Nr   r   r   z4Cannot set non-string value '10' into a StringArray.Scalar must be NA or strmatch
   r   zMust provide strings.r(      )	r)   r   arraysr   pytestraises	TypeErrorr
   r!   )r   r   arrmsgs       r   test_setitem_validatesr7   I   s    


c3Zu

5C
bii###D(	y	, A bii###%(	y	, "1a&!A" " " "s   C C C	Cc                     t        j                  ddg|       }d|d<   t        j                  ddg|       }t        j                  ||       y )Nr   cr   dr   r   r!   tmassert_extension_array_equal)r   r5   r$   s      r   test_setitem_with_scalar_stringr>   [   sE     ((C:U
+CCFxxc
%0H##C2r   c                 :   t        j                  g d|       }t        j                  dd g      }|j                         }||ddg<   t        j                  dt         j                  dg|       }t        j                  ||       t        j                  ||       y )Nr   r   r9   r   r   r   r(   r9   )r   r!   r
   copyr   r<   r=   assert_numpy_array_equal)r   r5   value
value_origr$   s        r   $test_setitem_with_array_with_missingrE   d   sy     ((?%
0CHHc4[!EJCAKxxbeeS)7H##C2z2r   c                    t        j                  t        j                  dd            }d |d<   |j                  |       }t	        |j
                  |       sJ |j                  d      }t        j                  ||       ||j                  d   z
  }|j                  |       }t	        |j
                  |       sJ |j                  |j
                        }t        j                  ||       y )N2000   )periodsr   zdatetime64[ns])	r   Series
date_rangeastyper   r   r<   assert_series_equaliloc)r   sercastedresultser2casted2result2s          r   test_astype_roundtriprV   q   s    
))BMM&"5
6CCFZZF&,,...]]+,F63' "Dkk% G'--///nnTZZ(G7D)r   c                 "   t        j                  g d|       }t        j                  g d|       }||z   }t        j                  g d|       }t        j                  ||       |j	                  |      }t        j                  ||       |j                  |      }t        j                  g d|       }t        j                  ||       |j	                  |d      }t        j                  g d|       }t        j                  ||       y )	N)r   r   r9   NNr   )xyNzN)axbyNNN)xaybNNN-)
fill_value)r[   r\   zc-z-zN)r   rK   r<   rN   addradd)r   r   r   rR   r$   s        r   test_addrc      s    
		-U;A
		-U;AUFyy7uEH68,UU1XF68,VVAYFyy7uEH68,UU1U%Fyy7uEH68,r   c                    | j                   |v r4d}t        j                  j                  d |      }|j	                  |       t        j                  g d|       }t        j                  g dgt              }t        j                  t        d      5  ||z    d d d        t        j                  |      }t        j                  t        d      5  ||z    d d d        y # 1 sw Y   HxY w# 1 sw Y   y xY w)Nz*Failed: DID NOT RAISE <class 'ValueError'>r3   reasonr@   r   z3 != 1r-   )r	   r2   markxfailapplymarkerr   r!   r
   objectr3   
ValueErrorrK   )r   requestarrow_string_storagerf   rg   r   r   ss           r   test_add_2dro      s    }},,={{  V <D!
.A
/"&1A	z	2 	A 			!A	z	2 	A 	  s   C"C."C+.C7c                    t        j                  g d|       }g d}||z   }t        j                  g d|       }t        j                  ||       ||z   }t        j                  g d|       }t        j                  ||       y )N)r   r   NNr   )rX   NrY   N)r[   NNN)r]   NNNr;   )r   r   otherrR   r$   s        r   test_add_sequencerr      sl    
'u5A"EYFxx0>H##FH5QYFxx0>H##FH5r   c                     t        j                  g d|       }|dz  }t        j                  g d|       }t        j                  ||       d|z  }t        j                  ||       y )Nr   r   Nr   r0   )aabbNr;   )r   r   rR   r$   s       r   test_mulrw      sV    
!/AUFxx*%8H##FH5UF##FH5r   zGH-28527rf   c                    t        j                  g d|       }t        j                  g dgt              }|j	                  |      t
        u sJ ||z   }t        j                  g dg      j                  |       }t        j                  ||       ||z   }t        j                  g dg      j                  |       }t        j                  ||       y )N)r   r   r9   r:   r   )trY   vw)atr\   cvdw)tar^   vcwd)	r   r!   r    rj   __add__NotImplementedrM   r<   assert_frame_equalr   r5   r#   rR   r$   s        r   test_add_stringsr      s    
(('u
5C	+,F	;B;;r?n,,,2XF||567>>uEH&(+#XF||567>>uEH&(+r   c                    t        j                  ddt        j                  t        j                  g|       }t        j                  dt        j                  dt        j                  gg      }|j                  |      t        u sJ ||z   }t        j                  dt        j                  t        j                  t        j                  gg      j                  |       }t        j                  ||       ||z   }t        j                  dt        j                  t        j                  t        j                  gg      j                  |       }t        j                  ||       y )Nr   r   r   rX   rY   r[   r]   )
r   r!   r
   r   r    r   r   rM   r<   r   r   s        r   test_add_framer      s    
((Cbffbff-U
;C	RVVS"&&12	3B;;r?n,,,2XF||dBFFBFFBFF;<=DDUKH&(+#XF||dBFFBFFBFF;<=DDUKH&(+r   c           
         d| j                    d}t        j                  g d|      }d} t        ||      |      }|j                  dk(  rt        j                  |D cg c]  } t        ||      |       c}      }| t        j                  k(  rd|d<   nd|d<   t        j                  ||j                  t
        j                               y |j                  d	k(  rd
nd}t        j                  |D cg c]  } t        ||      |       c}t              }t        j                  ||      }t        j                  ||       y c c}w c c}w )N__r   Nr9   r   r   r   Tr(   Fr   boolean[pyarrow]boolean)__name__r   r!   getattrr	   r
   operatorner<   rB   rM   bool_rj   r=   )	comparison_opr   op_namer   rq   rR   itemr$   expected_dtypes	            r   test_comparison_methods_scalarr      s   =))*"-G
!/AE WQ 'F}}'88qIt3WT73E:IJHKK'HQKHQK
##FHOOBHH,EF/4}}	/I+y88qIt3WT73E:IQWX88HN;
''9 J Js    E8Ec                    d| j                    d}t        j                  g d|      } t        ||      t        j                        }|j
                  dk(  rYt        j                  | k(  rt        j                  g d      }nt        j                  g d      }t        j                  ||       y |j
                  dk(  rdnd	}t        j                  g d
|      }t        j                  ||       t        j                  ||       y )Nr   r   r   r   TTTFFFr   r   r   NNN)r   r   r!   r   r   r	   r   r   r
   r<   rB   r=   )r   r   r   r   rR   r$   r   s          r   $test_comparison_methods_scalar_pd_nar      s    =))*"-G
!/A WQ 'F}}';;-'xx 23Hxx 56H
##FH5/4}}	/I+y88.nE
''9
''9r   c                 2   d| j                    d}t        j                  g d|      }d}|dvr7t        j                  t
        d      5   t        ||      |       d d d        y  t        ||      |      }|j                  dk(  r8g d	g d
d|   }t        j                  |      }t        j                  ||       y g dg dd|   }|j                  dk(  rdnd}t        j                  ||      }t        j                  ||       y # 1 sw Y   y xY w)Nr   r   r   *   )__eq____ne__z(Invalid comparison|not supported betweenr-   r   r   r   )FNF)TNTr   r   r   )r   r   r!   r2   r3   r4   r   r	   r
   r<   rB   r=   )	r   r   r   r   rq   rR   expected_datar$   r   s	            r   )test_comparison_methods_scalar_not_stringr     s   =))*"-G
!/AE**]]9,VW 	'GAw&	' 	 WQ 'F}}'+(
  88M*
##FH5#7CUV
 05}}	/I+y88M@
''9)	' 	s   DDc                    d| j                    d}t        j                  g d|      }g d} t        ||      |      }|j                  dk(  rt
        j                  | k(  rt        j                  g d      }n2t        j                  g d      } t        |d   |      |d         |d<   t        j                  ||        t        ||      t        j                        }t
        j                  | k(  rt        j                  g d	      }nt        j                  g d      }t        j                  ||       y |j                  d
k(  rdnd}t        j                  t        |      d d      } t        |d   |      |d         |d<   t        j                  ||      }t        j                  ||        t        ||      t        j                        }t        j                  g d|      }t        j                  ||       y )Nr   r   r   )NNr9   r   )TTFr   rJ   r   r   r   r   rj   )r`   r   r   )r   r   r!   r   r	   r   r   r
   r<   rB   r   fulllenr=   )r   r   r   r   rq   rR   r$   r   s           r   test_comparison_methods_arrayr   !  s   =))*"-G
!/AE WQ 'F}}';;-'xx 34Hxx 56H6759g6qu=HRL
##FH5$G$RUU+;;-'xx 23Hxx 56H
##FH5 05}}	/I+y773q6d(C2wuRy'21R5988HN;
''9$G$RUU+88.nE
''9r   c           
      *   | t         j                  j                  u rd}nd}t        j                  t
        |      5   | t        j                  ddgd             d d d        t        j                  t
        |      5   | t        j                  g              d d d        | t         j                  j                  u rU | t        j                  dt        j                  gt                      | t        j                  dd gt                     nt        j                  t
        |      5   | t        j                  dt        j                  gt                     d d d        t        j                  t
        |      5   | t        j                  dd gt                     d d d        t        j                  t
        |      5   | t        j                  dt         j                  gt                     d d d        t        j                  t
        |      5   | t        j                  dt        j                  dd	      gt                     d d d        t        j                  t
        |      5   | t        j                  dt        j                  dd	      gt                     d d d        y # 1 sw Y   bxY w# 1 sw Y   0xY w# 1 sw Y   wxY w# 1 sw Y   =xY w# 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   y xY w)
Nz7StringArray requires a sequence of strings or pandas.NAzBUnsupported type '<class 'numpy.ndarray'>' for ArrowExtensionArrayr-   r   r   S1r   NaTns)r   r1   r   r2   r3   rk   r
   r!   r   rj   r   
datetime64timedelta64)r   r6   s     r   test_constructor_raisesr   B  s+   
bii###GR	z	- .BHHc3Zt,-. 
z	- BHHRL bii### 	BHHc266]&12BHHc4[/0]]:S1 	7#rvvf56	7]]:S1 	5#tF34	5 
z	- 3BHHc266]&123 
z	- GBHHc2==56fEFG 
z	- HBHHc2>>%67vFGH H/. . 	7 	7	5 	53 3G GH HsS    J= K
02K$K$2K1!8K=<8L	=K
KK!$K.1K:=L	Lnar   c                    t         j                  j                  t        j                  dt         j
                  g            }t        j                  t         j                  j                  t        j                  d| gd            |       y )Nr   rj   r   )r   r1   r   r
   r!   r   r<   r=   )r   r$   s     r   test_constructor_nan_liker   c  sX    yy$$RXXsBEEl%;<H##
		bhhRyABHr   rA   TFc                    t        j                  dt         j                  gt              }|j	                         }t        j                  dt
        j                  gt              }|j                  |||       }|t        t        fv r-dd l
} ||j                  ||j                         d            }n ||      }t        j                  ||       t        j                  ||       y )Nr   r   )r   rA   r   Ttypefrom_pandas)r
   r!   r   rj   rA   r   r   r)   r   r   r   stringr<   r=   rB   )	rA   r   r   nan_arrexpected_inputna_arrrR   par$   s	            r   test_from_sequence_no_mutater   k  s    hhRVV}F3G\\^NXXsBEEl&1Fu4@F
!?@@rxxRYY[dxKLv;##FH58r   c                    t        j                  g d|       }|j                  d      }t        j                  g dd      }t	        j
                  ||       t        j                  dt         j                  dg|       }| j                  dk(  r	t        }d}nt        }d	}t        j                  ||
      5  |j                  d       d d d        y # 1 sw Y   y xY w)N)123r   int64)r(   r0      r   r   r   z#cannot convert float NaN to integerzJint\(\) argument must be a string, a bytes-like object or a( real)? numberr-   )r   r!   rM   r
   r<   rB   r   r	   rk   r4   r2   r3   )r   r5   rR   r$   errr6   s         r   test_astype_intr   ~  s    
((?%
0CZZ Fxx	1H1
((C$E
2C}}'3* 	 
s#	& 

7  s   9CCc                     t        j                  dt         j                  dg|       }|j                  d      }t        j                  dt         j                  dgd      }t	        j
                  ||       y )Nr   r   r   Int64r(   r   )r   r!   r   rM   r<   r=   r   r5   rR   r$   s       r   test_astype_nullable_intr     sU    
((C$E
2CZZ FxxBEE1W5H##FH5r   c                     t        j                  dt         j                  dg|       }|j                  |      }t        j                  dt        j
                  dg|      }t        j                  ||       y )Nz1.1z3.3r   g?gffffff
@)r   rK   r   rM   r
   r   r<   rN   )r   any_float_dtyperP   rR   r$   s        r   test_astype_floatr     sV    
))UBEE5)
7CZZ(Fyy#rvvs+?CH68,r   skipnazNot implemented StringArray.sumc                 h    t        j                  g d|      }|j                  |       }|dk(  sJ y )Nr@   r   r   abc)r   rK   sumr   r   r5   rR   s       r   test_reducer     s0     ))O5
1CWWFW#FU??r   c                     t        j                  g d|      }|j                  |       }| r|dk(  sJ y t        j                  |      sJ y )N)Nr   Nr   r9   Nr   r   r   )r   rK   r   isnar   s       r   test_reduce_missingr     sD     ))5U
CCWWFW#Fwwvr   methodminmaxc                     t        j                  g d|      } t        ||       |      }|r| dk(  rdnd}||k(  sJ y |t        |j                        u sJ y )Nr   r   r9   Nr   r   r   r   r9   )r   rK   r   r   r   )r   r   r   r5   rR   r$   s         r   test_min_maxr     s]     )))
7C!WS&!0F E/3s!!!		****r   boxc                 B   |j                   |v r_|t        j                  u rM|t        j                  u rd}nd}t        j                  j                  t        |      }|j                  |        |g d|      } t        t        |       |      }| dk(  rdnd}	||	k(  sJ y )	Nz<'<=' not supported between instances of 'str' and 'NoneType'z0'ArrowStringArray' object has no attribute 'max're   r   r   r   r   r9   )
r	   r   r!   r2   rg   rh   r4   ri   r   r
   )
r   r   r   rl   rm   rf   rg   r5   rR   r$   s
             r   test_min_max_numpyr     s     }},,"((?SFGF{{  	& AD!
#5
1C WR %Fos3HXr   c                 &   t        j                  dt         j                  g|       }|j                  d      }t        j                  ddg|       }t	        j
                  ||       |j                  t        j                  d            }t        j                  ddg|       }t	        j
                  ||       | j                  |v rd}nd}t        j                  t        |      5  |j                  d       d d d        y # 1 sw Y   y xY w)	Nr   r   r   )rC   z"Invalid value '1' for dtype stringz3Cannot set non-string value '1' into a StringArray.r-   r(   )r   r!   r   fillnar<   r=   r
   str_r	   r2   r3   r4   )r   rm   r5   resr$   r6   s         r   test_fillna_argsr     s     ((C<u
-C
**3*
Cxxc
%0H##C2
**2773<*
(Cxxc
%0H##C2}},,2C	y	, 


  s   +DDc                    t        j                  d      }dd lm} t	        j
                  g d|       }|j                  |      }|j                  t        |      |j                         d      }| j                  dv rt        r|j                  |      }| j                  dk(  r |j                  ||j                               }|j                  |      sJ y )	Nr   r   r@   r   Tr   )r   r   python)r2   importorskippyarrow.computecomputer   r!   listlarge_stringr	   r   chunked_arraycastr   equals)r   r   pcdatar5   r$   s         r   test_arrow_arrayr     s    			Y	'B 88O51D
((4.CxxT
):xMH}}449M##H-}} 778RYY[1::hr   z0ignore:Passing a BlockManager:DeprecationWarningc                 *   t        j                  d      }|r4|dk7  r/|j                  t         j                  j	                  d             t        j                  g d|       }t        j                  d|i      }|j                  |      }| j                  dk(  r |j                  d      j                  d	k(  s"J |j                  d      j                  d
k(  sJ t        j                  d|      5  |j                         }d d d        t        d   j                  t
        j                         sJ |j#                  d| d      }	t%        j&                  ||	       |j(                  d   t+        |d   j                        u sJ y # 1 sw Y   xY w)Nr   r   1infer_string takes precedence over string storagerx   rt   r   r   r   r   r   r   string[])r0   r   )r2   r   ri   rg   rh   r   r!   r    tabler	   fieldr   option_context	to_pandas
isinstancer   r   rM   r<   r   locr   
r   string_storage2rl   using_infer_stringr   r   r#   r   rR   r$   s
             r   test_arrow_roundtripr     s\    
		Y	'Bo@KKJ  	
 88$E2D	sDk	"BHHRLE}} {{3$$000{{3$$666			+_	= #"#fSk''888yy7?"3156H&(+::fs(9(9!::::# #s   2F		Fc                 N   t        j                  d      }|r4|dk7  r/|j                  t         j                  j	                  d             t        j                  g |       }t        j                  d|i      }|j                  |      }| j                  dk(  r |j                  d      j                  dk(  s"J |j                  d      j                  d	k(  sJ |j                  |j                  g |j                         
      g|j                        }t        j                  d|      5  |j!                         }d d d        t#        d   j$                  t
        j&                        sJ |j)                  d| d      }	t+        j,                  ||	       y # 1 sw Y   ^xY w)Nr   r   r   rx   r   r   r   r   r   )r   )schemar   r   r   )r2   r   ri   rg   rh   r   r!   r    r   r	   r   r   r   r   r   r   r   r   r   r   rM   r<   r   r   s
             r    test_arrow_load_from_zero_chunksr     sd   
 
		Y	'Bo@KKJ  	
 88Be$D	sDk	"BHHRLE}} {{3$$000{{3$$666HHb&&r		&<=ellHSE			+_	= #"#fSk''888yy7?"3156H&(+	# #s   -FF$c                    t        | dd      dk(  rd}nt        | dd      dk(  rd}nd}t        j                  dd	dt        j                  g| 
      }|j	                  d      }t        j
                  g d|g d   |d      }t        j                  ||       |j	                  d      }t        j
                  ddg|d d |d      }t        j                  ||       y )Nr	    r   zint64[pyarrow]r   r   r   r   r   r   F)dropna)r0   r(   r(   )r   r(   r   countindexr   nameTr0   r(   )r   r   r!   r   value_countsrK   r<   rN   )r   	exp_dtyper5   rR   r$   s        r   test_value_counts_nar
  0  s    ui$	1$			2	&/	9		
((Cc255)
7CU+Fyy#i.	PWXH68,T*Fyy!Qs2AwigNH68,r   c                 T   t        | dd      dk(  rd}n#t        | dd      dk(  rt        j                  }nd}t        j                  dddt        j
                  g| 	      }|j                  d
      }t        j                  ddg|d d |d      dz  }t        j                  ||       y )Nr	   r  r   zdouble[pyarrow]r   Float64r   r   r   T)	normalizer0   r(   
proportionr  r   )	r   r
   float64r   rK   r   r  r<   rN   )r   r	  rP   rR   r$   s        r    test_value_counts_with_normalizer  A  s    ui$	1%			2	&/	9JJ		
))S#sBEE*%
8C-Fyy!Qs2AwilSVWWH68,r   zvalues, expectedr@   r   rt   )FFTc                 p   t        j                  | |      } d}t        j                  t        |      5  t        j
                  dd      5  | j                         }t        j                  ||       t        j                  |       j                         }t        j                  |      }t        j                  ||       t        j                  |       j                         }t        j                  |      }t        j                  ||       d d d        d d d        y # 1 sw Y   xY w# 1 sw Y   y xY w)Nr   z"use_inf_as_na option is deprecatedr-   zmode.use_inf_as_naT)r   r!   r<   assert_produces_warningFutureWarningr   r   rB   rK   rN   r    r   )valuesr$   r   r6   rR   s        r   test_use_inf_as_nar  N  s     XXfE*F
.C		#	#M	= 43T: 
	4[[]F''9YYv&++-Fyy*H""684\\&)..0F||H-H!!&(3
	44 4
	4 
	44 4s$   D,CD D, D)	%D,,D5c                    | j                   |v r"t        j                  d| j                           t        j                  g d|       }d|j
                  cxk  r*|j                         cxk  r|j                  d      k  sJ  J y )Nznot applicable for r@   r   r   T)deep)r	   r2   skipr   rK   nbytesmemory_usage)r   rm   seriess      r   test_memory_usager  g  ss     }},,)%--9:YYe4Fv}}V 3 3 5V8K8KQU8K8VVVVVVr   float_dtypec                     t        j                  dg|       }|j                  |      }t        j                  dg|      }t        j                  ||       y )Ng?r   z0.1)r   rK   rM   r<   rN   )r  r   rP   rR   r$   s        r   test_astype_from_float_dtyper  r  sF     ))SE
-CZZFyy%.H68,r   c                     t        j                  dt         j                  dg|       }t        j                  |      }t        j                  dt	        |       dgt
              }t        j                  ||       y )Nr   r   r   )r   r!   r   r
   r   rj   r<   rB   r   s       r   "test_to_numpy_returns_pdna_defaultr!  {  sU    
((C$E
2CXXc]FxxfUmS1@H1r   c                     |}t        j                  dt         j                  dg|       }|j                  |      }t	        j                  d|dgt
              }t        j                  ||       y )Nr   r   r   )na_value)r   r!   r   to_numpyr
   rj   r<   rB   )r   nulls_fixturer#  r5   rR   r$   s         r   test_to_numpy_na_valuer&    sY    H
((C$E
2C\\8\,Fxxh,F;H1r   c                 N   t        j                  g d|       }|j                  ddg      }t        j                  g d      }t        j                  ||       |j                  dt         j
                  g      }t        j                  g d      }t        j                  ||       |j                  g       }t        j                  g d      }t        j                  ||       |j                  d|g      }t        j                  g d      }t        j                  ||       y )Nrt   r   r   r9   )TFF)TFTr   )r   rK   isinr<   rN   r   )r   fixed_now_tsrn   rR   r$   s        r   	test_isinr*    s    
		"%0AVVS#JFyy-.H68,VVS"%%L!Fyy,-H68,VVBZFyy./H68,VVS,'(Fyy-.H68,r   c                    t        j                  g d|       }t        j                  g d      }d ||<   |j                  d   t	        |j
                        u sJ t        j                  g d|       }t        |j                        t         j                  j                  u rd}nd}t        j                  t        |      5  d||<   d d d        y # 1 sw Y   y xY w)Nr@   r   )FTFr(   zCannot set non-string valuer,   r-   )r   rK   r
   r!   r   r   r   r1   r   r2   r3   r4   )r   rP   maskr6   s       r   (test_setitem_scalar_with_mask_validationr-    s     ))O5
1C88()DCI99Q<6#)),,,, ))O5
1CCII"))///+(	y	, D	  s   CCc                     g d}t        j                  |t         j                        }t        j                  ||       }t        j                  ||       }t	        j
                  ||       y Nr@   r   )r
   r!   r   r   r<   r=   r   valsr5   rR   r$   s        r   test_from_numpy_strr2    sK    D
((4rww
'CXXc'FxxE*H##FH5r   c                     g d}t        j                  ||       }|j                         }|}t        j                  ||       y r/  )r   r!   tolistr<   assert_equalr0  s        r   test_tolistr6    s5    D
((4u
%CZZ\FHOOFH%r   )J__doc__r   numpyr
   r2   pandas.compat.pyarrowr   pandas.core.dtypes.commonr   pandasr   pandas._testing_testingr<   pandas.core.arrays.string_arrowr   r   r   fixturer   r   r&   r*   r7   r>   rE   rV   rc   ro   rr   rw   rg   rh   r   r   r   r   r   r   r   parametrizer   r  floatr   r   r   r   r   r   r   r   r   rK   r!   r   r   r   filterwarningsr   r   r
  r  r  r  float16float32r  r!  r&  r*  r-  r2  r6   r   r   <module>rF     s      6 4   2 2
 ( (
(4#"$3
3*&-( 
66 *%, &, *%, &,:&:$:<:BHB 


5(95<ruuUV W $/9 09$(6- D%=1;< = 2 D%=1;< = 2 E5>2D%=1+ 2 3+ E5>2BHH 56 7 3*  NO; P;6 NO, P,:-"
- 	("((#89:	8288$89:44$W RZZ(LM- N-22-((6&r   