
     	i%                        d Z ddlZddlZddlmZ ddlZddlm	Z
 ddlmZ  ej         ej        ddge           ej        ddge           ej        ddge           ej        dd	ge           ej        d
dge           ej        ddgd           ej        ddgd          g          d             Zej                            dg d          d             Zej                            dg d          d             Zd Zd Zd Zd Zd Zd Zd Zd Z d Z!d Z"d Z#d  Z$d! Z%d" Z&d# Z'd$ Z(ej                            d%ej)        ej*        ej+        g          d&             Z,d' Z-d( Z.ej                            d)deg          d*             Z/d+ Z0d, Z1ej                            d)ej2        ej3        g          d-             Z4d. Z5d/ Z6dS )0zV
Additional tests for NumpyExtensionArray that aren't covered by
the interface tests.
    NNumpyEADtype)NumpyExtensionArrayabdtype   y      ?       @TFdatetime64[ns]timedelta64[ns])paramsc                 4    | j                                         S )zk
    Parametrized fixture for NumPy arrays with different dtypes.

    This excludes string and bytes.
    )paramcopy)requests    ]/srv/django_bis/venv311/lib/python3.11/site-packages/pandas/tests/arrays/numpy_/test_numpy.pyany_numpy_arrayr      s    " =    zdtype, expected)
boolT)intT)uintT)floatT)complexTstrFbytesFr   FobjectFvoidFc                 :    t          |           } | j        |u sJ d S N)r   _is_numericr	   expecteds     r   test_is_numericr)   '   +      E((((((r   )
r   )r   F)r   F)r   F)r   Fr   r   r   r    r"   c                 :    t          |           } | j        |u sJ d S r%   )r   _is_booleanr'   s     r   test_is_booleanr-   ;   r*   r   c                  r    t          t          j        d                    } t          |           dk    sJ d S )Nint64zNumpyEADtype('int64'))r   npr	   reprr   s    r   	test_reprr2   O   s7    '**++E;;1111111r   c                      t          j        d          } t          t          j        d                    }| |k    sJ d S )Nr/   )r   construct_from_stringr0   r	   )resultr(   s     r   test_constructor_from_stringr6   T   s@    /88FBHW--..HXr   c                 R    t          |           }t          |          }||k    sJ d S r%   r   )any_numpy_dtyper	   r5   s      r   test_dtype_idempotentr9   Z   s-    ))E%  FU??????r   c                      t          j        t          d          5  t          g d           d d d            d S # 1 swxY w Y   d S )NzNumPy arraymatchr
         )pytestraises
ValueErrorr    r   r   test_constructor_no_coercionrD   e   s    	z	7	7	7 ' 'III&&&' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' 's   ;??c                      t          j        g d          } t          j        t	          |           d          }|j        | usJ d S )Nr=   Tr   )r0   arraypdSeriesr   values)ndarraysers     r   !test_series_constructor_with_copyrM   j   sK    hyyy!!G
)'00t
<
<
<C:W$$$$$$r   c                      t          j        g d          } t          j        t	          |           d          }t          j        g dd          }t          j        ||           d S )Nr=   float64r   )      ?g       @g      @)r0   rG   rH   rI   r   tmassert_series_equal)rK   r5   r(   s      r   #test_series_constructor_with_astyperS   q   sc    hyyy!!GY*7339EEEFy	:::H68,,,,,r   c                      t          j        g dd          } t          j        | d          }t          t          j        g dd                    }t	          j        ||           d S )Nr=   r/   r   uint64)r0   rG   r   _from_sequencerQ   assert_extension_array_equalarrr5   r(   s      r   test_from_sequence_dtyperZ   x   sh    
(999G
,
,
,C /8DDDF"28IIIX#F#F#FGGH#FH55555r   c                      t          j        ddg          } t          | d          }t          j        ||           rJ d S )Nr   r
   TrF   )r0   rG   r   rQ   shares_memory)rY   r5   s     r   test_constructor_copyr]      sF    
