
    JEf<"                        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*                  j-                  dg d      d        Zej*                  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*                  j-                  d%ejR                  ejT                  ejV                  g      d&        Z,d' Z-d( Z.ej*                  j-                  d)deg      d*        Z/d+ Z0d, Z1ej*                  j-                  d)ejd                  ejf                  g      d-        Z4d. Z5y)/zV
Additional tests for NumpyExtensionArray that aren't covered by
the interface tests.
    NNumpyEADtype)NumpyExtensionArrayabdtype   y      ?       @TFdatetime64[ns]ztimedelta64[ns])paramsc                     | j                   S )zk
    Parametrized fixture for NumPy arrays with different dtypes.

    This excludes string and bytes.
    )param)requests    ^/var/www/VTS_Report/venv/lib/python3.12/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 y 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 y r#   )r   _is_booleanr%   s     r   test_is_booleanr+   ;   r(   r   c                  `    t        t        j                  d            } t        |       dk(  sJ y )Nint64zNumpyEADtype('int64'))r   npr	   reprr   s    r   	test_reprr0   O   s(    '*+E;1111r   c                  x    t        j                  d      } t        t        j                  d            }| |k(  sJ y )Nr-   )r   construct_from_stringr.   r	   )resultr&   s     r   test_constructor_from_stringr4   T   s3    //8FBHHW-.HXr   c                 >    t        |       }t        |      }||k(  sJ y r#   r   )any_numpy_dtyper	   r3   s      r   test_dtype_idempotentr7   Z   s"    )E% FU??r   c                  ~    t        j                  t        d      5  t        g d       d d d        y # 1 sw Y   y xY w)NzNumPy arraymatchr
         )pytestraises
ValueErrorr    r   r   test_constructor_no_coercionrB   e   s-    	z	7 'I&' ' 's   3<c                      t        j                  g d      } t        j                  t	        |       d      }|j
                  | usJ y )Nr;   Tcopy)r.   arraypdSeriesr   values)ndarraysers     r   !test_series_constructor_with_copyrL   j   s8    hhy!G
))'0t
<C::W$$$r   c                      t        j                  g d      } t        j                  t	        |       d      }t        j                  g dd      }t        j                  ||       y )Nr;   float64r   )      ?g       @g      @)r.   rF   rG   rH   r   tmassert_series_equal)rJ   r3   r&   s      r   #test_series_constructor_with_astyperR   q   sF    hhy!GYY*739EFyy	:H68,r   c                      t        j                  g dd      } t        j                  | d      }t        t        j                  g dd            }t	        j
                  ||       y )Nr;   r-   r   uint64)r.   rF   r   _from_sequencerP   assert_extension_array_equalarrr3   r&   s      r   test_from_sequence_dtyperY   x   sI    
((9G
,C //8DF"288IX#FGH##FH5r   c                  |    t        j                  ddg      } t        | d      }t        j                  ||       rJ y )Nr   r
   TrD   )r.   rF   r   rP   shares_memory)rX   r3   s     r   test_constructor_copyr\      s9    
((Aq6
C 40F,,,,r   c                 h    | }t        |      }|j                  j                  |j                  k(  sJ y r#   )r   r	   numpy_dtyper   nparrrX   s      r   test_constructor_with_datara      s-    E
e
$C99  EKK///r   c                  J   t        t        j                  g d            } | j                         }|| j                  u sJ | j                  d      }|| j                  usJ | j                  d      }t        j                  g dd      }t        j                  ||       y )Nr;   TrD   f8r   )r   r.   rF   to_numpy_ndarrayrP   assert_numpy_array_equalrW   s      r   test_to_numpyrg      s    
bhhy1
2C\\^FS\\!!!\\t\$F%%%\\\%Fxx	.H1r   c                      t        j                  g d      } d| j                  d<   t        j                  g d      }t        j                  | |       y )Nr;   
   r   )ri   r<   r=   )rG   rH   rF   rP   rQ   )rK   r&   s     r   test_setitem_seriesrj      s;    
))I
CCIIaLyy$H3)r   c                     | }t        |d      }|d   |d<   |d   |d<   t        j                  |j                         |       y )NTrD   r
   r   )r   rP   rf   rd   r_   s      r   test_setitemrl      sC    E
e$
/CVCFQxE!H6r   c                      t        j                  g dd      } t        |       } d}t        j                  t
        |      5  | j                  |       d d d        y # 1 sw Y   y xY w)Nr;   r-   r   z)cannot perform not_a_method with type intr9   )r.   rF   r   r>   r?   	TypeError_reducerX   msgs     r   test_bad_reduce_raisesrr      sP    
((9G
,C
c
"C
5C	y	, C  s   AA&c                      t        t        j                  g d            } d}t        j                  t
        |      5  | j                  d       d d d        y # 1 sw Y   y xY w)Nr;   z/the 'keepdims' parameter is not supported .*allr9   T)keepdims)r   r.   rF   r>   r?   r@   allrp   s     r   $test_validate_reduction_keyword_argsrv      sK    
