
    .i                        d dl Z d dlmZmZ d dlmZ d dlZd dlZd dlm	Z	 d dl
mZ d dlmZ d dlmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZm Z m!Z!m"Z" d dl#m$Z% d dl&m'Z'  G d	 d
      Z( G d d      Z) G d d      Z* G d d      Z+ G d d      Z, G d d      Z- G d d      Z.d Z/d Z0d Z1d Z2 G d d      Z3 G d d      Z4ejj                  jm                  d ejn                   e e d d!             e ed d"      ejp                   ed#d$       ed$d!      gd%&      d d'd()       ejn                   eg d*       eejp                  d#ejp                  d!ejp                  d+ejp                  d,ejp                  g	       e9ddd"      d-d.)       ejn                   eg d/       eejp                  d'ejp                  d-ge:&       e9ddd"      d'd0)       ejn                   e ejv                  d1             eejp                  ejp                  ejp                  ejp                  ejp                  d!d2d+d3d,g
       e9dd!      d-d4)       ejn                   eg d5       eejp                  d"d#g      d d-d6)       ejn                   ed-g       eejp                  ge:&      d d'd7)       ejn                   ed-d'g       eejp                  d'ge:&      d d'd8)      g       G d9 d:e4             Z< G d; d<e4      Z= G d= d>e4      Z> G d? d@e4      Z? G dA dBe4      Z@ G dC dDe4      ZAejj                  jm                  dE eg d5       eejp                  d"d#g      f eg dF       eejp                  dGdHg      f e edId d        edId d"       edId d#      g       ee edId d"       edId d#      g      f eg dJ       eg dK      fg       G dL dMe4             ZB G dN dOe4      ZC G dP dQe4      ZDejj                  jm                  dR ej:                  dGdHg      d-f ej:                  dSdTg      d'f ej:                  d"dUz  d"dUz  d z   gej                  &      d'fg       G dV dWe4             ZFejj                  jm                  dXdY ej                  dY      g       G dZ d[e4             ZHejj                  jm                  dXg d\       G d] d^e4             ZI G d_ d`e4      ZJejj                  jm                  da ej                  d       ej                  df ej                  dY      ej                  d'fg       G db dceJ             ZMejj                  jm                  dXg dd      ejj                  jm                  dee:g       G df dgeJ                    ZNejj                  jm                  dad e:d'fdh eejp                  i      d-fg       G dj dkeJ             ZOejj                  jm                  dad ej                  d-fdlej                  d-fdmej                  d-fd'e:d'fg       G dn doeJ             ZQejj                  jm                  dad e:d'fdpe:d'fd#e:d'fdle:d'fdme:d'fd'eRd-fg       G dq dreJ             ZSejj                  jm                  dad ej                  d-fdlej                  d'fdmej                  d'fd'e:d'fg       G ds dteJ             ZUejj                  jm                  dad ej                  d-fdlej                  d-fdmej                  d'fd'e:d'fg       G du dveJ             ZVejj                  jm                  dad ej                  d-f ejn                  dlej                  d-ejj                  j                  e	 dwx      y      dmej                  d'fd'e:d'f ej                  d"      ej                  d-f ej                  d"      ej                  d-f ej                   ej                  ej                        j                        ej                  d'f ej                  d"      ej                  d-f ej                  d"      ej                  d-fg	       G dz d{eJ             Z^ejj                  jm                  deg d|       G d} d~eJ             Z_ejj                  jm                  da ed      dd-fd e:d'fde:d'fg       G d deJ             Z`ejj                  jm                  da edd      dd-f edd      dd-f ed      e:d'fd e:d'fg       G d deJ             Zaejj                  jm                  da ed      dd-fd e:d'fde:d'fg       G d deJ             Zbejj                  jm                  dXd edd       ed d"d      g      ejj                  jm                  dee:g       G d deJ                    Zcd Zdd Zed Zfd Zgd Zhd Zid Zjd Zkd Zld Zmd Znejj                  jm                  d eod"d2            ejj                  jm                  dg dd'd-gd-gg      ejj                  jm                  ddGejp                   ej                  eq      j                   ej                  eq      j                  g      ejj                  jm                  dej:                  esetg      d                             Zud Zvd Zwy)    N)datedatetime)Decimal)np_version_gt2)IndexingError)is_list_like)NACategorical	DataFrameDatetimeIndexIndexIntervalIntervalIndex
MultiIndexNaTPeriodSeriesStringDtype	Timedelta	Timestamparrayconcat
date_rangeinterval_rangeperiod_rangetimedelta_range)BDayc                   x    e Zd Zd Zd Zd Zd Zej                  j                  dg d      d        Z
d Zd	 Zy
)TestSetitemDT64Valuesc                     t        t        ddd            }d |d<   |d   t        u sJ d |dd |d   t        u sJ t        j                  |d<   |d   t        u sJ t        j                  |dd |d	   t        u sJ y )
Nz1/1/2000
   ns)periodsunit               )r   r   r   npnanselfseriess     g/var/www/app/trading-bot/venv/lib/python3.12/site-packages/pandas/tests/series/indexing/test_setitem.pytest_setitem_none_nanz+TestSetitemDT64Values.test_setitem_none_nan,   s    
:rEFq	ayCqayCFFq	ayCffqayC    c                     t        j                  ddg      }t        ddg|      }|j                         }d|j                  g <   t        j                  ||       y )N)a   )b   r4   r6   indexr   )r   from_tuplesr   copyloctmassert_series_equal)r-   idxresultexpecteds       r/   #test_setitem_multiindex_empty_slicez9TestSetitemDT64Values.test_setitem_multiindex_empty_slice:   sO    $$h%9:Ac*;;=

