
    JEfS*                     d    d dl Zd dlZd dlmZ d dlZd dlmZmZ d dl	m
Z d dlmZ  G d d      Zy)    N)IntIndex)SparseDtypeisna)SparseArrayc            	          e Zd Zd Zd Zd Zd Zd Zd Ze	j                  j                  d eed      eg      d	        Zd
 Zd Ze	j                  j                  dd eddg      g      d        Zd Ze	j                  j                  d ej*                  ddg      df ej*                  ddg      ej,                  fddgdf ej0                  d      gej2                  fg      d        Ze	j                  j                  dg d      e	j                  j                  dddg      d               Ze	j                  j                  dg d      d        Zd Zd  Zd! Zd" Z d# Z!d$ Z"d% Z#y)&TestConstructorsc                    t        t        j                  ddt        j                  g      }|j                  t	        t        j
                  t        j                        k(  sJ |j                  j                  t        j
                  k(  sJ t        j                  |j                        sJ t        t        j                  ddt        j                  gd      }|j                  t	        t        j
                  d      k(  sJ |j                  dk(  sJ t        g dt        j
                        }|j                  t	        t        j
                  t        j                        k(  sJ t        j                  |j                        sJ t        g dt        j                        }|j                  t	        t        j                  d      k(  sJ |j                  dk(  sJ t        g ddt        j                        }|j                  t	        t        j                  d      k(  sJ |j                  dk(  sJ t        g dd       }|j                  t	        t        j                  d      k(  sJ |j                  dk(  sJ t        g ddd       }|j                  t	        t        j                  d      k(  sJ |j                  dk(  sJ y )N      r   
fill_value)r   r
   r      dtyper   r   )
r   npnanr   r   float64subtypeisnanr   int64selfarrs     e/var/www/VTS_Report/venv/lib/python3.12/site-packages/pandas/tests/arrays/sparse/test_constructors.pytest_constructor_dtypez'TestConstructors.test_constructor_dtype   s   2661a01yyK

BFF;;;;yy  BJJ...xx'''2661a0Q?yyK

A6666~~""",bjj9yyK

BFF;;;;xx''',bhh7yyK!4444~~""",1BHHEyyK!4444~~""",d3yyK!4444~~""",1DAyyK!4444~~"""    c                 t    t        g dd      }t        g dt              }t        j                  ||       y )Nr
   r      intr   )r   r!   tmassert_sp_array_equalr   resultexpecteds      r   test_constructor_dtype_strz+TestConstructors.test_constructor_dtype_str.   s*    Ye4y4
  2r   c                     t        g dt        dd            }t        g ddt        j                        }t	        j
                  ||       |j                  j                  t        j                  d      k(  sJ y )Nr
   r   r   r
   r   r   r   )r   r   r   r   r"   r#   	sp_valuesr   r$   s      r   test_constructor_sparse_dtypez.TestConstructors.test_constructor_sparse_dtype3   sZ    \Wb1IJ|"((K
  2%%')::::r   c                     t        g dd      }t        g dt        j                        }t        j                  ||       |j
                  j                  t        j                  d      k(  sJ y )Nr)   zSparse[int32]r   int32)r   r   r.   r"   r#   r+   r   r$   s      r   !test_constructor_sparse_dtype_strz2TestConstructors.test_constructor_sparse_dtype_str9   sQ    \A|288<
  2%%')::::r   c                 p   t        ddt        j                  dgt              }|j                  t        t              k(  sJ t        j                  |j                        sJ t        ddt        j                  dgt        d      }|j                  t        t        d      k(  sJ |j                  dk(  sJ y )NABr   r   r   )r   r   r   objectr   r   r   r   r   s     r   test_constructor_object_dtypez.TestConstructors.test_constructor_object_dtype?   s    3RVVS1@yyK////xx'''3RVVS1CPyyK4444~~$$$r   c                 T   g d}t        |t        d      }|j                  t        t        d      k(  sJ |j                  du sJ t        j                  |t              }d t        ||      D        }t        j                  |t
        j                        j                         sJ y )N)Fr   g      Y@g        Fr3   r   c              3   ^   K   | ]%  \  }}t        |      t        |      k(  xr ||k(   ' y wN)type).0xys      r   	<genexpr>zKTestConstructors.test_constructor_object_dtype_bool_fill.<locals>.<genexpr>P   s-     O1d1ga +Q!V+Os   +-)r   r4   r   r   r   r   arrayzipfromiterbool_all)r   datar   arr_expectedits        r   'test_constructor_object_dtype_bool_fillz8TestConstructors.test_constructor_object_dtype_bool_fillI   s    %$f?yyK6666~~&&&xxF3OC8NO{{2RXX.22444r   r   r   c                     t        j                  t        d      5  t        ddt        j
                  g|       d d d        y # 1 sw Y   y xY w)NzCannot convertmatchr   r
   r   )pytestraises
ValueErrorr   r   r   )r   r   s     r   test_constructor_na_dtypez*TestConstructors.test_constructor_na_dtypeS   s:    ]]:-=> 	5Arvve4	5 	5 	5s   AAc                    t        j                  ddd      }t        t        j                  |d            }t        j                  t              5  t        |      }d d d        t        j                  |       t        j                  t              5  t        t        j                  |            }d d d        t        j                  ||       y # 1 sw Y   vxY w# 1 sw Y   ,xY w)Nz
2016-01-01r    z
US/Pacific)periodstzzdatetime64[ns]r   )
pd
date_ranger   r   asarrayr"   assert_produces_warningUserWarningr#   Series)r   dtir&   r%   s       r   +test_constructor_warns_when_losing_timezonez<TestConstructors.test_constructor_warns_when_losing_timezoneX   s    mmL!Erzz#5EFG''4 	& %F	& 	  2''4 	1 30F	1 	  2	& 	&
	1 	1s   CCCC(c                 L   t        ddgt        dddg            }t        g dd      }t        j                  ||       |j                  t        t        j                        k(  sJ |j                  dk(  sJ t        g d	t        dg d	      t        j                  d
      }t        g dt        j                  d      }t        j                  ||       |j                  t        t        j                        k(  sJ |j                  dk(  sJ t        ddgt        dddg      dt        j                        }t        g ddt        j                        }t        j                  ||       |j                  t        t        j                        k(  sJ |j                  dk(  sJ t        g d	t        dg d	      d d
      }t        g dd       }t        j                  ||       |j                  t        t        j                        k(  sJ |j                  dk(  sJ y )Nr
   r   r   )rC   sparse_indexr   r
   r   r   integer)kindr   r   )rC   rZ   r   r   )r   r
   r   r    r3   rC   rZ   r   r   r   r   	r   r   r"   r#   r   r   r   r   r   )r   r   r&   exps       r   test_constructor_spindex_dtypez/TestConstructors.test_constructor_spindex_dtypeh   s   1vHQA4GH |)<
  h/yyK1111~~"""!!Y/((	
 ,bhh1E
  c*yyK1111~~"""Qhq1a&&9arxx
 ,1BHHE
  c*yyK1111~~"""!!Y/	
 ,d3
  c*yyK1111~~"""r   rZ   Nr
   c                    d}t        j                  t        |      5  t        d|d       }d d d        t        dgd       }t        j                  |       |j
                  t        t        j                        k(  sJ |j                  dk(  sJ t        j                  t        |      5  t        dt        ddg      d       }d d d        t        dgd       }t        j                  ||       |j
                  t        t        j                        k(  sJ |j                  dk(  sJ y # 1 sw Y   xY w# 1 sw Y   txY w)Nz7Constructing SparseArray with scalar data is deprecatedrH   r
   )rC   rZ   r   r   r   )r"   rT   FutureWarningr   r#   r   r   r   r   r   r   )r   rZ   msgr   r`   s        r   %test_constructor_spindex_dtype_scalarz6TestConstructors.test_constructor_spindex_dtype_scalar   s    H''SA 	M1<tLC	M1#T*
  c*yyK1111~~"""''SA 	Q18As3C4PC	Q1#T*
  c*yyK1111~~"""	M 	M	Q 	Qs   D--D:-D7:Ec                     t        ddgt        dddg      dd       }t        g ddd       }t        j                  ||       |j                  t        t        j                        k(  sJ |j                  dk(  sJ y )Nr
   r   r   r   r^   r[   r   r_   )r   r   r`   s      r   0test_constructor_spindex_dtype_scalar_broadcastszATestConstructors.test_constructor_spindex_dtype_scalar_broadcasts   sq    Qhq1a&&9at
 ,1DA
  c*yyK1111~~"""r   zdata, fill_valuer         ?g       @TFz
2017-01-01c                 n    t        |      j                  }t        |      rt        |      sJ y ||k(  sJ y r8   )r   r   r   )r   rC   r   r%   s       r   $test_constructor_inferred_fill_valuez5TestConstructors.test_constructor_inferred_fill_value   s6     T"--
<<Z'''r   format)coocsccsrsize
   c                    t        j                  d      }|j                  |dd|      }t        j                  |      }t        j                  |      }|j                         j                         }t        j                  ||       y )Nscipy.sparser
         ?densityrk   )rJ   importorskiprandomr   from_spmatrixr   rS   toarrayravelr"   assert_numpy_array_equal)r   ro   rk   	sp_sparsematr%   r&   s          r   test_from_spmatrixz#TestConstructors.test_from_spmatrix   so     ''7	tQFC**3/F#;;=&&(
##FH5r   c                 2   t        j                  d      }|j                  ddd|      }d|j                  d<   t	        j
                  |      }t        j                  |      }|j                         j                         }t        j                  ||       y )Nrr   rp   r
   rs   rt   r   )rJ   rv   rw   rC   r   rx   r   rS   ry   rz   r"   r{   )r   rk   r|   r}   r%   r&   s         r   *test_from_spmatrix_including_explicit_zeroz;TestConstructors.test_from_spmatrix_including_explicit_zero   sz    ''7	r1c&A**3/F#;;=&&(
##FH5r   c                     t        j                  d      }|j                  ddd      }t        j                  t        d      5  t        j                  |       d d d        y # 1 sw Y   y xY w)Nrr      r   rm   )rk   znot '4'rH   )rJ   rv   eyerK   rL   r   rx   )r   r|   r}   s      r   test_from_spmatrix_raisesz*TestConstructors.test_from_spmatrix_raises   sW    ''7	mmAqm/]]:Y7 	+%%c*	+ 	+ 	+s   A$$A-c                     t        j                  t        d      5  t        t	        j
                  d      j                  d             d d d        y # 1 sw Y   y xY w)Nzexpected dimension <= 1 datarH   rp   )r   r   )rJ   rK   	TypeErrorr   r   arangereshape)r   s    r   %test_constructor_from_too_large_arrayz6TestConstructors.test_constructor_from_too_large_array   sA    ]]9,JK 	7		"--f56	7 	7 	7s   .AAc                     t        g dd      }t        |      }|j                  dk(  sJ t        j                  |j                  |j                         y )N)
r   r   r
   r   r    r   r   r   r      r   r   )r   r   r"   assert_almost_equalr+   )r   zarrress      r   test_constructor_from_sparsez-TestConstructors.test_constructor_from_sparse   sC    9aH$~~"""
s}}dnn=r   c                    t        j                  t         j                  t         j                  dddt         j                  ddt         j                  dg
      }t        |      }t        |d      }d	|j                  d d |j                  d d d	k(  j                         rJ t        |      }d	|j                  d d |j                  d d d	k(  j                         sJ y )
Nr
   r   r    r   r   r   T)copyr   )r   r>   r   r   r+   anyrB   )r   arr_datar   cpnot_copys        r   test_constructor_copyz&TestConstructors.test_constructor_copy   s    88RVVRVVQ1bffaBFFANO(#4(RaMM"1%*//111s#!"2Abq!Q&++---r   c                    t        j                  g d      }t        |dt              }|j                  t        t              k(  sJ t        j                  |j                  t        j                  ddg             t        j                  |j                  j                  t        j                  ddgt         j                               |j                         }|j                  t        k(  sJ t        j                  ||       y )N)FFTTFFFr   Tr   r    )r   r>   r   boolr   r   r"   r{   r+   sp_indexindicesr.   to_denser   rC   r   denses       r   test_constructor_boolz&TestConstructors.test_constructor_bool   s    xx@A$5=yyK----
##CMM288T4L3IJ 	##CLL$8$8"((Aq6288:TU{{d"""
##E40r   c                    t        g dd       }|j                  t        t        j                        k(  sJ |j
                  rJ t        g dt        j                        }|j                  t        t        j                        k(  sJ |j
                  rJ t        g dt        j                  d      }|j                  t        t        j                  d      k(  sJ |j
                  sJ y )N)TFTr   Tr3   )r   r   r   r   rA   r   r   s     r    test_constructor_bool_fill_valuez1TestConstructors.test_constructor_bool_fill_value  s    -T:yyK1111>>!!-RXX>yyK1111>>!!-RXX$OyyK$7777~~~r   c                    t        j                  dt         j                  dgt         j                        }t	        |t         j                        }|j
                  t        t         j                        k(  sJ t        j                  |j                  t        j                  ddgt         j                               t        j                  |j                  j                  t        j                  ddgt         j                               |j                         }|j
                  t         j                  k(  sJ t        j                  ||       y )Nrh   r    r   r
   r   r   )r   r>   r   float32r   r   r   r"   r{   r+   r   r   r.   r   r   s       r   test_constructor_float32z)TestConstructors.test_constructor_float32  s    xxbffa(

;$bjj1yyK

3333
##CMM288QF"**3UV 	##LL  "((Aq6"B	
 {{bjj(((
##E40r   )$__name__
__module____qualname__r   r'   r,   r/   r5   rF   rJ   markparametrizer   r!   rM   rX   ra   r   re   rg   r   r>   r   rQ   	TimestampNaTrj   r~   r   r   r   r   r   r   r   r    r   r   r   r      s   #<3
;;%5 [[W{3':C&@A5 B53 &#P [[^dHQ4D-EF# G#"# [[RXXq!fq!RXXsCj!266*E]E"bll<()2662		
(( [[X'<=[[VaW-6 . >6 [[X'<=	6 >	6+7>
.11r   r   )numpyr   rJ   pandas._libs.sparser   pandasrQ   r   r   pandas._testing_testingr"   pandas.core.arrays.sparser   r   r   r   r   <module>r      s*      (   1N1 N1r   