
    Owg(                         d dl Zd dlZd dlZd dlmZ d dlmZ d dl	m
Z
 ej                  d        Zej                  d        Z G d d      Z G d d	      Z G d
 d      Z G d d      Zy)    N)SparseDtypeSparseArrayc                      t        j                  t         j                  t         j                  dddt         j                  ddt         j                  dg
      S )N                  )nparraynan     _/var/www/horilla/myenv/lib/python3.12/site-packages/pandas/tests/arrays/sparse/test_indexing.pyarr_datar   
   s6    88RVVRVVQ1bffaBFFAFGGr   c                     t        |       S Nr   )r   s    r   arrr      s    x  r   c                      e Zd Zd Zd Zej                  j                  dej                  dd ej                  dd ej                  dd ej                  dd ej                  dd ej                  d	d
 ej                  dd ej                  dd ej                  dd ej                  ddd   ej                  ddd   ej                  ddd   ej                  ddd   ej                  ddd   ej                  ddd   g      ej                  j                  dej                  gdz  dgdz  ej                  gdz  dgdz  z   g g      d               Zd Zd Zd Zd Zd Zy)TestGetitemc                     |j                         }t        |      D ]<  \  }}t        j                  |||          t        j                  ||    ||           > y r   )to_dense	enumeratetmassert_almost_equal)selfr   denseivalues        r   test_getitemzTestGetitem.test_getitem   sT    !# 	7HAu""5%(3""3r7E1"I6	7r   c                 r    t        g d      }|g d   }t        ddg      }t        j                  ||       y )Nr   r   r   )TFTr   r   )r   r   assert_sp_array_equal)r   r   resultexpecteds       r   test_getitem_arraylike_maskz'TestGetitem.test_getitem_arraylike_mask   s5    )$()1v&
  2r   slcNr   
   d   ir   r	   r   as_denser   c                     t        j                  |      }t        |      }||   }t        ||         }t        j                  ||       y r   )r   r   r   r   r%   )r   r)   r2   r   r&   r'   s         r   test_getslicezTestGetitem.test_getslice!   sC    0 88H%(#Sx}-
  2r   c                    t        j                  t         j                  dddddt         j                  t         j                  dg	      }t        |      }|t	        dd       f   }t        |dd        }t        j                  ||       t        |d      }|t	        dd       f   }t        |dd  d      }t        j                  ||       d}t        j                  t        |      5  |dd d d f    d d d        t        j                  t        |      5  |dd d d f    d d d        y # 1 sw Y   9xY w# 1 sw Y   y xY w)Nr   r	   r
   r   
fill_valueztoo many indices for arraymatch)
r   r   r   r   slicer   r%   pytestraises
IndexError)r   r   sparseresexpmsgs         r   test_getslice_tuplezTestGetitem.test_getslice_tupleA   s   "&&!Q1aCDU#eAtn&'%)$
  c*Uq1eAtn&'%)2
  c**]]:S1 	12q5M	 ]]:S1 	!"a%L	 		 		 	s   (D,D8,D58Ec                 b    t        g d      }|g d   }|j                  |j                  k(  sJ y )Nr$   )FFF)r   dtype)r   r   r?   s      r   test_boolean_slice_emptyz$TestGetitem.test_boolean_slice_emptyV   s-    )$'(yyCII%%%r   c                 N   t        ddgdz  t        j                  d      }t        t        j                  dt        j                  ddg      }t	        j
                  ||   |       | }||   }t        t        j                  ddd	t        j                  g      }t	        j
                  ||       t        ddt        j                  gdz  t        j                  t        j                        }||   }t        t        j                  ddg      }t	        j
                  ||       y )