2
vx0r1   c                     t        g dg dt              }t        j                         |d<   |j                  t        j                         k(  sJ |d   t        j                         k(  sJ y )Nr4   r6   r%   )Dater5   otherr8   dtyperD   )r   objectr   todayrD   r-   sers     r/   test_setitem_with_string_indexz4TestSetitemDT64Values.test_setitem_with_string_indexB   sR     Y&<FKjjlFxx4::<'''6{djjl***r1   c                     t        dddd      }g d}t        ||      }|j                         }t        j                  |d<   t        j                  |j
                  d	<   t        j                  ||       y )
N2017r'   
US/Easternr"   )r#   tzr$   )r   r4   )r   r6   )r   r%   )r   r'   r7   rQ   r   )r   r   r:   r*   r+   ilocr<   r=   )r-   arrr8   r?   r@   s        r/   )test_setitem_tuple_with_datetimetz_valuesz?TestSetitemDT64Values.test_setitem_tuple_with_datetimetz_valuesJ   s]    |$G05);;=v66a
vx0r1   rP   )rO   UTCz
Asia/Tokyoc           	         t        t        ddd|d            }|j                  d| dk(  sJ t        t        d|	      t        d
|	      t        d|	      g|j                        }|j	                         }t        d|	       ||      d<   t        j                  ||       t        t        d|	      t        d|	      gddg|j                        }|j                  d| dk(  sJ t        t        d|	      t        d
|	      t        d|	      g|j                        }|j	                         }| ||      ddg<   t        j                  ||       y )N
2016-01-01hr%   r"   freqr#   rP   r$   datetime64[ns, ]z2016-01-01 00:00rP   2011-01-01 00:00z2016-01-01 02:00rG   
2011-01-01r4   
2012-01-01r6   rF   2012-01-01 00:00r   r   rG   r   r:   r<   r=   )r-   rP   indexer_sliorigexprK   valss          r/   test_setitem_with_tzz*TestSetitemDT64Values.test_setitem_with_tzT   sW   jCrPTUVzzrd!4444,4,4,4
 **
 iik'<C
sC( |+Y|-KLa&**

 zzrd!4444,4,4,4
 **
 iik#'C!Q 
sC(r1   c           	         d}t        t        ddd|d            }|j                  d| dk(  sJ t        t        d	|
      t        d|
      t        d|
      g|j                        }|j	                         }t        d|
       ||      d<   t        j                  ||       t        t        d|
      t        d|
      gddg|j                        }|j                  d| dk(  sJ t        t        d|
      t        d|
      t        d|
      g|j                        }|j	                         }| ||      ddg<   t        j                  ||       y )NrO   z
2016-11-06rX   r%   r"   rY   r[   r\   z2016-11-06 00:00-04:00r]   z2011-01-01 00:00-05:00z2016-11-06 01:00-05:00r_   r`   r4   ra   r6   rF   z2016-11-06 00:00r^   rb   rc   )r-   rd   rP   re   rf   rK   rg   s          r/   test_setitem_with_tz_dstz.TestSetitemDT64Values.test_setitem_with_tz_dst|   s\   jCrPTUVzzrd!44442r:2r:2r:
 **
 iik'<C
sC( |+Y|-KLa&**

 zzrd!4444,4,4,4
 **
 iik#'C!Q 
sC(r1   c                 0   t        dt        j                  it              }dg}t        j                  dgd      }||j
                  |<   t        |d   gdgt              }t        d |j                  D              sJ t        j                  ||       y )	NXr_   Tr'   M8[ns]r   rF   c              3   P   K   | ]  }t        |t        j                           y wN)
isinstancer*   
datetime64.0xs     r/   	<genexpr>zYTestSetitemDT64Values.test_object_series_setitem_dt64array_exact_match.<locals>.<genexpr>   s     IA:a/Is   $&)
r   r*   r+   rH   r   rR   allvaluesr<   r=   )r-   rK   indexervaluer@   s        r/   0test_object_series_setitem_dt64array_exact_matchzFTestSetitemDT64Values.test_object_series_setitem_dt64array_exact_match   s     c266]&1& !H-!58*SE@IIIII
sH-r1   N)__name__
__module____qualname__r0   rA   rL   rT   pytestmarkparametrizerh   rj   rz    r1   r/   r   r   +   sI     1+1 [[T#FG%) H%)N')R.r1   r   c                   $   e Zd Zd Zej
                  j                  dej                  ej                  g      ej
                  j                  dddg      d               Z
ej
                  j                  dddej                  fg      d	        Zy
)TestSetitemScalarIndexerc                     t        dgdz  dgdz        }d|d<   t        dgdz  dgz   dgdz  dgz         }t        j                  ||       y )Nr3   r!   r7   fooir   r<   r=   )r-   rK   rf   s      r/   #test_setitem_negative_out_of_boundsz<TestSetitemScalarIndexer.test_setitem_negative_out_of_bounds   s[     cURZurz2CcURZ5')#se1CD
sC(r1   rx   	ser_indexr   r4   c                     t        ddgd      } ||      }t        dg|g      |d<   t        t        dg|g      dgd      }t        j                  ||       y )Nr   rH   r_   *   r7   r   )r-   rx   r   rK   idxrr@   s         r/    test_setitem_series_object_dtypez9TestSetitemScalarIndexer.test_setitem_series_object_dtype   s]     aV8,s|"i[1Q62$yk:A>hO
sH-r1   zindex, exp_value)r   r   c                     t        ddg      }t        dg|g      |j                  d<   t        |dg      }t        j                  ||       y )Nr   r   r7   )r   r;   r<   r=   )r-   r8   	exp_valuerK   r@   s        r/   test_setitem_seriesz,TestSetitemScalarIndexer.test_setitem_series   sG     aVnRD0
9a.)
sH-r1   N)r{   r|   r}   r   r~   r   r   r<   r;   atr   r*   r+   r   r   r1   r/   r   r      s    ) [[Y8[[[1a&1. 2 9. [[/'Arvv;1GH. I.r1   r   c                   *    e Zd Zd Zd Zd Zd Zd Zy)TestSetitemSlicesc                    d}t        j                  t        |j                  d            5  d|dd d d d        t        j                  t        |j                  d            5  d|d	d d d d        y # 1 sw Y   CxY w# 1 sw Y   y xY w)
NzUcannot do slice indexing on DatetimeIndex with these indexers \[{key}\] of type floatz4\.0)keymatchr   g      @g      $@z4\.5g      @)r~   raises	TypeErrorformat)r-   datetime_seriesmsgs      r/   test_setitem_slice_float_raisesz1TestSetitemSlices.test_setitem_slice_float_raises   s    ' 	 ]]9CJJ7J,CD 	*()OC%	* ]]9CJJ7J,CD 	*()OC%	* 	*	* 	*	* 	*s   A6'B6A?Bc                     t        t        d      t        t        d                  }d|dd  |dk(  j                         sJ d|d d |dk(  j                         sJ y )Nr!   r7   r   ir&   )r   rangelistrv   rJ   s     r/   test_setitem_slicez$TestSetitemSlices.test_setitem_slice   sX    U2Yd59o6CD	q~~DS	q~~r1   c                     t        t        j                  j                  d      j	                  d      g d      }d|d d |d d dk(  j                         sJ |dd  dk(  j                         rJ y )Nr6      )r6   r'   r)   r   r!            r7   r   r'   )r   r*   randomdefault_rngstandard_normalrv   anyrJ   s     r/   test_setitem_slice_integersz-TestSetitemSlices.test_setitem_slice_integers   st    II!!!$44Q7.

 BQBQ1!!###GqL%%''''r1   c                     t        t        j                  dt        j                        t        j                  dt        j                              }d|d d d<   |d d d   dk(  j                         sJ y )N   r_   r7   r   r6   )r   r*   arangefloat64int64rv   r,   s     r/   test_setitem_slicestepz(TestSetitemSlices.test_setitem_slicestep   s]    IIb

