
    i,                        d 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  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.                  j1                  dg d      d        Zej.                  j1                  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%ej.                  jM                  e d!"      ej.                  j1                  d#dd$g      d%               Z'd& Z(d' Z)d( Z*d) Z+d* Z,ej.                  j1                  d+ejZ                  ej\                  ej^                  g      d,        Z0d- Z1d. Z2ej.                  j1                  d#deg      d/        Z3d0 Z4d1 Z5ej.                  j1                  d#ejl                  ejn                  g      d2        Z8d3 Z9ej.                  j1                  d#ejt                  ejv                  ejx                  ejz                  ejn                  ej|                  ej~                  ej                  ejl                  g	      d4        ZAd5 ZBd6 ZCy)7zV
Additional tests for NumpyExtensionArray that aren't covered by
the interface tests.
    N)np_version_gt2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    b/app/cer_product_mecsu/.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_reprr3   R   s(    '*+E;1111r   c                  x    t        j                  d      } t        t        j                  d            }| |k(  sJ y )Nr0   )r   construct_from_stringr1   r
   )resultr)   s     r   test_constructor_from_stringr7   W   s3    //8FBHHW-.HXr   c                 >    t        |       }t        |      }||k(  sJ y r&   r   )any_numpy_dtyper
   r6   s      r   test_dtype_idempotentr:   ]   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_coercionrE   h   s-    	z	7 'I&' ' 's   3<c                      t        j                  g d      } t        j                  t	        |       d      }|j
                  | usJ y )Nr>   Tr   )r1   arraypdSeriesr   values)ndarraysers     r   !test_series_constructor_with_copyrN   m   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      @)r1   rH   rI   rJ   r   tmassert_series_equal)rL   r6   r)   s      r   #test_series_constructor_with_astyperT   t   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>   r0   r	   uint64)r1   rH   r   _from_sequencerR   assert_extension_array_equalarrr6   r)   s      r   test_from_sequence_dtyper[   {   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   TrG   )r1   rH   r   rR   shares_memoryrZ   r6   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   nparrrZ   s      r   test_constructor_with_datard      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>   TrG   f8r	   )r   r1   rH   to_numpy_ndarrayrR   assert_numpy_array_equalrY   s      r   test_to_numpyrk      s    
bhhy1
2C\\^FS\\!!!\\t\$F%%%\\\%Fxx	.H1r   c                  J   t        t        j                  g d            } d| _        | j	                         }|j
                  j                  rJ | j	                  d      }|j
                  j                  sJ | j	                  d      }|j
                  j                  sJ y rf   )r   r1   rH   	_readonlyrh   flags	writeabler^   s     r   test_to_numpy_readonlyrp      s    
bhhy1
2CCM\\^F||%%%%\\t\$F<<!!!!\\\%F<<!!!!r   z!copy keyword introduced in np 2.0)reasonr
   r0   c                 t   t        t        j                  g dd            }d|_        t        j                  ||       }|j
                  j                  rJ t        j                  || d      }|j
                  j                  sJ t        j                  || d      }|j
                  j                  rJ y )Nr>   r0   r	   T)r
   r   F)r   r1   rH   rm   asarrayrn   ro   )r
   rZ   r6   s      r   test_asarray_readonlyrt      s     bhhy@
ACCMZZ5)F||%%%%ZZ5t4F<<!!!!ZZ5u5F||%%%%%r   c                     | }t        |d      }|d   |d<   |d   |d<   t        j                  |j                         |       y )NTrG   r   r   )r   rR   rj   rh   rb   s      r   test_setitemrv      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>   r0   r	   z)cannot perform not_a_method with type intr<   )r1   rH   r   rA   rB   	TypeError_reducerZ   msgs     r   test_bad_reduce_raisesr|      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   r1   rH   rA   rB   rC   allrz   s     r   $test_validate_reduction_keyword_argsr      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   r   r?   )rI   rJ   rH   maxr1   maximumreduce)valsrM   rZ   r6   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)	r1   arangereshaper   r   r   rR   rX   r   )rawrZ   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              rQ   )      "r   r   )out)r   r1   rH   ri   rR   rX   )r   rZ   r6   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   r1   rH   divmodaddri   rR   rX   )rZ   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   r1   rH   rR   rX   )xr6   r)   s      r   test_basic_binopr     sC     	BHHY/0AUF"288I#67H##FH5r   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
   rZ   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   r1   rH   rA   rB   rC   
isinstancer   integertype)rZ   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   r1   rH   viewrs   )rZ   view1view2view3s       r   test_setitem_preserves_viewsr   6  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   r1   rH   rI   Index	_quantilenanrR   rX   )r
   rZ   idxr6   r)   s        r   test_quantile_emptyr   G  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	   )	r1   rH   rV   r   	factorizerI   rR   rj   rX   )rZ   obj	res_codes
res_unique	exp_codes
exp_uniques         r   test_factorize_unsignedr   R  si    
((9BII
.C
c
"CMMOIzLL-Iz	95##J0CJ0OPr   c                    | t         j                  k(  r<t        t        j                  g d|             }t        j                  t
              }n2t        t        j                  g d|             }t         j                  }|j                  dgd      }|j                  j                  |k(  sJ |j                  dgdd      }|j                  j                  |k(  sJ y )	NFTFr	   r>   r   T
allow_fillg      @)r   
fill_value)	r1   bool_r   rH   r
   r"   rP   takera   )r
   rH   r)   r6   s       r   &test_take_assigns_floating_point_dtyper   _  s      #BHH-A$OP88F##BHHYe$DE::ZZZ.F<<##x///ZZ#Z>F<<##x///r   c                      t        t        j                  g dt        j                              } | j	                  dgd      }|j
                  j                  t        j                  k(  sJ y )Nr   r	   r   Fr   )r   r1   rH   r   r   r
   ra   )rH   r6   s     r   "test_take_preserves_boolean_arraysr   }  sL    )=RXX NOEZZZ/F<<##rxx///r   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']rP   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   
startswithr2   )r   nparrayrZ   rK   r)   r6   s         r   test_array_reprr     s    G
g
&C}} 	)	#	W]]		&	&u	-	,	&	&	  	*	*Q	+	+1(0DW]]OTH#YFX8&hZ88r   )D__doc__numpyr1   rA   pandas.compat.numpyr   pandas.core.dtypes.dtypesr   pandasrI   pandas._testing_testingrR   pandas.arraysr   fixturerH   r"   r   r   r   r   r   markparametrizer*   r.   r3   r7   r:   rE   rN   rT   r[   r_   rd   rk   rp   skipifrt   rv   r|   r   r   r   absnegativepositiver   r   r   r   r   r   r0   rV   r   r   r   uint8uint16uint32int8int16int32r   r   r   rD   r   r   <module>r      s  
   . 2   - #s6*!Qu%!Qs#!VG,$d+!Q/0!Q01
 
  ))
 ))
2
'
%-6-0
2
" &/RS4/2
& 3 T
&"7*2 2662;;"DE	3 F	3,6 4.13 23	?" 288RYY"786 96
Q 


		
		
		




00 09r   