
    yoch%                        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. Z5d/ Z6y)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                 6    | j                   j                         S )zk
    Parametrized fixture for NumPy arrays with different dtypes.

    This excludes string and bytes.
    )paramcopy)requests    t/mnt/ACDE16A4DE16673C/PROJECTS/MIS_PORTAL/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_reprr2   O   s(    '*+E;1111r   c                  x    t        j                  d      } t        t        j                  d            }| |k(  sJ y )Nr/   )r   construct_from_stringr0   r	   )resultr(   s     r   test_constructor_from_stringr6   T   s3    //8FBHHW-.HXr   c                 >    t        |       }t        |      }||k(  sJ y 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        y # 1 sw Y   y xY w)NzNumPy arraymatchr
         )pytestraises
ValueErrorr    r   r   test_constructor_no_coercionrD   e   s-    	z	7 'I&' ' 's   3<c                      t        j                  g d      } t        j                  t	        |       d      }|j
                  | usJ y )Nr=   Tr   )r0   arraypdSeriesr   values)ndarraysers     r   !test_series_constructor_with_copyrM   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      @)r0   rG   rH   rI   r   tmassert_series_equal)rK   r5   r(   s      r   #test_series_constructor_with_astyperS   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)r0   rG   r   _from_sequencerQ   assert_extension_array_equalarrr5   r(   s      r   test_from_sequence_dtyperZ   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
   TrF   )r0   rG   r   rQ   shares_memory)rY   r5   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   nparrrY   s      r   test_constructor_with_datarb      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=   TrF   f8r   )r   r0   rG   to_numpy_ndarrayrQ   assert_numpy_array_equalrX   s      r   test_to_numpyrh      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   )rj   r>   r?   )rH   rI   rG   rQ   rR   )rL   r(   s     r   test_setitem_seriesrk      s;    
))I
CCIIaLyy$H3)r   c                     | }t        |d      }|d   |d<   |d   |d<   t        j                  |j                         |       y )NTrF   r
   r   )r   rQ   rg   re   r`   s      r   test_setitemrm      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 intr;   )r0   rG   r   r@   rA   	TypeError_reducerY   msgs     r   test_bad_reduce_raisesrs      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 .*allr;   T)keepdims)r   r0   rG   r@   rA   rB   allrq   s     r   $test_validate_reduction_keyword_argsrw      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   ry   r>   )rH   rI   rG   maxr0   maximumreduce)valsrL   rY   r5   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)	r0   arangereshaper   r   r   rQ   rW   r   )rawrY   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              rP   )      "r   r   )out)r   r0   rG   rf   rQ   rW   )r   rY   r5   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   r0   rG   divmodaddrf   rQ   rW   )rY   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   r0   rG   rQ   rW   )xr5   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	   rY   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   r;   r   r         @)
r   r0   rG   r@   rA   rB   
isinstancer   integertype)rY   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   r0   rG   viewasarray)rY   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   r0   rG   rH   Index	_quantilenanrQ   rW   )r	   rY   idxr5   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   )	r0   rG   rU   r   	factorizerH   rQ   rg   rW   )rY   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   c                    | }t        |      }|j                  dk(  rd}n|j                  dk(  rd}nnt        |j                        j                  d      rd}nG|j                  dk(  rd}n5|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|        y )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	-	,	&	&	  	*	*Q	+	+1(0DW]]OTH#YFX8&hZ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   - #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"9r   