+299Rrxx3P
 ssssq %%'''r1   c                 
   t        j                  ddgt        d      f      }t        t	        j
                  dt        j                        |      }d ||      d d d<   t        g d|      }t        j                  ||       y )	Nr   r4   abcder!   r_   d   r'   )
r   r4   r6   r%   r   r&   r)   r(   r   	   )	r   from_productr   r   r*   r   r   r<   r=   )r-   rd   mir?   r@   s        r/   test_setitem_multiindex_slicez/TestSetitemSlices.test_setitem_multiindex_slice   sj    $$q!fd7m%<=		"BHH5r:#&FCaC >C
vx0r1   N)r{   r|   r}   r   r   r   r   r   r   r1   r/   r   r      s    	* ((1r1   r   c                       e Zd Zd Zd Zd Zd Zd Zd Zd Z	e
j                  j                  deej                  eg      d	        Zd
 Zd Zd Zd Zd Zy)TestSetitemBooleanMaskc                     t        ddgddgd      }t        dgdgd      |ddg<   t        ddgddgd      }t        j                  ||       y )Nr4   r6   r   rF   r   TFr   r-   rK   r@   s      r/   test_setitem_mask_castz-TestSetitemBooleanMask.test_setitem_mask_cast  s[     aVAq69#QCs'BT5M1a&Ag>
sH-r1   c                    t        t        j                  j                  d      j	                  d      t        j
                  ddd            j                  d      }|dkD  }|j                         }||   j                         j                  t              }t        j                  t        d      5  |||<   d d d        y # 1 sw Y   y xY w)	Nr6   r   r   r7   r&   Invalid valuer   )r   r*   r   r   r   r   roundr:   mapstrr~   r   r   )r-   tsmaskleftrights        r/   #test_setitem_mask_align_and_promotez:TestSetitemBooleanMask.test_setitem_mask_align_and_promote  s    II!!!$44S93PQSUAV

%( 	 Avwwy4##C(]]9O< 	DJ	 	 	s   4CCc                     t        g d      }|dkD  }||   j                  t              }t        j                  t
        d      5  |||<   d d d        y # 1 sw Y   y xY w)N)r   r4   r6   r   r   r   r   )r   r   r   r~   r   r   )r-   rK   r   ser2s       r/   test_setitem_mask_promote_strsz5TestSetitemBooleanMask.test_setitem_mask_promote_strs  sS    \"Qw4y}}S!]]9O< 	CI	 	 	s   AAc                     t        g d      }t        g d      }||   }|||<   t        g d      }t        j                  ||       y )N)r   r   barr   )FTTFr   )r-   rK   r   r   r@   s        r/   test_setitem_mask_promotez0TestSetitemBooleanMask.test_setitem_mask_promote   sE    )*014yD	./
sH-r1   c                 J   ||j                         kD  }|j                         }|dz  ||<   |dz  }t        j                  ||   ||          |j                         }|dz  dd ||<   |dz  dd j	                  |      }||   || <   t        j                  ||   ||          y )Nr6   r   r&   )medianr:   r<   r=   reindex_like)r-   string_seriesr   r?   r@   s        r/   test_setitem_booleanz+TestSetitemBooleanMask.test_setitem_boolean)  s    }3355 ##%$q(t 1$
vd|Xd^< ##%%)1Q/t!A%q+88G'-$
vd|Xd^<r1   c                 L   |}|j                  dt                     |j                         kD  }d}t        j                  t
        |      5  d||<   d d d        t        j                  t
        |      5  d|j                  |<   d d d        y # 1 sw Y   =xY w# 1 sw Y   y xY w)Nr4   rZ   zsUnalignable boolean Series provided as indexer \(index of the boolean Series and of the indexed object do not matchr   )shiftr   r   r~   r   r   r;   )r-   r   r   mask_shiftedr   s        r/   test_setitem_boolean_cornerz2TestSetitemBooleanMask.test_setitem_boolean_corner9  s    xxx/"))+=I 	 ]]=4 	! B|	! ]]=4 	%#$BFF< 	% 	%	! 	!	% 	%s   B5BBB#c                     |j                         }|j                         }d||dkD  <   |j                         }d||dkD  <   t        j                  ||       y Nr   )sort_valuesr:   r<   r=   )r-   r   orderedr:   r@   s        r/   $test_setitem_boolean_different_orderz;TestSetitemBooleanMask.test_setitem_boolean_different_orderG  sX    ++-!!#Wq[ %%'!"A
tX.r1   funcc                     t        g d      } |g d      }ddg||<   t        g d      }t        j                  ||       y )N)Nr5   NTFTr3   cr3   r5   r   r   )r-   r   rK   r   r@   s        r/    test_setitem_boolean_python_listz7TestSetitemBooleanMask.test_setitem_boolean_python_listR  sA     &''(#JD	/*
sH-r1   c                    t        g d|      }t        t        d      |      ||dkD  <   t        g d|      }t        j                  ||       t        g d|      }t        t        d      |      |j                  |dkD  <   t        j                  ||       t        g d|      }t        t        d      |      }|j                  |dkD     |j                  |dkD  <   t        j                  ||       y )N)r&   r)   r(   r   r_   r'   r)   )r&   r)   r6   r%   r4   )r   r   r<   r=   r;   )r-   any_numeric_ea_dtyperK   r@   loc_sers        r/   'test_setitem_boolean_nullable_int_typesz>TestSetitemBooleanMask.test_setitem_boolean_nullable_int_types[  s    \)=>eAh.BCC!G,.BC
sH-\)=>!%(2FGa
sH-\)=>q)=>";;w{3a
sH-r1   c                     t        d gdz        }dgdz  dgdz  z   dgdz  z   }t        d      ||<   |}t        d gdz  t        t        d            z   d gdz  z   t              }t	        j
                  ||       y )Nr!   Fr%   Tr&   r6   r_   )r   r   r   rH   r<   r=   )r-   rK   r   r?   r@   s        r/   Atest_setitem_with_bool_mask_and_values_matching_n_trues_in_lengthzXTestSetitemBooleanMask.test_setitem_with_bool_mask_and_values_matching_n_trues_in_lengthk  s    dVb[!w{dVaZ'5'A+5!HD	4&1*tE!H~5
B&Q
vx0r1   c                     t        g d      }t        j                  t        d      5  t        j
                  |d<   d d d        y # 1 sw Y   y xY w)Nr   r   r   r   )r   r~   r   r   r*   r+   )r-   r?   s     r/   test_setitem_nan_with_boolz1TestSetitemBooleanMask.test_setitem_nan_with_boolt  s=    +,]]9O< 	F1I	 	 	s   AAc                 @   t        g dd      }t        j                  g dt        j                        }t        j                  g d      }|j	                         }t        j                  t        d      5  t        |      ||<   d d d        t        j                  t        d      5  |j                  ||d	       d d d        |j                  | t        |            }t        g d
      }t        j                  ||       y # 1 sw Y   xY w# 1 sw Y   UxY w)NrC   int8r_   )      r   r   r   Tinplace)r   r6   r   )r   r*   r   r   r:   r~   r   r   r   wherer<   r=   )r-   re   altr   rK   resr@   s          r/   !test_setitem_mask_smallint_upcastz8TestSetitemBooleanMask.test_setitem_mask_smallint_upcastz  s    iv.hh(9xx+,iik]]9O< 	$sCI	$ ]]9O< 	.HHT3H-	. iivc{+.)
sH-	$ 	$	. 	.s   9D+DDDc                    t        g dd      }t        g dt        j                        }t        j                  g d      }|j	                         }|||<   t        g dd      }t        j                  ||       |j	                         }|j                  ||d       t        j                  ||       |j	                         }|j                  | |      }t        j                  ||d	
       y )NrC   uint8r_   )   r      r   )r   r6   r   Tr   F)check_dtype)	r   r*   r   r   r:   r<   r=   r   r   )	r-   re   r   r   rK   r@   r   ser3r   s	            r/   $test_setitem_mask_smallint_no_upcastz;TestSetitemBooleanMask.test_setitem_mask_smallint_no_upcast  s     iw/%RXX6xx+,iikD	-w7
sH-yy{		$T	*
tX. yy{jj$$
sH%@r1   N)r{   r|   r}   r   r   r   r   r   r   r   r~   r   r   r   r*   r   r   r   r   r   r   r   r   r   r1   r/   r   r     so    .	.= %	/ [[VdBHHf%=>. ?.. 1."Ar1   r   c                       e Zd Zd Zd Zy)TestSetitemViewCopySemanticsc                 6   t        ddd      }|d   }t        |      }|j                  |usJ |j                  j                  j                  |j
                  j                  j                  u sJ |j                  dk(  sJ t        |j                  d<   |j                  j                  J |j                  |usJ |j                  j                  j                  |j
                  j                  j                  usJ |d   |k(  sJ |j                  dk(  sJ y )N20130101r%   rO   r#   rP   r4   D)	r   r   _values_ndarraybase_datarZ   r   rR   r-   dtir   rK   s       r/   ,test_setitem_invalidates_datetime_index_freqzITestSetitemViewCopySemantics.test_setitem_invalidates_datetime_index_freq  s     Q<@VSk{{#%%%{{##((CII,>,>,C,CCCCxx3{{''' {{#%%%{{##((		0B0B0G0GGGG1v||xx3r1   c                 *   t        ddd      }|d   }t        |      }|j                  |usJ |j                  j                  j                  |j
                  j                  j                  u sJ |j                  j                  d   j                  j                  j                  |j
                  j                  j                  u sJ |j                  j                  d   j                  |usJ t        |d d d<   |d   t        u sJ |d   |k(  sJ y )NrW   r!   
US/Pacificr  r   r%   )
r   r   r  r  r  r  _mgrblocksrw   r   r  s       r/   'test_dt64tz_setitem_does_not_mutate_dtizDTestSetitemViewCopySemantics.test_dt64tz_setitem_does_not_mutate_dti  s    rlCVSk{{#%%%{{##((CII,>,>,C,CCCCxxq!((1166#)):L:L:Q:QQQQxxq!((333CaC1v}}1v||r1   N)r{   r|   r}   r	  r  r   r1   r/   r   r     s    &r1   r   c                       e Zd Zd Zd Zy)TestSetitemCallablec                     t        g dt        d            }d|d <   t        g dt        d            }t        j                  ||       y )Nr4   r6   r%   r'   ABCDr7   r   c                      y)NAr   rt   s    r/   <lambda>z?TestSetitemCallable.test_setitem_callable_key.<locals>.<lambda>  s    r1   )r   r6   r%   r'   )r   r   r<   r=   r   s      r/   test_setitem_callable_keyz-TestSetitemCallable.test_setitem_callable_key  s<    \f6M-tF|<
sH-r1   c                     d }t        g dt              }|||dk  <   t        dd|dg      }t        j                  ||       y )Nc                     | dz   S Nr4   r   r  s    r/   r  zATestSetitemCallable.test_setitem_callable_other.<locals>.<lambda>  s
    A r1   )r4   r6   r   r'   r_   r   r4   r6   r'   r   rH   r<   r=   )r-   incrK   r@   s       r/   test_setitem_callable_otherz/TestSetitemCallable.test_setitem_callable_other  sD     ]&1C!G1aa.)
sH-r1   N)r{   r|   r}   r  r  r   r1   r/   r  r    s    .	.r1   r  c                      e Zd Zd Zd Zd Zej                  j                  d e	d       e	d      j                          e	d      j                         g      d        Zd Zd Zd	 Zej                  j                  d
eeddddfeeddddfeej$                  ddddfeej$                  ddddfeeddddfeeddddfej$                  eddddfej$                  eddddfej$                  eddddfej$                  eddddfej$                  ej$                  ddddfej$                  ej$                  ddddfg      d        Zd Zy)TestSetitemWithExpansionc                     t        d      }t        t              }d||<   t        d|r|gnt        |gt                    }t	        j
                  ||       y )Nra   r_   /   r7   )r   r   rH   r   r<   r=   )r-   using_infer_stringr   r.   r@   s        r/   test_setitem_empty_seriesz2TestSetitemWithExpansion.test_setitem_empty_series  sP    %f%s1seucU&7Q
 	vx0r1   c                 <   t        g dd      }t        g |t              }t        d      }d||<   t        dt        |gd      j	                  d            }t        j                  ||       |j                  j                  |j                  j                  k(  sJ y )	Nr  rm   )rZ   rG   rF   ra   r"  r   r"   )	r   r   rH   r   as_unitr<   r=   r8   rZ   )r-   r  r.   r   r@   s        r/   6test_setitem_empty_series_datetimeindex_preserves_freqzOTestSetitemWithExpansion.test_setitem_empty_series_datetimeindex_preserves_freq  s    BS9#V4%s"mSE<DDTJK
vx0||  HNN$7$7777r1   c                     t        d      }t        |gdgt              }|d   }t        g t              }d|d<   ||d<   |d   }||k(  sJ y )Nl    Pi5 	timestamprF   r_   g     r@anything)r   r   rH   )r-   r)  r.   r@   r?   s        r/   3test_setitem_empty_series_timestamp_preserves_dtypezLTestSetitemWithExpansion.test_setitem_empty_series_timestamp_preserves_dtype  sa    12	K=G+&&)"z'{$!!!r1   td9 daysc                    |r?t        |t              s/|j                  t        j                  j                  d             t        d|gddgt              }t        dg      }||d<   t        j                  ||       t        |d   t              sJ t        dg      }t        d      |j                  d<   t        j                  ||       t        |d   t              sJ y )Nzinferred as stringreasonrt   r   r,  rF   r-  )rp   r   applymarkerr~   r   xfailr   rH   r<   r=   r;   )r-   r,  r#  requestr@   rK   s         r/   #test_append_timedelta_does_not_castz<TestSetitemWithExpansion.test_append_timedelta_does_not_cast  s     jY&? 1 19M 1 NO3)At9FCcUmD	
sH-#d)Y///cUm!(+
sH-#d)Y///r1   c                     t        t              }t        d      |d<   d|d<   d|d<   t        t        d      ddgg d	      }t        j                  ||       y )
Nr_   rW   r3         @r5   r   r   r   r7   )r   rH   r   r<   r=   r   s      r/   *test_setitem_with_expansion_type_promotionzCTestSetitemWithExpansion.test_setitem_with_expansion_type_promotion  sT    6"\*CCC9\2C?W
sH-r1   c                     |j                         }d|j                  vsJ d|d<   t        dgdgd      }t        ||g      }t	        j
                  ||       y )Nfoobarr4   r.   )r8   name)r:   r8   r   r   r<   r=   )r-   r   rK   appr@   s        r/   test_setitem_not_containedz3TestSetitemWithExpansion.test_setitem_not_contained  s\      "syy(((HaS