(Aq6

C 4000F,,,,,,,r   c                 V    | }t          |          }|j        j        |j        k    sJ d S r%   )r   r	   numpy_dtyper   nparrrY   s      r   test_constructor_with_datarb      s2    E
e
$
$C9 EK//////r   c                  R   t          t          j        g d                    } |                                 }|| j        u sJ |                     d          }|| j        usJ |                     d          }t          j        g dd          }t          j        ||           d S )Nr=   TrF   f8r   )r   r0   rG   to_numpy_ndarrayrQ   assert_numpy_array_equalrX   s      r   test_to_numpyrh      s    
bhyyy11
2
2C\\^^FS\!!!!\\t\$$F%%%%\\\%%Fx			...H11111r   c                      t          j        g d          } d| j        d<   t          j        g d          }t          j        | |           d S )Nr=   
   r   )rj   r>   r?   )rH   rI   rG   rQ   rR   )rL   r(   s     r   test_setitem_seriesrk      sL    
)III

CCIaLy$$H3)))))r   c                     | }t          |d          }|d         |d<   |d         |d<   t          j        |                                |           d S )NTrF   r
   r   )r   rQ   rg   re   r`   s      r   test_setitemrm      sT    E
e$
/
/
/CVCFQxE!H66666r   c                      t          j        g dd          } t          |           } d}t          j        t
          |          5  |                     |           d d d            d S # 1 swxY w Y   d S )Nr=   r/   r   z)cannot perform not_a_method with type intr;   )r0   rG   r   r@   rA   	TypeError_reducerY   msgs     r   test_bad_reduce_raisesrs      s    
(999G
,
,
,C
c
"
"C
5C	y	,	,	,  C                 s   A((A,/A,c                      t          t          j        g d                    } d}t          j        t
          |          5  |                     d           d d d            d S # 1 swxY w Y   d S )Nr=   z/the 'keepdims' parameter is not supported .*allr;   T)keepdims)r   r0   rG   r@   rA   rB   allrq   s     r   $test_validate_reduction_keyword_argsrw      s    
bhyyy11
2
2C
;C	z	-	-	-                   s   A%%A),A)c                  p   g d} t          j        |           }|j        }|                                |d         u sJ |                                |d         u sJ t          j                            |          }||d         k    sJ t          j                            |          }||d         k    sJ d S )N))jklm)r|   op)r   ry   r>   )rH   rI   rG   maxr0   maximumreduce)valsrL   rY   r5   s       r   test_np_max_nested_tuplesr      s      D
 )D//C
)C7799A7799AZs##FSVZs##FSVr   c                  N   t          j        d                              dd          } t          |           }t           j                            |d          }t          j        ||d                    |                    d          }t          j        ||d                    d S )N      r?   r   )axis)	r0   arangereshaper   r   r   rQ   rW   r   )rawrY   resalts       r   test_np_reduce_2dr      s    
)B--

1
%
%C
c
"
"C
*

Ca

(
(C#CR111
''q'//C#CR11111r   ufuncc                 P   t          t          j        g d                    } | |          }t           | |j                            }t	          j        ||           t          t          j        g d                    } | ||           t	          j        ||           d S )Ng              rP   )      "r   r   )out)r   r0   rG   rf   rQ   rW   )r   rY   r5   r(   r   s        r   test_ufunc_unaryr      s    
bh'7'7'788
9
9CU3ZZF"55#6#677H#FH555 bh'9'9'9::
;
;C	E#3#C22222r   c                     t          t          j        g d                    } t          j        | t          j        | d                    \  }}t          j        | j        t          j        | j        d                    \  }}t          |          }t          |          }t          j        ||           t          j        ||           d S )Nr   r>   )r   r0   rG   divmodaddrf   rQ   rW   )rY   r1r2e1e2s        r   
test_ufuncr      s    
bh'7'7'788
9
9CYsBF3NN++FBYs|RVCL!%<%<==FB	R	 	 B	R	 	 B#B+++#B+++++r   c                      t          t          j        g d                    } | | z   }t          t          j        g d                    }t          j        ||           d S )Nr=   )r>   r      r   r0   rG   rQ   rW   )xr5   r(   s      r   test_basic_binopr     s\     	BHYYY//00AUF"28III#6#677H#FH55555r   r	   c                     t          t          j        g d|                     }d|d<   t          t          j        g d|                     }t          j        ||           d S )N)r   r   cr   tr   )r   r   r   r   )r	   rY   r(   s      r   test_setitem_object_typecoder   
  sd    
bheDDD
E
ECCF"28OOO5#I#I#IJJH#C22222r   c                  N   t          t          j        g d                    } t          j        t
          d          5  d| d<   d d d            n# 1 swxY w Y   d| d<   t          | d         t          t          j        f          sJ t          | d                               d S )Nr=   r   r;   r   r         @)
r   r0   rG   r@   rA   rB   
isinstancer   integertype)rY   s    r   test_setitem_no_coercionr     s    
bhyyy11
2
2C	z	/	/	/  A              
 CFc!fsBJ/00>>$s1v,,>>0>>s   AAAc                  >   t          t          j        g d                    } |                                 }| d d          }t          j        |           }d| d<   |d         dk    sJ |d         dk    sJ |d         dk    sJ d| d<   d|d<   | d         dk    sJ d S )Nr=   	   r   r   r      )r   r0   rG   viewasarray)rY   view1view2view3s       r   test_setitem_preserves_viewsr     s    
bhyyy11
2
2CHHJJEFEJsOOECF8q====8q====8q====CGE"Ir7a<<<<<<r   c                 >   t          t          j        g |                     }t          j        ddg          }|                    |d          }t          t          j        t          j        t          j        g                    }t          j        ||           d S )Nr   r   g      ?linear)interpolation)	r   r0   rG   rH   Index	_quantilenanrQ   rW   )r	   rY   idxr5   r(   s        r   test_quantile_emptyr   /  s     bhr777
8
8C
(C:

C]]3h]77F"28RVRV,<#=#=>>H#FH55555r   c                  2   t          j        g dt           j                  } t          |           }|                                \  }}t          j        |           \  }}t          j        ||           t          j        |t          |                     d S )Nr=   r   )	r0   rG   rU   r   	factorizerH   rQ   rg   rW   )rY   obj	res_codes
res_unique	exp_codes
exp_uniques         r   test_factorize_unsignedr   :  s    
(999BI
.
.
.C
c
"
"CMMOOIzL--Iz	9555#J0CJ0O0OPPPPPr   c                    | }t          |          }|j        dk    rd}no|j        dk    rd}nat          |j                                      d          rd}n7|j        dk    rd}n)|j        d	k    rd
}n|j        dk    rd}n|j        dk    rd}d| d|j         }t	          |          }||k    sJ | d|             d S )Nr!   z
['a', 'b']rO   z
[0.0, 1.0]r   z[0, 1]
complex128z[0j, (1+2j)]r   z[True, False]r   z>[1970-01-01T00:00:00.000000000, 1970-01-01T00:00:00.000000001]r   z[0 nanoseconds, 1 nanoseconds]z<NumpyExtensionArray>
z
Length: 2, dtype: z vs )r   r	   r   
startswithr1   )r   nparrayrY   rJ   r(   r5   s         r   test_array_reprr   K  s   G
g
&
&C}  	)	#	#	W]			&	&u	-	- 	2	,	&	&	&	 	  	*	*	*Q	+	+	+1TTTW]TTH#YYFX&88h88r   )7__doc__numpyr0   r@   pandas.core.dtypes.dtypesr   pandasrH   pandas._testing_testingrQ   pandas.arraysr   fixturerG   r!   r   r   r   r   r   markparametrizer)   r-   r2   r6   r9   rD   rM   rS   rZ   r]   rb   rh   rk   rm   rs   rw   r   r   absnegativepositiver   r   r   r   r   r   r/   rU   r   r   r   rC   r   r   <module>r      s         2 2 2 2 2 2           - - - - - - #s6***!Qu%%%!Qs###!VG,,,$d+++!Q/000!Q0111
 
 
   
 
     ) ) )
    ) ) )
2 2 2
    ' ' '
% % %- - -6 6 6- - -0 0 0
2 
2 
2"* * *7 7 7      *2 2 2 262;"DEE	3 	3 FE	3, , ,6 6 6 4.113 3 213	? 	? 	?  " 28RY"7886 6 986
Q 
Q 
Q"9 9 9 9 9r   