NFTr   )rD   r7   r   r   r   r	   r
   )r   r   bool_r   r   r%   )r   r   	spar_boolr@   r?   s        r   test_getitem_bool_sparse_arrayz*TestGetitem.test_getitem_bool_sparse_array[   s     1dS	2661bffa34
  Y5J	)n2661aBFF34
  c*D"&&!A%RXX"&&
	 )n2661a.)
  c*r   c                     t        ddddt        j                  t        j                  gt        j                        }||dkD     }t        ddgt        j                        }t        j                  ||       y )Nr   r   r	   r
   r6   g      @g      @)r   r   r   r   r%   )r   r   r?   r@   s       r   ,test_getitem_bool_sparse_array_as_comparisonz8TestGetitem.test_getitem_bool_sparse_array_as_comparisonm   sX    1aArvvrvv6266J#'l3*8
  c*r   c                    t        g dd      }t        j                  |d         sJ |d   dk(  sJ |d   dk(  sJ |d   dk(  sJ |d   dk(  sJ |d   dk(  sJ d}t        j                  t
        |	      5  |d
    d d d        t        j                  t
        |	      5  |d    d d d        |d   |t        |      dz
     k(  sJ y # 1 sw Y   LxY w# 1 sw Y   /xY w)N)
r   r   r   r   r	   r   r
   r   r   r   r   r6   r   r      r   z%must be an integer between -10 and 10r8      ir/   )r   r   isnanr;   r<   r=   len)r   r   zarrerrmsgs       r   test_get_itemzTestGetitem.test_get_itemt   s    9aHxxA1v{{1v{{Aw!||Aw!||Aw!||8]]:V4 	G	 ]]:V4 	H	 2w#c#hl++++	 		 	s   9C
"C
CC)__name__
__module____qualname__r"   r(   r;   markparametrizer   s_r   r4   rB   rE   rI   rK   rS   r   r   r   r   r      so   73 [[EE!HEE!BKEE!CLEE"QKEE#2JEE"RLEE$3KEE#$KEE!"IEE!$Q$KEE#A#JEE$B$KEE$B$KEE!Aa%LEE&2b&M	
( [[bffX]QC"HrvvhlaS1W.DbI3).3*&
+$+,r   r   c                       e Zd Zd Zy)TestSetitemc                 (   t        |      j                         fd}fd}t        j                  t        d      5   |        d d d        t        j                  t        d      5   |        d d d        y # 1 sw Y   5xY w# 1 sw Y   y xY w)Nc                      d d<   y )Nr	   r   r   r   s   r   setitemz*TestSetitem.test_set_item.<locals>.setitem   s    CFr   c                      d dd y )Nr   r   r   r   r^   s   r   setslicez+TestSetitem.test_set_item.<locals>.setslice   s    C!Hr   zassignment via setitemr8   )r   copyr;   r<   	TypeError)r   r   r_   ra   r   s       @r   test_set_itemzTestSetitem.test_set_item   s{    (#((*		 ]]9,DE 	I	 ]]9,DE 	J	 		 		 	s    A<+B<BBN)rT   rU   rV   rd   r   r   r   r[   r[      s    r   r[   c                       e 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
ddg      d        Zy)TestTakec                     d}t        j                  t        |      5  |j                  d       d d d        y # 1 sw Y   y xY w)Nz-'indices' must be an array, not a scalar '2'.r8   r   )r;   r<   
ValueErrortake)r   r   rA   s      r   test_take_scalar_raisesz TestTake.test_take_scalar_raises   s5    =]]:S1 	HHQK	 	 	s	   9Ac                 $   t        t        j                  |ddg            }t        j                  |j                  ddg      |       t        t        j                  |g d            }t        j                  |j                  g d      |       y )Nr   r	   r$   r   r   ri   r   r%   r   r   r   r@   s       r   	test_takezTestTake.test_take   sf    "''(QF34
  1a&!137"''(I67
  )!4c:r   c                     t        j                  ddgt        d            }|j                  ddgdt        j
                        }t        j                  ||       y )Nr   int64rD   r   T
allow_fillr7   )pdr   r   ri   r   r   r   r%   )r   r>   r&   s      r   test_take_all_emptyzTestTake.test_take_all_empty   sG    1a&G(<=aVH
  0r   c                     t        j                  dgt        dd            }|j                  ddgdt        j
                        }t        j                  dt        j
                  g|j                        }t        j                  ||       y )	Ng        float64r6   rq   r   r/   Trr   )	rt   r   r   ri   r   r   rD   r   r%   )r   r>   r&   r'   s       r   test_take_different_fill_valuez'TestTake.test_take_different_fill_value   sc    3%{9'MNaW"&&I88QKv||<
  62r   c                    t        j                  dt         j                  dddg      }t        |d      }t        t        j                  |dg      d      }t        j                  |j	                  dg      |       t        t        j                  |g d      d      }t        j                  |j	                  g d      |       y )Nr   r   r	   r6   )r   r	   r
   )r   r   r   r   ri   r   r%   )r   datar>   r@   s       r   test_take_fill_valuezTestTake.test_take_fill_value   s    xxBFFAq!,-Ta0"''$,;
  aS!137"''$	2qA
  Y!7=r   c                     t        t        j                  |dg            }t        j                  |j                  dg      |       t        t        j                  |g d            }t        j                  |j                  g d      |       y )Nr/   )r.   r,   r0   rl   rm   s       r   test_take_negativezTestTake.test_take_negative   sa    "''(RD12
  2$5"''(L9:
  ,!7=r   c                     t        j                  t        d      5  |j                  dg       d d d        y # 1 sw Y   y xY w)Nboundsr8   rN   )r;   r<   r=   ri   )r   r   s     r   test_bad_takezTestTake.test_bad_take   s2    ]]:X6 	HHbTN	 	 	s	   8Ac                 t   t        t        j                  t        j                  dt        j                  dg      }|j                  t        j                  g d            }t        t        j                  t        j                  dg      }t        j                  ||       |j                  t        j                  g d      d      }t        t        j                  t        j                  t        j                  g      }t        j                  ||       |j                  t        j                  g d      dd      }t        t        j                  t        j                  dg      }t        j                  ||       d}t        j                  t        |	      5  |j                  t        j                  g d
      d       d d d        t        j                  t        |	      5  |j                  t        j                  g d      d       d d d        d}t        j                  t        |	      5  |j                  t        j                  ddg             d d d        t        j                  t        |	      5  |j                  t        j                  ddg             d d d        t        j                  t        |	      5  |j                  t        j                  ddg      d       d d d        y # 1 sw Y   9xY w# 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   {xY w# 1 sw Y   y xY w)Nr   r
   r   r   r/   Trs   Frr   zInvalid value in 'indices'r8   r   r   r0   r   r   r-    out of bounds value in 'indices'r1   r   r   r   r   ri   r   r   r%   r;   r<   rh   r=   r   r>   r&   r'   rA   s        r   test_take_fillingzTestTake.test_take_filling   s9   bffbffa;<RXXj1223
  2 RXXj1dC78
  2 RXXj1ePTU23
  2*]]:S1 	?KK,K>	? ]]:S1 	?KK,K>	? 1]]:S1 	+KK!R)*	+]]:S1 	*KK!Q()	*]]:S1 	;KK!Q(TK:	; 	;	? 	?	? 	?	+ 	+	* 	*	; 	;s<   )K=))L