:=#./
sH-r1   c                 v    t        ddg|      }d|d<   t        g d|      }t        j                  ||       y )Nr4   r6   r_   r!   )r4   r6   r!   r   )r-   r   rK   r@   s       r/   test_setitem_keep_precisionz4TestSetitemWithExpansion.test_setitem_keep_precision)  s9    aV#78A*,@A
sH-r1   z3na, target_na, dtype, target_dtype, indexer, raisesInt64r4   Fr6   r   r   rH   TFloat64c                     t        ddg|      }|r*t        j                  t        d      5  |||<   d d d        y |||<   |dk(  rd|gndd|g}t        ||      }	t	        j
                  ||	       y # 1 sw Y   y xY w)Nr4   r6   r_   r   r   )r   r~   r   r   r<   r=   )
r-   na	target_narG   target_dtyperx   r   rK   expected_valuesr@   s
             r/   test_setitem_enlarge_with_naz5TestSetitemWithExpansion.test_setitem_enlarge_with_na0  s    * aV5)y@ "!G" " CL071q)n1aBSOo\BH""31" "s   A33A<c                     t        ddg      }||d<   |rt        |t              sdnt        }t        dd|gg d|      }t	        j
                  ||       |r|d   t        j                  u  y |d   |u sJ y )Nr3   r5   r%   r   )r   r4   r%   rF   )r   rp   r   rH   r<   r=   r*   r+   )r-   nulls_fixturer#  rK   rG   r@   s         r/   $test_setitem_enlargement_object_nonez=TestSetitemWithExpansion.test_setitem_enlargement_object_noneO  s    c3Z A "*]G*L  	
 3]39ER
sH-Fbffq6]***r1   N)r{   r|   r}   r$  r'  r+  r~   r   r   r   to_timedelta64to_pytimedeltar4  r7  r<  r>  r	   r*   r+   r   rF  rI  r   r1   r/   r   r     s   18
" [[hh..0h..0	
00$... [[=Wgq%0Wgq%0)Q6)Q6#w!T2#w!U3VVR'1e4VVR'1e4VVRIq%8VVRIq%8VVRVVWiE:VVRVVWiE:	
"2#"2+r1   r   c                     t        j                  d      } d| j                  _        t	        | d      }|j
                  D ]7  }d}t        j                  t        |      5  d||<   d d d        | |   dk(  r7J  y # 1 sw Y   xY w)Nr&   Fr:   #assignment destination is read-onlyr   r4   r   )	r*   zerosflags	writeabler   r8   r~   r   
ValueError)r   r.   nr   s       r/   .test_setitem_scalar_into_readonly_backing_datarT  `  s     HHQKE!EKKE&F\\ 3]]:S1 	F1I	 Qx1}}	 	s    A;;B	c                      t        j                  d      } d| j                  _        t	        | d      }d}t        j                  t        |      5  d|dd d d d         | j                         rJ y # 1 sw Y   xY w)Nr&   FrM  rN  r   r4   r%   )	r*   rO  rP  rQ  r   r~   r   rR  r   )r   r.   r   s      r/   -test_setitem_slice_into_readonly_backing_datarV  o  sp     HHQKE!EKKE&F
/C	z	- q uyy{?{ s   A33A<c                  "   t        t        ddgddg            } | j                         }d|d d  t        t        ddgddg            }t        j                  ||       | j                         }d|d<   t        t        ddgddg            }t        j                  ||       | j                         }d||j
                  dkD  <   t        t        ddgddg            }t        j                  ||       | j                         }d|ddg<   t        t        ddgddg            }t        j                  ||       | j                         }dd	g|_        d|d	<   t        t        ddgddg      dd	g
      }t        j                  ||       y )Nr5   r3   
categoriesr4   r   FTrt   yr7   )r   r
   r:   r<   r=   r8   )re   rK   rf   s      r/   &test_setitem_categorical_assigning_opsr[  }  sk   +sCjc3Z@AD
))+CCF
c3ZS#J?
@C3$
))+CCF
c3ZS#J?
@C3$
))+CC		A
c3ZS#J?
@C3$
))+CC
c3ZS#J?
@C3$
))+Cc
CICH
c3ZS#J?Sz
RC3$r1   c                      t        t        g d            } t        t        dt        j                  dgg d            }t        j                  | d<   t	        j
                  | |       y )NrC   r4   r%   rX  )r   r
   r*   r+   r<   r=   )rK   rf   s     r/   !test_setitem_nan_into_categoricalr]    sI    
Y'
(C
a^	B
CCVVCF3$r1   c                       e Zd Zej                  j                  dddg      ej                  j                  dg de      d               Zd Zy	)
TestSetitemCastinguniqueTFval)r%   r6  3)idsc                     t        ddg      }|s	ddg|_        t        j                  t        d      5  | ||      d<   d d d        y # 1 sw Y   y xY w)NTFr4   r   r   )r   r8   r~   r   r   )r-   ra  rd   r`  rK   s        r/   test_setitem_non_bool_into_boolz2TestSetitemCasting.test_setitem_non_bool_into_bool  sR     dE]#ACI]]9O< 	&"%KQ	& 	& 	&s   A		Ac                     t        g d      }|j                  }t        g d      }|d d |d d |j                  |u sJ t        j                  t
        d      5  |dd  |dd  d d d        y # 1 sw Y   y xY w)Nr   )TFNr6   r   r   r4   )r   r  r   r~   r   r   )r-   rK   rw   rS   s       r/   &test_setitem_boolean_array_into_npboolz9TestSetitemCasting.test_setitem_boolean_array_into_npbool  sx    ()'(bq'BQ{{f$$$]]9O< 	!"gCG	 	 	s   	A,,A5N)	r{   r|   r}   r~   r   r   typere  rg  r   r1   r/   r_  r_    sL    [[Xe}5[[UMt<& = 6&
r1   r_  c                   d    e Zd ZdZej
                  d        Zd Zd Zd Z	d Z
d Zd Zd	 Zd
 Zy)SetitemCastingEquivalentsz
    Check each of several methods that _should_ be equivalent to `obj[key] = val`

    We assume that
        - obj.index is the default Index(range(len(obj)))
        - the setitem does not expand the obj
    c                 4    |j                   |j                   k(  S )zF
        Whether we expect the setting to be in-place or not.
        r_   )r-   objr@   s      r/   
is_inplacez$SetitemCastingEquivalents.is_inplace  s    
 ~~**r1   c                     |}|j                         }|j                  }| ||      |<   t        j                  ||       | j	                  ||||       y ro   )r:   r  r<   r=   _check_inplace)	r-   rl  r   r@   ra  rx   rm  re   rS   s	            r/   check_indexerz'SetitemCastingEquivalents.check_indexer  sM    hhjkkS
sH-Jc37r1   c                     |y |rN|j                   j                  dv r$|j                  |j                  j                  u sJ |j                  |u sJ y y t	        j
                  ||j                         y )N)mM)rG   kindr  r  r<   assert_equal)r-   rm  re   rS   rl  s        r/   ro  z(SetitemCastingEquivalents._check_inplace  sg    yy~~+ ||s{{';';;;;{{c))) <
 OOC.r1   c           	         t        |t              st        j                  d       |rt        j                  t
        d      }nt        j                         }|5  | j                  ||||||       d d d        |t        j                  u r0|5  | j                  ||||t        j                  |       d d d        nA|t        j                  u r/|5  | j                  ||||t        j                  |       d d d        t        ||dz         }	|5  | j                  ||	||||       d d d        |t        j                  ur0t        ||dz         }