bhhy1
2C
;C	z	-   s   AA#c                  N   g d} t        j                  |       }|j                  }|j                         |d   u sJ |j                         |d   u sJ t        j
                  j                  |      }||d   k(  sJ t        j
                  j                  |      }||d   k(  sJ y )N))jklm)r{   op)r~   rx   r<   )rG   rH   rF   maxr.   maximumreduce)valsrK   rX   r3   s       r   test_np_max_nested_tuplesr      s    D
 ))D/C
))C779A779AZZs#FSVZZs#FSVr   c                  .   t        j                  d      j                  dd      } t        |       }t         j                  j                  |d      }t        j                  ||d          |j                  d      }t        j                  ||d          y )N      r=   r   )axis)	r.   arangereshaper   r   r   rP   rV   r   )rawrX   resalts       r   test_np_reduce_2dr      sv    
))B-

1
%C
c
"C
**

Ca

(C##CR1
''q'/C##CR1r   ufuncc                 6   t        t        j                  g d            } | |      }t         | |j                              }t	        j
                  ||       t        t        j                  g d            } | ||       t	        j
                  ||       y )Ng              rO   )      "r   r   )out)r   r.   rF   re   rP   rV   )r   rX   r3   r&   r   s        r   test_ufunc_unaryr      sr    
bhh'78
9C3ZF"5#67H##FH5 bhh'9:
;C	#3##C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                  ||       y )Nr   r<   )r   r.   rF   divmodaddre   rP   rV   )rX   r1r2e1e2s        r   
test_ufuncr      s    
bhh'78
9CYYsBFF3N+FBYYs||RVVCLL!%<=FB	R	 B	R	 B##B+##B+r   c                      t        t        j                  g d            } | | z   }t        t        j                  g d            }t        j                  ||       y )Nr;   )r<   r      r   r.   rF   rP   rV   )xr3   r&   s      r   test_basic_binopr     sC     	BHHY/0AUF"288I#67H##FH5r   r	   c                     t        t        j                  g d|             }d|d<   t        t        j                  g d|             }t        j                  ||       y )N)r   r   cr   tr   )r   r   r   r   )r	   rX   r&   s      r   test_setitem_object_typecoder   
  sE    
bhheD
ECCF"288O5#IJH##C2r   c                  $   t        t        j                  g d            } t        j                  t
        d      5  d| d<   d d d        d| d<   t        | d   t        t        j                  f      sJ t        | d                y # 1 sw Y   ExY w)Nr;   r   r9   r   r         @)
r   r.   rF   r>   r?   r@   
isinstancer   integertype)rX   s    r   test_setitem_no_coercionr     sv    
bhhy1
2C	z	/ A
 CFc!fsBJJ/0>$s1v,>0 s   BBc                     t        t        j                  g d            } | j                         }| 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 y )Nr;   	   r   r   r      )r   r.   rF   viewasarray)rX   view1view2view3s       r   test_setitem_preserves_viewsr     s    
bhhy1
2CHHJEFEJJsOECF8q==8q==8q==CGE"Ir7a<<r   c                 <   t        t        j                  g |             }t        j                  ddg      }|j                  |d      }t        t        j                  t        j                  t        j                  g            }t        j                  ||       y )Nr   r   g      ?linear)interpolation)	r   r.   rF   rG   Index	_quantilenanrP   rV   )r	   rX   idxr3   r&   s        r   test_quantile_emptyr   /  sm     bhhr7
8C
((C:
C]]3h]7F"288RVVRVV,<#=>H##FH5r   c                  (   t        j                  g dt         j                        } t        |       }|j	                         \  }}t        j                  |       \  }}t        j                  ||       t        j                  |t        |             y )Nr;   r   )	r.   rF   rT   r   	factorizerG   rP   rf   rV   )rX   obj	res_codes
res_unique	exp_codes
exp_uniques         r   test_factorize_unsignedr   :  si    
((9BII
.C
c
"CMMOIzLL-Iz	95##J0CJ0OPr   )6__doc__numpyr.   r>   pandas.core.dtypes.dtypesr   pandasrG   pandas._testing_testingrP   pandas.arraysr   fixturerF   r   r   r   r   r   r   markparametrizer'   r+   r0   r4   r7   rB   rL   rR   rY   r\   ra   rg   rj   rl   rr   rv   r   r   absnegativepositiver   r   r   r   r   r   r-   rT   r   r   rA   r   r   <module>r      s$     2   - #s6*!Qu%!Qs#!VG,$d+!Q/0!Q01

 ))
 ))
2
'
%-6-0
2"*7*2 2662;;"DE	3 F	3,6 4.13 23	?" 288RYY"786 96
Qr   