7'L'L")L.=L
LL"L+.L7c                    t        t        j                  ddddgd      }|j                  t        j                  g d            }t        dt        j                  dgd      }t        j                  ||       |j                  t        j                  g d      d      }t        dt        j                  t        j                  gd      }t        j                  ||       |j                  t        j                  g d      dd	      }t        dt        j                  dgd      }t        j                  ||       d
}t        j                  t        |      5  |j                  t        j                  g d      d       d d d        t        j                  t        |      5  |j                  t        j                  g d      d       d d d        d}t        j                  t        |      5  |j                  t        j                  ddg             d d d        t        j                  t        |      5  |j                  t        j                  ddg             d d d        t        j                  t        |      5  |j                  t        j                  ddg      d       d d d        y # 1 sw Y   9xY w# 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   {xY w# 1 sw Y   y xY w)Nr   r   r
   r6   r   Tr   Frr   zInvalid value in 'indices'.r8   r   r   r   r1   r   r   r   s        r   test_take_filling_fill_valuez%TestTake.test_take_filling_fill_value   s+   bffaAq1a@RXXj122661~!<
  2 RXXj1dC
 2662662qA
  2 RXXj1ePTU2661~!<
  2+]]:S1 	?KK,K>	?]]:S1 	?KK,K>	? 1]]:S1 	+KK!R)*	+]]:S1 	*KK!Q()	*]]:S1 	;KK!Q(TK:	; 	;	? 	?	? 	?	+ 	+	* 	*	; 	;s<   )J?+)K9'K'K$)K0?K	KK!$K-0K9kindblockintegerc                    t        t        j                  t        j                  t        j                  t        j                  t        j                  g|      }|j                  t        j                  g d            }t        t        j                  t        j                  t        j                  g|      }t        j                  ||       |j                  t        j                  g d      d      }t        t        j                  t        j                  t        j                  g|      }t        j                  ||       d}t        j                  t        |      5  |j                  t        j                  ddg             d d d        t        j                  t        |      5  |j                  t        j                  dd	g             d d d        t        j                  t        |      5  |j                  t        j                  dd	g      d       d d d        y # 1 sw Y   xY w# 1 sw Y   bxY w# 1 sw Y   y xY w)
N)r   r   Tr6   r   r8   r   r1   r   )
r   r   r   ri   r   r   r%   r;   r<   r=   )r   r   r>   r&   r'   rA   s         r   test_take_filling_all_nanz"TestTake.test_take_filling_all_nan  s   bffbffbffbffbffEDQRXXj127dC
  2RXXj1dC7dC
  20]]:S1 	+KK!R)*	+]]:S1 	*KK!Q()	*]]:S1 	;KK!Q(TK:	; 	;		+ 	+	* 	*	; 	;s$   $'H*.'H68)I*H36H?IN)rT   rU   rV   rj   rn   ru   rx   r{   r}   r   r   r   r;   rW   rX   r   r   r   r   rf   rf      s[    
;1
3>>;B!;F [[Vgy%9:; ;;r   rf   c                       e Zd Zd Zy)	TestWherec                 ~   t        t        j                  dgd      }t        j                  ddg      }|j	                  | d      }t        ddgd      }t        j                  ||       t        j                  |      }|j                  | d      }t        j                  |t        j                  |             y )Ng      ?r   r6   TFr   )r   r   r   r   _wherer   r%   rt   Serieswhereassert_series_equal)r   r   maskr?   r@   sers         r   test_where_retain_fill_valuez&TestWhere.test_where_retain_fill_value"  s    2663-A6xxu&jj$"1c(q1
  c*iiniiq!
sBIIcN3r   N)rT   rU   rV   r   r   r   r   r   r   !  s    4r   r   )numpyr   r;   pandasrt   r   pandas._testing_testingr   pandas.core.arrays.sparser   fixturer   r   r   r[   rf   r   r   r   r   <module>r      sw         1 H H ! !s, s,l "C; C;L4 4r   