|5  | j                  ||
||||       d d d        |g}|5  | j                  ||||||       d d d        t!        j"                  |      }|5  | j                  ||||||       d d d        d |fD        }|5  | j                  ||||||       d d d        y # 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   x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)NzNot relevant for int keyr   r   r4   c              3       K   | ]  }|  y wro   r   rr   s     r/   ru   z9SetitemCastingEquivalents.test_int_key.<locals>.<genexpr>  s     #!#   )rp   intr~   skipr   r   
contextlibnullcontextrp  r<   r;   r   rR   iatr   slicer*   r   )r-   rl  r   r@   r   ra  rd   rm  ctxrngslcilkeyindkeygenkeys                 r/   test_int_keyz&SetitemCastingEquivalents.test_int_key  s^   #s#KK23--	AC((*C 	QsC3ZP	Q "&&  O""3XsBEE:NO OBGG# P""3XsBFFJOP Cq! 	QsC3ZP	Q bff$S1W%C U""3XsKTU  	SsE8S+zR	S % 	TsFHc;
S	T $cU# 	TsFHc;
S	T 	T;	Q 	QO OP P	Q 	QU U	S 	S	T 	T	T 	Ts`   G4%H%HHH'3H3)H?I4G>HHH$'H03H<?IIc           	         t        |t              st        j                  d       |rt        j                  t
        d      }nt        j                         }|t        j                  ur!|5  | j                  ||||||       d d d        t        t        t        |                  |   }	|5  | j                  ||	||||       d d d        t        j                  |	      }
|5  | j                  ||
||||       d d d        d |
D        }|5  | j                  ||||||       d d d        y # 1 sw Y   xY w# 1 sw Y   vxY w# 1 sw Y   LxY w# 1 sw Y   y xY w)NzNot relevant for slice keyr   r   c              3       K   | ]  }|  y wro   r   rr   s     r/   ru   z;SetitemCastingEquivalents.test_slice_key.<locals>.<genexpr>!  s     $!$rx  )rp   r~  r~   rz  r   r   r{  r|  r<   r;   rp  r   r   lenr*   r   )r-   rl  r   r@   r   ra  rd   rm  r  r  r  r  s               r/   test_slice_keyz(SetitemCastingEquivalents.test_slice_key  sP   #u%KK45--	AC((*Cbff$ U""3XsKTU U3s8_%c* 	SsE8S+zR	S % 	TsFHc;
S	T %V$ 	TsFHc;
S	T 	TU U	S 	S	T 	T	T 	Ts0   ,D--D9#EE-D69EEEc                    t        j                  |j                  t              }d||<   |j	                         }t        |      rNt        |      |j                         k  r2d}t        j                  t        |      5  | ||      |<   d d d        y |r0t        j                  t        d      5  | ||      |<   d d d        y | ||      |<   y # 1 sw Y   y xY w# 1 sw Y   y xY w)Nr_   Tz9boolean index did not match indexed array along dimensionr   r   )r*   rO  shapeboolr:   r   r  sumr~   r   
IndexErrorr   )	r-   rl  r   r@   r   ra  rd   r   r   s	            r/   test_mask_keyz'SetitemCastingEquivalents.test_mask_key%  s    xx		.S	hhjSDHHJ!6MCz5 -),C &-y@ -),C &- - &)KT"-- -s   ?C1CCC'c                    t        j                  |j                  t              }d||<   t	        |      rQt        |      t        |      k  r:d}t        j                  t        |      5  |j                  | |       d d d        y |}	|j                         }|j                  }
|j                  | |      }|t        u r)|j                  t        k(  r|j                  t              }nM|K|j                  t        k(  r8|j                  t        k(  sJ |j                         }d ||j!                         <   t#        j$                  ||       | j'                  ||	|
|       y # 1 sw Y   y xY w)Nr_   Tz4operands could not be broadcast together with shapesr   )r*   rO  r  r  r   r  r~   r   rR  r   r:   r  r	   rG   rH   fillnaisnar<   r=   ro  )r-   rl  r   r@   r   ra  rm  r   r   re   rS   r   s               r/   test_series_wherez+SetitemCastingEquivalents.test_series_where8  s   xx		.S	SCH!4HCz5 &		4%%&hhjkkiis#"9f,r*H[SYY&0>>V+++}}H(,HX]]_%
sH-Jc37%&s   *E!!E*c                     t        j                  |j                  t              }d||<   t	        |      j                  | |      }t	        ||j                        }t        j                  ||       y Nr_   T)	r*   rO  r  r  r   r   rG   r<   assert_index_equal)	r-   rl  r   r@   r   ra  r   r   expected_idxs	            r/   test_index_wherez*SetitemCastingEquivalents.test_index_whereS  sW    xx		.S	Cjuc*XX^^<
c<0r1   c                     t        j                  |j                  t              }d||<   t	        |      j                  ||      }t        j                  |t	        ||j                               y r  )	r*   rO  r  r  r   putmaskr<   r  rG   )r-   rl  r   r@   r   ra  r   r   s           r/   test_index_putmaskz,SetitemCastingEquivalents.test_index_putmask[  sP    xx		.S	Cj  s+
c5#HIr1   N)r{   r|   r}   __doc__r~   fixturerm  rp  ro  r  r  r  r  r  r  r   r1   r/   rj  rj    sK     ^^+ +8/&TPT2)&861Jr1   rj  zobj,expected,key,raisesr4   r&   r6   r%   r'   zinterval[float64]r_   Tinterval_int_na_value)id)	r6   r%   r'   r&   r)   r(   r   r   r!   r(   r   Fint_series_slice_key_step)TTFFbool_series_slice_key_stepr!   r)   r   int_series_slice_keyrC   int_series_int_keybool_series_int_key_change_allbool_series_int_keyc                   z    e Zd Z ej                  ej                   ej                  d      deg      d        Z	y)TestSetitemCastingEquivalentsNaNNparamsc                     |j                   S )z
        NA values that should generally be valid_na for *all* dtypes.

        Include both python float NaN and np.float64; only np.float64 has a
        `dtype` attribute.
        paramr-   r3  s     r/   ra  z!TestSetitemCastingEquivalents.val  s     }}r1   )
r{   r|   r}   r~   r  r*   r+   r   r	   ra  r   r1   r/   r  r  c  s;    D V^^BFFJBJJu$5tR@A Br1   r  c                       e Zd Zej                  d        Z ej                  eeeg      d        Z	ej                  d        Z
ej                  d        Zej                  d        Zej                  d        Zy)	!TestSetitemTimedelta64IntoNumericc                 2    t        j                  dd      }|S )Nr'   r"   )r*   timedelta64)r-   r,  s     r/   ra  z%TestSetitemTimedelta64IntoNumeric.val  s    ^^At$	r1   r  c                     |j                   S ro   r  r  s     r/   rG   z'TestSetitemTimedelta64IntoNumeric.dtype      }}r1   c                 d    t        j                  d      j                  |      }t        |      }|S )Nr&   )r*   r   astyper   r-   rG   rS   rK   s       r/   rl  z%TestSetitemTimedelta64IntoNumeric.obj  s(    iil!!%(Sk
r1   c                     t        j                  d      j                  |      }t        |      }|j                  t              }t        j
                  dd      |j                  d<   |S )Nr&   r'   r"   r   )r*   r   r  r   rH   r  rR   r  s       r/   r@   z*TestSetitemTimedelta64IntoNumeric.expected  sN    iil!!%(Skjj nnQ-
r1   c                      yr   r   r-   s    r/   r   z%TestSetitemTimedelta64IntoNumeric.key      r1   c                      yNTr   r  s    r/   r   z(TestSetitemTimedelta64IntoNumeric.raises      r1   N)r{   r|   r}   r~   r  ra  complexry  floatrG   rl  r@   r   r   r   r1   r/   r  r    s     ^^ 
 V^^GS%01 2 ^^ 
 ^^  ^^  ^^ r1   r  c                   B   e Zd Z ej                  ddg      d        Zej                  d        Zej                  d        Zej                  d        Zej                  d        Z	 ej                  d	e
ej                  g      d
        Zej                  d        Zy	)TestSetitemDT64IntoIntrm   m8[ns]r  c                     |j                   S ro   r  r  s     r/   rG   zTestSetitemDT64IntoInt.dtype  r  r1   c                 F    t        j                  dd      }|dk(  r||z
  }|S )Nz2021-01-18 13:25:00r"   r  )r*   rq   )r-   rG   ra  s      r/   scalarzTestSetitemDT64IntoInt.scalar  s)    mm148H)C
r1   c                 b    t        ||dgt              }t        |d   t        |            sJ |S )Nr%   r_   r   )r   rH   rp   rh  )r-   r  r@   s      r/   r@   zTestSetitemDT64IntoInt.expected  s2    661-V<(1+tF|444r1   c                     t        g d      S )NrC   r   r  s    r/   rl  zTestSetitemDT64IntoInt.obj  s    i  r1   c                     t        d d      S )Nr   r~  r  s    r/   r   zTestSetitemDT64IntoInt.key  s    T2r1   Nc                 6    |j                   }||S  |||g      S ro   r  )r-   r  r3  boxs       r/   ra  zTestSetitemDT64IntoInt.val  s%    mm;MFF#$$r1   c                      yr  r   r  s    r/   r   zTestSetitemDT64IntoInt.raises  r  r1   )r{   r|   r}   r~   r  rG   r  r@   rl  r   r   r*   r   ra  r   r   r1   r/   r  r    s     V^^Hh/0 1 ^^  ^^ 
 ^^! ! ^^  V^^D$12% 3% ^^ r1   r  c                      e Zd Zej                  d        Zej                  d        Z ej                  d edd      g      d        Z ej                  de	j                  g      d        Zej                  d	        Zy)
TestSetitemNAPeriodDtypec                     t        t        ddd            }t        j                  |j                  j                  d      |<   ||   t        u st        d ||   D              sJ |S )N
2000-01-01r!   r  r#   rZ   i8c              3   ,   K   | ]  }|t         u   y wro   )r   rr   s     r/   ru   z4TestSetitemNAPeriodDtype.expected.<locals>.<genexpr>  s     %A1a3h%As   )r   r   r   _valuer  viewrv   )r-   r   rf   s      r/   r@   z!TestSetitemNAPeriodDtype.expected   sY    \,EF&)jjs#3x3#%AC%A"AAA
r1   c                 0    t        t        ddd            S )Nr  r!   r  r  )r   r   r  s    r/   rl  zTestSetitemNAPeriodDtype.obj  s    l<#FGGr1   r%   r&   r  c                     |j                   S ro   r  r  s     r/   r   zTestSetitemNAPeriodDtype.key  r  r1   Nc                     |j                   S ro   r  r  s     r/   ra  zTestSetitemNAPeriodDtype.val  r  r1   c                      yNFr   r  s    r/   r   zTestSetitemNAPeriodDtype.raises      r1   )r{   r|   r}   r~   r  r@   rl  r~  r   r*   r+   ra  r   r   r1   r/   r  r    s     ^^  ^^H H V^^AuQ{+, - V^^D"&&>* + ^^ r1   r  c            
          e Zd Z ej                  g d      d        Zej                  d        Z ej                  dej                  e	 ej                  dd       ej                  dd      g      d        Zej                  d	        Zej                  d
        Zej                  d        Zej                  d        Zy)TestSetitemNADatetimeLikeDtype)r  rm   zdatetime64[ns, UTC]zdatetime64[ns, US/Central]r  c                     |j                   S ro   r  r  s     r/   rG   z$TestSetitemNADatetimeLikeDtype.dtype  s     }}r1   c                     t        dd      j                  }t        ||      }|j                  |k(  sJ t	        |      S )NrW   r%   r#   r_   )r   asi8r   rG   r   )r-   rG   i8valsr>   s       r/   rl  z"TestSetitemNADatetimeLikeDtype.obj$  s<    L!499F%(yyE!!!c{r1   Nr   r"   c                     |j                   S ro   r  r  s     r/   ra  z"TestSetitemNADatetimeLikeDtype.val+  s     }}r1   c                 |    |t         u xs3 |d u xs- |t        j                  u xs |j                  |j                  k(  S ro   )r   r*   r+   rG   )r-   ra  rl  s      r/   rm  z)TestSetitemNADatetimeLikeDtype.is_inplace7  s6    
 czSSD[SC266MSSYY#))=SSr1   c                 f    |r|j                   nt        }t        |gt        |dd        |      }|S )Nr4   r_   )rG   rH   r   r   )r-   rl  ra  rm  rG   r@   s         r/   r@   z'TestSetitemNADatetimeLikeDtype.expected>  s2    '		V3/c!"g/u=r1   c                      yr   r   r  s    r/   r   z"TestSetitemNADatetimeLikeDtype.keyD  r  r1   c                     |rdS dS )NFTr   )r-   rm  s     r/   r   z%TestSetitemNADatetimeLikeDtype.raisesH  s    "u,,r1   )r{   r|   r}   r~   r  rG   rl  r*   r+   r   r  rq   ra  rm  r@   r   r   r   r1   r/   r  r    s     V^^X ^^  V^^FFBNN5$'BMM%&
 ^^T T ^^ 
 ^^  ^^- -r1   r  c                       e Zd Zej                  d        Zej                  d        Zej                  d        Zej                  d        Zej                  d        Z	y)$TestSetitemMismatchedTZCastsToObjectc                 0    t        t        ddd            S )N2000r6   
US/Centralr  r   r   r  s    r/   rl  z(TestSetitemMismatchedTZCastsToObject.objO  s    j|DEEr1   c                     t        dd      S )Nr  rO   r]   )r   r  s    r/   ra  z(TestSetitemMismatchedTZCastsToObject.valS  s    L11r1   c                      yr   r   r  s    r/   r   z(TestSetitemMismatchedTZCastsToObject.keyW  r  r1   c                 l    t        |j                  d      t        dd      g|j                        }|S )Nr  z2000-01-02 00:00:00-06:00r]   r_   )r   
tz_convertr   rG   )r-   rl  ra  r@   s       r/   r@   z-TestSetitemMismatchedTZCastsToObject.expected[  s:     |,5,G ))
 r1   c                      yr  r   r  s    r/   r   z+TestSetitemMismatchedTZCastsToObject.raisesh  r  r1   N
r{   r|   r}   r~   r  rl  ra  r   r@   r   r   r1   r/   r  r  M  sz    ^^F F ^^2 2 ^^  ^^
 
 ^^ r1   r  zobj,expected)      ?       @r6  r  r6  i  )r   r   baz)Nr   r  c                   x    e Zd Zej                  d        Zej                  d        Zej                  d        Zy)TestSeriesNoneCoercionc                      yr   r   r  s    r/   r   zTestSeriesNoneCoercion.key}  r  r1   c                      y ro   r   r  s    r/   ra  zTestSeriesNoneCoercion.val  r  r1   c                      yr  r   r  s    r/   r   zTestSeriesNoneCoercion.raises  r  r1   N)r{   r|   r}   r~   r  r   ra  r   r   r1   r/   r  r  m  sJ      ^^  ^^  ^^ r1   r  c                       e Zd Zd Zej
                  d        Zej
                  d        Zej
                  d        Zej
                  d        Z	ej
                  d        Z
y)-TestSetitemFloatIntervalWithIntIntervalValuesc                     t        j                  t        d            }t        |      }t	        dd      }t        j                  t        d      5  ||d<   d d d        y # 1 sw Y   y xY w)Nr'         ?      ?r   r   r   )r   from_breaksr   r   r   r~   r   r   )r-   r>   rl  ra  s       r/   test_setitem_examplezBTestSetitemFloatIntervalWithIntIntervalValues.test_setitem_example  sW    ''a1SksC ]]9O< 	CF	 	 	s   A  A)c                 T    t        j                  t        d            }t        |      S )zE
        Fixture to create a Series [(0, 1], (1, 2], (2, 3]]
        r'   )r   r  r   r   )r-   r>   s     r/   rl  z1TestSetitemFloatIntervalWithIntIntervalValues.obj  s"    
 ''a1c{r1   c                     t        dd      S )z7
        Fixture to get an interval (0.5, 1.5]
        r  r  )r   r  s    r/   ra  z1TestSetitemFloatIntervalWithIntIntervalValues.val  s    
 S!!r1   c                      y)z(
        Fixture to get a key 0
        r   r   r  s    r/   r   z1TestSetitemFloatIntervalWithIntIntervalValues.key  s    
 r1   c                 T    |gt        |dd       }t        |d      }t        |      S )zN
        Fixture to get a Series [(0.5, 1.5], (1.0, 2.0], (2.0, 3.0]]
        r4   NzInterval[float64]r_   )r   r   r   )r-   rl  ra  datar>   s        r/   r@   z6TestSetitemFloatIntervalWithIntIntervalValues.expected  s2    
 $d3qr7m$D(;<c{r1   c                      y)z=
        Fixture to enable raising pytest exceptions
        Tr   r  s    r/   r   z4TestSetitemFloatIntervalWithIntIntervalValues.raises  s    
 r1   N)r{   r|   r}   r  r~   r  rl  ra  r   r@   r   r   r1   r/   r  r    s     ^^  ^^" " ^^  ^^  ^^ r1   r  c                       e Zd Zej                  d        Zej                  d        Zej                  d        Zej                  d        Zej                  d        Z	y)!TestSetitemRangeIntoIntegerSeriesc                 \    t        j                  |      }t        t        d      |      }|S Nr&   r_   )r*   rG   r   r   )r-   any_int_numpy_dtyperG   rK   s       r/   rl  z%TestSetitemRangeIntoIntegerSeries.obj  s&    ,-U1XU+
r1   c                     t        dd      S )Nr6   r'   )r   r  s    r/   ra  z%TestSetitemRangeIntoIntegerSeries.val      Q{r1   c                     t        dd      S Nr   r6   r  r  s    r/   r   z%TestSetitemRangeIntoIntegerSeries.key  r  r1   c                 N    t        j                  |      }t        g d|      }|S )N)r6   r%   r6   r%   r'   r_   )r*   rG   r   )r-   r  rG   rf   s       r/   r@   z*TestSetitemRangeIntoIntegerSeries.expected  s"    ,-_E2
r1   c                      yr  r   r  s    r/   r   z(TestSetitemRangeIntoIntegerSeries.raises  r  r1   Nr  r   r1   r/   r  r    sz     ^^ 
 ^^  ^^  ^^ 
 ^^ r1   r  zval, raisesg      @g      @A   c                   x    e Zd Zej                  d        Zej                  d        Zej                  d        Zy)(TestSetitemFloatNDarrayIntoIntegerSeriesc                 J    t        t        d      t        j                        S r  )r   r   r*   r   r  s    r/   rl  z,TestSetitemFloatNDarrayIntoIntegerSeries.obj  s    eAhbhh//r1   c                     t        dd      S r  r  r  s    r/   r   z,TestSetitemFloatNDarrayIntoIntegerSeries.key  r  r1   c                     |d   dk(  rt         j                  }nt         j                  }t        j                  t	        d      |      }||d d t        |      S )Nr   r6   r&   r_   )r*   r   r   r   r   r   )r-   ra  rG   
res_valuess       r/   r@   z1TestSetitemFloatNDarrayIntoIntegerSeries.expected  sI    q6Q;HHEJJEXXeAhe4

2Aj!!r1   N)r{   r|   r}   r~   r  rl  r   r@   r   r1   r/   r  r    sJ     ^^0 0 ^^  ^^" "r1   r  ra     c                       e Zd Zej                  d        Zej                  d        Zej                  d        Zej                  d        Zy)'TestSetitemIntoIntegerSeriesNeedsUpcastc                 <    t        g dt        j                        S )NrC   r_   r   r*   r   r  s    r/   rl  z+TestSetitemIntoIntegerSeriesNeedsUpcast.obj  s    irww//r1   c                      yr  r   r  s    r/   r   z+TestSetitemIntoIntegerSeriesNeedsUpcast.key   r  r1   c                 <    t        g dt        j                        S )N)r4   r  r%   r_   )r   r*   int16r  s    r/   r@   z0TestSetitemIntoIntegerSeriesNeedsUpcast.expected  s    k22r1   c                      yr  r   r  s    r/   r   z.TestSetitemIntoIntegerSeriesNeedsUpcast.raises  r  r1   N	r{   r|   r}   r~   r  rl  r   r@   r   r   r1   r/   r  r    s`    ^^0 0 ^^  ^^3 3 ^^ r1   r  )g      Bg    Bl            c                       e Zd Zej                  d        Zej                  d        Zej                  d        Zej                  d        Zy)TestSmallIntegerSetitemUpcastc                      t        g dd      S )NrC   i4r_   r  r  s    r/   rl  z!TestSmallIntegerSetitemUpcast.obj  s    it,,r1   c                      yr   r   r  s    r/   r   z!TestSmallIntegerSetitemUpcast.key  r  r1   c                 <    |dz  dk7  rd}nd}t        |ddg|      S )Nr4   r   f8r  r6   r%   r_   r  )r-   ra  rG   s      r/   r@   z&TestSmallIntegerSetitemUpcast.expected  s*    7a<EEsAqk//r1   c                      yr  r   r  s    r/   r   z$TestSmallIntegerSetitemUpcast.raises   r  r1   Nr&  r   r1   r/   r(  r(    sb     ^^- - ^^  ^^0 0 ^^ r1   r(  c                   T    e Zd Zej                  d        Zej                  d        Zy)CoercionTestc                      yr  r   r  s    r/   r   zCoercionTest.key(  r  r1   c                 <    t        |      }|||<   t        ||      S )Nr_   )r   r   )r-   rl  r   ra  	exp_dtyperg   s         r/   r@   zCoercionTest.expected,  s!    CyS	d),,r1   N)r{   r|   r}   r~   r  r   r@   r   r1   r/   r0  r0  %  s2     ^^  ^^- -r1   r0  zval,exp_dtype,raisesc                   0    e Zd Zej                  d        Zy)TestCoercionInt8c                 <    t        g dt        j                        S )Nr  r_   r!  r  s    r/   rl  zTestCoercionInt8.obj9  s    l"''22r1   Nr{   r|   r}   r~   r  rl  r   r1   r/   r5  r5  3  s     ^^3 3r1   r5  )r4   皙?      ?      ?Tr3  c                   T    e Zd Zej                  d        Zej                  d        Zy)TestCoercionObjectc                 (    t        g dt              S )Nr3   r5   r   dr_   )r   rH   r  s    r/   rl  zTestCoercionObject.objB  s    *&99r1   c                      yr  r   r  s    r/   r   zTestCoercionObject.raisesF  r  r1   Nr{   r|   r}   r~   r  rl  r   r   r1   r/   r;  r;  >  s2     ^^: : ^^ r1   r;  ena_valuec                   0    e Zd Zej                  d        Zy)TestCoercionStringc                 P    t        g dt        t        j                              S )Nr=  rB  r_   )r   r   r*   r+   r  s    r/   rl  zTestCoercionString.objS  s    *+rvv2NOOr1   Nr7  r   r1   r/   rE  rE  K  s     ^^P Pr1   rE  r8  r9  c                   0    e Zd Zej                  d        Zy)TestCoercionComplexc                     t        g d      S )N)r9  y       @       @y      @      @y      @      @r  r  s    r/   rl  zTestCoercionComplex.objc  s    677r1   Nr7  r   r1   r/   rH  rH  X  s     ^^8 8r1   rH  rb  c                   0    e Zd Zej                  d        Zy)TestCoercionBoolc                 (    t        g dt              S )N)TFTFr_   )r   r  r  s    r/   rl  zTestCoercionBool.obju  s    0==r1   Nr7  r   r1   r/   rK  rK  h  s     ^^> >r1   rK  c                   0    e Zd Zej                  d        Zy)TestCoercionInt64c                     t        g d      S )Nr  r  r  s    r/   rl  zTestCoercionInt64.obj  s    l##r1   Nr7  r   r1   r/   rN  rN  z  s     ^^$ $r1   rN  c                   0    e Zd Zej                  d        Zy)TestCoercionFloat64c                     t        g d      S )Nr8  g@gffffff
@g@r  r  s    r/   rl  zTestCoercionFloat64.obj  s    *++r1   Nr7  r   r1   r/   rQ  rQ    s     ^^, ,r1   rQ  zbnp.float32(1.1) ends up as 1.100000023841858, so np_can_hold_element raises and we cast to float64r/  )marksc                   B     e Zd Zej                  d        Z fdZ xZS )TestCoercionFloat32c                 <    t        g dt        j                        S )NrS  r_   )r   r*   float32r  s    r/   rl  zTestCoercionFloat32.obj  s    *"**==r1   c           	      f    t         |   |||||||       t        |t              rt	        d      y )Nz!xfail not relevant for this test.)superr  rp   r  AssertionError)	r-   rl  r   r@   r   ra  rd   rm  	__class__s	           r/   r  z"TestCoercionFloat32.test_slice_key  s7    sC63ZXc5! !DEE "r1   )r{   r|   r}   r~   r  rl  r  __classcell__)r\  s   @r/   rV  rV    s'    6 ^^> >F Fr1   rV  )zM8[ms]M8[ms, UTC]m8[ms]c                   x    e Zd Zej                  d        Zej                  d        Zej                  d        Zy) TestCoercionDatetime64HigherResoc                     t        dddd      }|dk(  r.|t        d      j                  d      z
  }|j                  dk(  sJ |d	k(  r|j	                  d
      }t        |      S )Nr`   r  r'   srZ   r#   r$   r_  
1970-01-01zm8[s]r^  rU   )r   r   r&  rG   tz_localizer   )r-   r3  r>   s      r/   rl  z$TestCoercionDatetime64HigherReso.obj  sf    CE 	,/77<<C99'''-'//%(Cc{r1   c                     t        d      j                  d      }|dk(  r|t        d      j                  d      z
  S |dk(  r|j                  d      S |S )Nz2011-01-02 03:04:05.678msr_  re  rc  r^  rU   )r   r&  rf  )r-   r3  r   s      r/   ra  z$TestCoercionDatetime64HigherReso.val  sW    0199$? 	,/77<<<-'>>%((	r1   c                      yr  r   r  s    r/   r   z'TestCoercionDatetime64HigherReso.raises  r  r1   N)r{   r|   r}   r~   r  rl  ra  r   r   r1   r/   ra  ra    sJ     ^^  ^^  ^^ r1   ra  ra   zdatetime64[ns]rt   c                   T    e Zd Zej                  d        Zej                  d        Zy)TestCoercionDatetime64c                 2    t        t        dddd            S )Nr`   r  r'   r"   rd  r  r  s    r/   rl  zTestCoercionDatetime64.obj  s    jCNOOr1   c                      yr  r   r  s    r/   r   zTestCoercionDatetime64.raises  r  r1   Nr@  r   r1   r/   rk  rk    s4     ^^P P ^^ r1   rk  rO   r]   zdatetime64[ns, US/Eastern]r  c                   T    e Zd Zej                  d        Zej                  d        Zy)TestCoercionDatetime64TZc           	      8    d}t        t        ddd|d            S )NrO   r`   r  r'   r"   rY   r  )r-   rP   s     r/   rl  zTestCoercionDatetime64TZ.obj  s     jCrPTUVVr1   c                      yr  r   r  s    r/   r   zTestCoercionDatetime64TZ.raises  r  r1   Nr@  r   r1   r/   ro  ro    s4     ^^W W ^^ r1   ro  z12 dayztimedelta64[us]c                   T    e Zd Zej                  d        Zej                  d        Zy)TestCoercionTimedelta64c                 .    t        t        dd            S )Nz1 dayr'   r  )r   r   r  s    r/   rl  zTestCoercionTimedelta64.obj  s    ogq9::r1   c                      yr  r   r  s    r/   r   zTestCoercionTimedelta64.raises  r  r1   Nr@  r   r1   r/   rs  rs    s2     ^^; ; ^^ r1   rs  r   2016Yr   both)closedc                       e Zd Z ej                   eddd       edd      g      d        Zej                  d	        Zy
)TestPeriodIntervalCoercionrW   r%   r  r  r4   r&   r  c                 ,    t        |j                        S ro   )r   r  r  s     r/   rl  zTestPeriodIntervalCoercion.obj%  s     gmm$$r1   c                      yr  r   r  s    r/   r   z!TestPeriodIntervalCoercion.raises.  r  r1   N)	r{   r|   r}   r~   r  r   r   rl  r   r   r1   r/   r{  r{    sT     V^^qs;1a 
%% ^^ r1   r{  c                     t        g dg d      } | j                         }t        j                  t        d      5  d|j
                  d<   d d d        t        j                  t        d      5  d|j                  d<   d d d        t        j                  t        d      5  d|d<   d d d        | j                         }t        j                  t        d      5  d|j                  d<   d d d        t        j                  t        d      5  d|j                  d<   d d d        | j                  d	      }|j                         }t        j                  t        d      5  d|j
                  d
<   d d d        t        j                  t        d      5  d|j                  d
<   d d d        t        j                  t        d      5  d|j                  d<   d d d        t        j                  t        d      5  d|j                  d<   d d d        y # 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   Rx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   xY w# 1 sw Y   y xY w)Nr   r4   r6   r   r7   r   r   g@r5   r4   r  )r5   r  )r4   r   )
r   r:   r~   r   r   r   r;   r}  rR   to_frame)re   rK   orig_dfdfs       r/   
test_20643r  3  s   )?3D
))+C	y	8 s 
y	8  
y	8 C ))+C	y	8 
 
y	8  mmC G	B	y	8 h 
y	8 x 
y	8  
y	8 t 9         sk   H0H"#H/H<I	#II"	I.<I:H"H,/H9<I	II"I+.I7:Jc                  :   t        g dg d      } t        t        j                  ddgg d      }| j                         }d |j                  d<   t        j                  ||       | j                         }d |j                  d<   t        j                  ||       y )Nr  r   r7   r4   r6   r   )r   r*   r+   r:   r}  r<   r=   rR   )re   r@   rK   s      r/   test_20643_commentr  X  sv     )?3Drvvq!nO<H
))+CCGGAJ3)
))+CCHHQK3)r1   c                  T   t        g d      } t        j                  t        d      5  | | dk(  xx   dz  cc<   d d d        t        j                  t        d      5  | dxx   dz  cc<   d d d        t        j                  t        d      5  | j                  dxx   dz  cc<   d d d        t        j                  t        d      5  | j
                  dxx   dz  cc<   d d d        t        j                  t        d      5  | j                  dxx   dz  cc<   d d d        t        j                  t        d      5  | j                  dxx   dz  cc<   d d d        y # 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   xY w# 1 sw Y   wxY w# 1 sw Y   y xY w)NrC   r   r   r6   r  r4   )r   r~   r   r   r;   rR   r}  r   )rK   s    r/   
test_15413r  g  sT   

C	y	8 C1H 
y	8 A# 
y	8 
c
 
y	8 s 
y	8 
c
 
y	8 q	S	       sG   E E-E:	FF?F E*-E7:FFFF'c                  L   t        j                  d      j                  d      } t        |       }t        j                  t        j
                  t         j                        j                        }t        j                  t        d      5  ||d<   d d d        y # 1 sw Y   y xY w)Nr&   r*  r   r   r   )
r*   r   r  r   r   iinfomaxr~   r   r   rS   rK   ra  s      r/   test_32878_int_itemsizer  ~  sp    
))A,

d
#C
+C
((288BHH%))
*C	y	8 A  s   BB#c                  H   t        j                  d      j                  d      } t        |       }t        j                  t         j
                        j                  }|j                  d      }t        j                  t        d      5  ||d<   d d d        y # 1 sw Y   y xY w)Nr&   c8c16r   r   r   )
r*   r   r  r   finfor   r  r~   r   r   r  s      r/   test_32878_complex_itemsizer    sw    
))A,

d
#C
+C
((2::

"
"C
**U
C 
y	8 A  s   	BB!c                     t        g dg d      }t        j                  t        d      5  d | |      d<   d d d        y # 1 sw Y   y xY w)NrC   r   r7   r   r   testr5   )r   r~   r   r   )
indexer_alrK   s     r/   
test_37692r    s?    
/
2C	y	8 &%
3& & &s   AAc                    t         j                  t         j                  fD ]  }t        dt	        d      |      }t        j                  t        d      5  d | |      d<   d d d        t        dt	        d      t              }t        j                  t        d      5   |d      |d<   d d d         t        dt	        d      t         j                        }t        j                  d       | |      d<   |j                  t         j                  k(  sJ t        dt	        d      t         j                        }t        j                  d       | |      d<   y # 1 sw Y   xY w# 1 sw Y   QxY w)	Nr   r%   rF   r   r   Tr4   r  )
r*   r   r   r   r   r~   r   r   r  rG   )rd   rG   rK   s      r/   'test_setitem_bool_int_float_consistencyr    s!   
 **bhh' QeAhe4]]9O< 	'"&KQ	' QeAhd3]]9O< 	1XCF	 	 %("((
3C**S/KQ99    %("**
5C((1+KQ	' 	'	 	s   E E(E%	(E2	c                      t        g dg d      } d| d<   t        g dg dt              }t        j                  | |       y )	NrC   r   r7   rl   r   )r4   r6   r%   rl   r3   r5   r   r   rF   r  rK   r@   s     r/   $test_setitem_positional_with_castingr    s8    
 /
2CCFn,>fMH3)r1   c                  ~    t        g dg d      } d| d<   t        g dg d      }t        j                  | |       y )NrC   r   r7   r  r   )r4   r6   r%   r  r  r   r  s     r/   .test_setitem_positional_float_into_int_coercesr    s6    
 /
2CCFn,>?H3)r1   c                  D   t        g dg d      } | j                  j                  rJ d| d<   t        g d| j                        }t        j                  | |       d| d<   t        g dg d	      }t        j                  | |       t        j                  t        d            d d d
   }t        t        t        |            |      }|j                  t              j                  t        dg            }t        g d|      }d|d<   t        j                  ||       t        j                  | j                  ddgg      }t        t        t        |            |      }|j                         }d|j                   d<   d|d<   t        j                  ||       y )Nr  )r8   @r6  ffffff@r7   r!   r%   )r4   r6   r!   r'   r&   )r4   r6   r!   r'   r&   )r8  r  r6  r  g      @r6   r'   )r   r4   r6   r%   r'   r   r   r  Bc   )r   r8   _should_fallback_to_positionalr<   r=   r   r  r   r  r  rH   appendr   r   r   r:   r;   )	rK   r@   iir   	exp_index	expected2r   r   	expected3s	            r/   test_setitem_int_not_positionalr    sQ    %9
:Cyy7777 CFm3995H3) CF&.GHH3)		"	"59	-cc	2B%B.+D		&!((s4I);IDG4+		 	 #))c3Z!8	9B%B.+D		IIMM!DG4+r1   c                  .   t        g dg dd      } | j                  d      j                         }d|g d<   t        g dd      }t	        j
                  ||       d	| j                  g dd
f<   t        d
g di      }t	        j                  | |       y )NrC   )r'   r&   r)   )r3   r5   r5   r   )TFF)r   r&   r)   )r	  r:  r!   r3   )r!   r6   r%   )r   popr:   r   r<   r=   r;   assert_frame_equal)r  r?   r@   s      r/   test_setitem_with_bool_indexerr    s     
3	4BVVC[F#$F 93/H68,(*BFF$%#z*+H"h'r1   sizer   )TFFFFitemr  c                    t        j                  ||       }t        j                  | t              }t	        |      }|j                         dk7  r3d}t        j                  t        |      5   ||g      ||<   d d d        y  ||g      ||<   t	        t        j                  | t                    }|||<   t        j                  ||       y # 1 sw Y   y xY w)Nr_   r4   zKcannot set using a list-like indexer with a different length than the valuer   )r*   resizer   r  r   r  r~   r   rR  r<   r=   )	r  r   r  r  	selectionr	  rK   r   r@   s	            r/   7test_setitem_bool_indexer_dont_broadcast_length1_valuesr    s     		$%I99T'D
,C}}!$ 	 ]]:S1 	) $[C	N	) 	) dVI"))D67"
sH-	) 	)s   -CCc                     t        dd      } t        |       }|j                         }t        j                  dt
              }d||<   |j                  | j                  k(  sJ t        j                  ||       |j                  |dd       |j                  | j                  k(  sJ t        j                  ||       y )NrW   r%   r  r_   r   Tr   )
r   r   r:   r*   rO  r  rG   r<   r=   r   )r  rK   re   r   s       r/   (test_setitem_empty_mask_dont_upcast_dt64r    s    
\1
-C
+C88:D88AT"DCI99		!!!3%HHT5$H'99		!!!3%r1   c                      t        g dt              } t        g dt              }g d}||   | |<   t        g dt              }t        j                  | |       y )N)TTTr_   )FFF)FTFr   )r   r  r<   r=   )s1s2	conditionr@   s       r/   ,test_setitem_bool_dtype_with_boolean_indexerr  ,  sK    	"$	/B	%T	2B$IyMByM)6H2x(r1   )xr{  r   r   decimalr   numpyr*   r~   pandas.compat.numpyr   pandas.errorsr   pandas.core.dtypes.commonr   pandasr	   r
   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   pandas._testing_testingr<   pandas.tseries.offsetsr   r   r   r   r   r   r  r   rT  rV  r[  r]  r_  rj  r   r   r  r+   r~  rH   r   r  r  r  r  r  r  r  r  r  r   r  r$  r  r(  r0  int32r   r5  r;  rE  
complex128rH  r  rK  r   rN  rQ  rX  r2  r   uint32r  r  uint64rV  ra  rk  ro  rs  r{  r  r  r  r  r  r  r  r  r  r  r  r   r  r  minr   tupler  r  r  r   r1   r/   <module>r     s       . ' 2     ,  'J. J.Z. .8-1 -1`[A [A|! !H. .*B+ B+J%:% 2eJ eJP  >!Q'(!Q!Q!QH) &	
 	/0BFFArvvq"&&!RVVQGH$a *	
 	-.BFFD"&&%0?$a +	
 	9299R=!BFFBFFBFFBFFBFFAq!QJK$N%	
 	9BFFAq>"#	
 	E7OBFF86*/	
 	E4=!BFFD>0$	
k=@B	$= 	C@B	"(A "J%6 %P8 62-%> 2-j+D @  
		FBFFAq>23		 &"&&#s);"<= HT1a((4A*>qRS@TUVC$1-xa/CDE	

 
%	&/C(DE6 04M 0f(A : 	3*	u%	3*	t$BHHaeQUQY'rzz:	

"/H "
"* hbhhsm 45.G  6$  AB$=  C.-, - bhhqk277D!HBHHTNBHHd#CD3| 3	3  67vh/  0 8 	
FD	k266*E2P PP 	
BMM5!	bmmU#	&	vt	8, 88 	
FD	fd	
FD	fd		tU
>| >
> 	
BHHe	bjj$	%	vt	$ $$ 	
BJJ	bjj% 	%	vt	,, ,, 	
BJJJJ++##""D $ 			
 
%	vt	!bjj%(	1rzz5) 
8288BII&**	+RZZ>	1rzz5)	!bjj%(+4
F, 
F54
F | 2 	<	 "2E:	
FD	fd	\ 		 	<L	13OQVW	<L	13OQVW	<	 &$/	
FD		| 			 	8	/7	
FD	fdl  	E6&s+Xa6-JK vh/  0 "J*.&&0	*	*,D( q!-
/$H 
S"&&("((5/--xrxx/B/BC 4 78. 9 ..8&)r1   