
    bMhQ                     `    d dl Zd dlZd dlmZ d dlZd dlmZmZ d dl	m
Z  G d d          ZdS )    N)ensure_platform_int)Index
RangeIndexc                   
   e Zd Zej        d             Zd Zd Zd Zej	        
                    d ed          dddf edd          dddf edd	
          ddd	f eddd	          ddd	fg          d             Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zej	        
                    d eddd	           eddd	          f ed           eddd           f edd	d            edd d!          f edd"d#           edd$d#          fg          d%             Zd& Zd' Zd( Z ej	        
                    d)d*d+g          d,             Z!d- Z"d. Z#d/ Z$d0 Z%ej	        
                    d1 edd2d	d34           ed5dd#d64          gd7d8g9          d:             Z&d; Z'd< Z(d= Z)ej	        
                    d> e* e+d?d@                    dhz
            dA             Z,ej	        
                    dB eddCd          g eddCd          f edd@d!          g edd@d!          f edd            ed dD          g eddD          f eddd	           edd@          g edd@d	          f edd d	           ed!dDd           g eddDd           f edEd d	           ed!dDd	          g edEdDd	          f edEdF           edFdG          g edd          f edEdF           ed dE          g edd          f edEdF           ed d          g ed d          f edEd#           ed d          g e-g dH          f ed#           ed d          g ed d          f ed	           ed	          g e-g dI          f ed	           ed	d           eddJd!          g edd@          f ed	           ed d           eddJd!          g e-g dK          f ed#d	           ed	d           eddJd!          g ed#d@          f ed            e-g dL          g e-g dM          f ed            e-g dN          g e-g dO          f ed            e-g dP          g e-g dQ          f ed d           e-g dP          g e-g dP          fg          dR             Z.dS Z/dT Z0ej	        
                    dU eddd           eddd           edd d	           eddd#           edVd?d#          g          dW             Z1ej	        
                    dX edd	           e-ddg          g          dY             Z2dZ Z3d[ Z4d\S )]TestRangeIndexc                 &    t          ddd          S )Nr         startstopstep)r   )selfs    f/var/www/html/test/jupyter/venv/lib/python3.11/site-packages/pandas/tests/indexes/ranges/test_range.pysimple_indexzTestRangeIndex.simple_index   s    3333    c                     t          dd          }t          j        ddgt          j                  }t	          j        |j        |           d S )N      r
   dtype)r   nparrayint64tmassert_numpy_array_equal_datar   resultexpecteds      r   test_constructor_unwraps_indexz-TestRangeIndex.test_constructor_unwraps_index   sF    Aq!!8QF"(333
#FL(;;;;;r   c                 L    |}|d         }|                     |          du sJ d S )Nr   F)$_can_hold_identifiers_and_holds_name)r   r   idxkeys       r   test_can_hold_identifiersz(TestRangeIndex.test_can_hold_identifiers   s5    !f77<<EEEEEEr   c                     |}t          j        t          d          5  ddg|_        d d d            d S # 1 swxY w Y   d S )Nz^Lengthmatchrogerharold)pytestraises
ValueErrornamesr   r   indexs      r   test_too_many_namesz"TestRangeIndex.test_too_many_names   s    ]:Y777 	. 	."H-EK	. 	. 	. 	. 	. 	. 	. 	. 	. 	. 	. 	. 	. 	. 	. 	. 	. 	.s   
599zindex, start, stop, step   r   r   r
   )r   c                 T    |j         |k    sJ |j        |k    sJ |j        |k    sJ d S Nr   )r   r1   r   r   r   s        r   test_start_stop_step_attrsz)TestRangeIndex.test_start_stop_step_attrs"   sC     {e####zT!!!!zT!!!!!!r   c                     t          dd          }|                                }||usJ |                    |          sJ |j        t	          ddd          k    sJ |j        dk    sJ d S )Nr3   Foonamer   r   )r   copy	identical_rangeranger:   )r   ii_copys      r   	test_copyzTestRangeIndex.test_copy1   s~    qu%%%Q"""""}aA....{e######r   c                 F   t          dd          }t          |          }d}||k    sJ t          |          }t          j        ||d           t          ddd          }t          |          }d	}||k    sJ t          |          }t          j        ||d           d S )
Nr3   r8   r9   z/RangeIndex(start=0, stop=5, step=1, name='Foo')Texactr   z$RangeIndex(start=5, stop=0, step=-1))r   reprevalr   assert_index_equal)r   r?   r   r    s       r   	test_reprzTestRangeIndex.test_repr9   s    qu%%%aD!!!!f
fat4444q!R  a9!!!!f
fat444444r   c                 |   t          dd          }|dd         }t          j        |dd         |                    d|d                   d           t	          dt
          j        dd	d
dgt
          j                  }t
          j        d t          j	        fD ]:}t          d                              d|          }t          j        ||           ;t          d                              dt          j
                  }t	          dt          j
        dd	d
dgt                    }t          j        ||           d S )Nr3   r8   r9   r      r   equivrC   r
   r   r   )r   r   rH   insertr   r   nanfloat64pdNANaTobject)r   r$   r   r    nas        r   test_insertzTestRangeIndex.test_insertJ   s   '''QqS 	c!A#haQ(@(@PPPP !RVQ1a0
CCC64' 	4 	4B]]))!R00F!&(3333A%%a00!RVQ1a0???
fh/////r   c                 n   t          t          ddd                    }|                    dd          }t          t          ddd                    }t          j        ||d           |                    dd          }t          t          dd	d                    }t          j        ||d           d S )
NrK   	   r
   r   TrC   r   
      r   r>   rM   r   rH   r   r$   r   r    s       r   &test_insert_edges_preserves_rangeindexz5TestRangeIndex.test_insert_edges_preserves_rangeindex[   s    E!QNN##Aq!!q!Q((
fhd;;;;Ar""q"a))
fhd;;;;;;r   c                 B   t          t          ddd                    }|                    dd          }t          t          d                    }t          j        ||d           |dz  }|                    dd          }|dz  }t          j        ||d           d S )Nr   r   r
   r   TrC   rZ   r[   s       r   'test_insert_middle_preserves_rangeindexz6TestRangeIndex.test_insert_middle_preserves_rangeindexf   s    E!QNN##Aq!!q??
fhd;;;;AgAq!!a<
fhd;;;;;;r   c                    t          dd          }|dd          }|                    d          }t          j        ||d           |j        |j        k    sJ |d d         }|                    d          }t          j        ||d           |j        |j        k    sJ d	}t          j        t          t          f|
          5  |                    t          |                    }d d d            d S # 1 swxY w Y   d S )Nr3   r8   r9   r   r   TrC   rE   z/index 5 is out of bounds for axis 0 with size 5r(   )
r   deleter   rH   r:   r,   r-   
IndexErrorr.   len)r   r$   r    r   msgs        r   test_deletezTestRangeIndex.test_deleter   s@   '''qrr7A
fhd;;;;{hm++++ss8B
fhd;;;;{hm++++?]J
33??? 	* 	*ZZC))F	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	*s   #C66C:=C:c                 0   t          t          d          d          }|                    dg          }t          t          d          d          }t          j        ||d           |                    d          }t          j        ||d           d S )Nr
   foor9   r   TrC   r   r>   r`   r   rH   r[   s       r    test_delete_preserves_rangeindexz/TestRangeIndex.test_delete_preserves_rangeindex   s    E!HH5)))QCq...
fhd;;;;A
fhd;;;;;;r   c                    t          t          d          d          }|                    d          }|d d d         }t          j        ||d           |                    d          }t          j        ||d           d S )	Nr   rf   r9   r   r
   TrC   rg   r[   s       r   'test_delete_preserves_rangeindex_middlez6TestRangeIndex.test_delete_preserves_rangeindex_middle   s}    E!HH5)))Asss8
fhd;;;;B
fhd;;;;;;r   c                    t          ddd          }g d}|                    |          }|d d         }t          j        ||d           |                    |d d d                   }t          j        ||d           d S )	Nr      r   )r
   r   rK   r3   r
   TrC   rE   r   r`   r   rH   r   r$   locr   r    s        r   ,test_delete_preserves_rangeindex_list_at_endz;TestRangeIndex.test_delete_preserves_rangeindex_list_at_end   s    Aq!!llCrr7
fhd;;;;C"I&&
fhd;;;;;;r   c                    t          ddd          }g d}|                    |          }t          ddd          }t          j        ||d           |                    |d d d                   }t          j        ||d           d S )	Nr   rm   r   )r   r
   r   rK   r3   TrC   rE   rn   ro   s        r   ,test_delete_preserves_rangeindex_list_middlez;TestRangeIndex.test_delete_preserves_rangeindex_list_middle   s    Aq!!llCaA&&
fhd;;;;C"I&&
fhd;;;;;;r   c                    t          ddd          }g d}|                    |          }|d d         }t          j        ||d           |                    |d d d                   }t          j        ||d           d S )Nr   rm   r   )r   r   r
   r   rK   r3   TrC   rE   rn   ro   s        r   $test_delete_all_preserves_rangeindexz3TestRangeIndex.test_delete_all_preserves_rangeindex   s    Aq!!   Crr7
fhd;;;;C"I&&
fhd;;;;;;r   c                    t          ddd          }g d}|                    |          }t          g d          }t          j        ||d           |                    |d d d                   }t          j        ||d           d S )	Nr   rm   r   )r   r   r3   )r   r
   rK   TrC   rE   )r   r`   r   r   rH   ro   s        r   %test_delete_not_preserving_rangeindexz4TestRangeIndex.test_delete_not_preserving_rangeindex   s    Aq!!iiC##
fhd;;;;C"I&&
fhd;;;;;;r   c                    t          dd          }|                                }|j        dk    sJ |                    d          }t          j        |j        |           d}t          j        t          |          5  |                    t                     }d d d            n# 1 swxY w Y   t          j        ||           d S )Nr   r8   r9   i8/Passing a type in RangeIndex.view is deprecatedr(   )	r   viewr:   r   r   valuesassert_produces_warningFutureWarningrH   )r   r?   i_viewrc   s       r   	test_viewzTestRangeIndex.test_view   s    qu%%%{e####
#AHf555?'SAAA 	( 	(VVJ''F	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	(
a(((((s   ?B&&B*-B*c                 8    |}|j         t          j        k    sJ d S r5   )r   r   r   r0   s      r   
test_dtypezTestRangeIndex.test_dtype   s"    {bh&&&&&&r   c                    t          ddd          }|j        i k    sJ t          |           |j        i k    sJ t          |           |j        i k    sJ |                    d           |j        i k    sJ d|v  |j        i k    sJ d|v  |j        i k    sJ |                                 |j        i k    sJ |                                 |j        i k    sJ |D ]}|j        i k    sJ d}t          j        t          |          5  |
                                 d d d            n# 1 swxY w Y   |j        i k    sJ t          j        d	t          d          i|
          }t          |           |j        i k    sJ |j        d          |j        i k    sJ t          j        t"          d          5  |j        d          d d d            n# 1 swxY w Y   |j        i k    sJ |j        dd          |j        i k    sJ |j        dd          |j        i k    sJ |                    g d           d|j        vsJ |j        dg          d|j        vsJ |j        g d          d|j        vsJ |j         t+          |j        t,          j                  sJ |j        |j        u sJ d|j        v sJ t-          j        dddd          }t          j        |j        d         |           d S )Nr   d   rX   r	   Z   [   zRangeIndex.format is deprecatedr(   a)r1   2   513   r3   )r   r   r   r   )r3   rm         rW   r   r   )r   _cacherF   strget_locallanyr   r}   r~   formatrP   	DataFramer>   rp   r,   r-   KeyErroriloctaker   
isinstancer   ndarrayaranger   )r   r$   _rc   dfr    s         r   
test_cachezTestRangeIndex.test_cache   s   
 C$$zRS			zRCzRBzR
c		zR
c		zR			zR			zR 	 	AzR/'SAAA 	 	JJLLL	 	 	 	 	 	 	 	 	 	 	 	 	 	 	zR\3b		*#666 	BzR
r

zR]84000 	 	F2JJ	 	 	 	 	 	 	 	 	 	 	 	 	 	 	zR
r"uzR
"zR 	cj((((
tcj((((
  cj(((( 			#)RZ00000yCI%%%%#*$$$$9QRw777
#CJw$7BBBBBs$   D--D14D1;GGGc                    t          ddd          }|j        du sJ |j        du sJ |j        du sJ |j        du sJ |j        du sJ t          ddd          }|j        du sJ |j        du sJ |j        du sJ |j        du sJ t          dd          }|j        du sJ |j        du sJ |j        du sJ |j        du sJ |j        du sJ t          dd          }|j        du sJ |j        du sJ |j        du sJ |j        du sJ |j        du sJ t          dd          }|j        du sJ |j        du sJ |j        du sJ |j        du sJ |j        du sJ d S )	Nr   r	   r
   TFrK   rE   r   )r   is_monotonic_increasingis_monotonic_decreasing!_is_strictly_monotonic_increasing!_is_strictly_monotonic_decreasingr   r1   s     r   test_is_monotonicz TestRangeIndex.test_is_monotonic  s7   1b!$$,4444,4444,55556$>>>>6%????1a$$,55556%????,44446$>>>>1a  ,4444,4444,44446$>>>>6$>>>>1a  ,4444,4444,44446$>>>>6$>>>>1a  ,4444,4444,44446$>>>>6$>>>>>>r   z
left,rightrW   rX   rE   r   rK   irj   ic                 b    |                     |          sJ |                     |          sJ d S r5   )equals)r   leftrights      r   test_equals_rangez TestRangeIndex.test_equals_rangeB  s:     {{5!!!!!||D!!!!!!!r   c                     |}|                                 |j                                         k    sJ |                                |j                                        k    sJ d S r5   )r   r|   r   )r   r   r$   s      r   test_logical_compatz"TestRangeIndex.test_logical_compatO  sW    wwyyCJNN,,,,,,wwyyCJNN,,,,,,,,r   c                    |}t          |                                          }|                    |          sJ t          |t                    rd S t          |t
                    }|                    |          rJ |                    t
                    }|                    d          }t          |t
                    }|                    |                    t
                              sJ |                    |          rJ t          |dt
                                        |          sJ |                    t
                                        |                    d                    rJ d S )Nr   rf   )r:   r   r   )r   r;   r<   r   r   rS   rename)r   r   r1   r?   same_values_different_typesame_valuess         r   test_identicalzTestRangeIndex.test_identicalT  sR   %**,,{{5!!!!! eZ(( 	F%*1F%;%;%;";;9:::::JJVJ$$HHUOOAV,,,$$UZZfZ%=%=>>>>>;;u%%%%%[uF;;;EEaHHHHH::F:++55ejjwj6O6OPPPPPPPr   c                     t          dd          }|j        t          |j                  j        dz  k     sJ t          dd          }|j        |j        k    sJ d S )Nr   i  rX   )r   nbytesr   _values)r   r$   i2s      r   test_nbyteszTestRangeIndex.test_nbytesj  sb    D!!zE#+..5::::: 2zRY&&&&&&r   zstart,stop,step)rf   barbaz)012c                     dt          |           d| }t          j        t          |          5  t	          |||           d d d            d S # 1 swxY w Y   d S )NzWrong type z for value r(   )typer,   r-   	TypeErrorr   )r   r   r   r   rc   s        r   test_cant_or_shouldnt_castz)TestRangeIndex.test_cant_or_shouldnt_casts  s     <DKK;;E;;]9C000 	* 	*udD)))	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	*s   AAAc                     |}d}t          j        t          |          5  |                    t                     d d d            d S # 1 swxY w Y   d S )Nrz   r(   )r   r}   r~   r{   r   )r   r   r1   rc   s       r   test_view_indexzTestRangeIndex.test_view_index  s    ?'SAAA 	 	JJu	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	s   AAAc                 b    |}|                     d          }|j        t          j        k    sJ d S )NO)astyper   r   object_r   r   r1   r   s       r   test_prevent_castingz#TestRangeIndex.test_prevent_casting  s3    c""|rz))))))r   c                 h    |}t          j        t          t          |                    |           d S r5   )r   rH   rG   rF   r0   s      r   test_repr_roundtripz"TestRangeIndex.test_repr_roundtrip  s.    
d4;;//77777r   c                 ^    t          ddd          }|j        |dd          j        k    sJ d S )Nr   r
   asdfr9   )r   r:   r   r$   s     r   test_slice_keep_namez#TestRangeIndex.test_slice_keep_name  s9    AF+++x3qrr7<''''''r   r1   r	   rf   )r   r   r   r:      r   	index_inc	index_dec)idsc                 *    |j         sJ |j        rJ d S r5   )	is_uniquehas_duplicatesr   s     r   test_has_duplicatesz"TestRangeIndex.test_has_duplicates  s'     ''''''r   c                    |}|                     dd          }|d         |d         dz  |d         dz  z   k    sJ d|d         k    sJ |                     dd          }d|d         dz  |d         dz  z   k    sJ d|d         k    sJ d S )Nrm   rX   r   r   r
   )_extended_gcdr   s       r   test_extended_gcdz TestRangeIndex.test_extended_gcd  s    $$Q++ayF1IMF1IN:::::F1I~~~~$$R++F1INVAY]22222F1I~~~~~~r   c                    t          ddd                              d          }d|k    sJ t          dd                              d          }d|k    sJ t          ddd                              d          }d|k    sJ t          ddd	                              d          }d|k    sJ d
}t          d|dz  d                              |          }||k    sJ d S )Nr   r	   r
   r   rm   r   rj   r3   rE   l      !;o )r   _min_fitting_element)r   r   big_nums      r   test_min_fitting_elementz'TestRangeIndex.test_min_fitting_element  s    Ar1%%::1==F{{{{Aq!!66q99F{{{{BB''<<Q??F{{{{Aq"%%::1==F{{{{*Aw{A..CCGLL&      r   c                 r   |}d|_         |d         }d}||k    sJ |d         }d}||k    sJ |d d          }|}t          j        ||           |ddd         }t          ddgd	          }t          j        ||d
           |ddd         }t          ddgd	          }t          j        ||d
           |ddd         }t          ddgd	          }t          j        ||d
           |d d d         }t          |j        d d d         d	          }t          j        ||d
           |dd d         }t          g dd	          }t          j        ||d
           |dd d         }t          t          j        g t
          j                  d	          }t          j        ||d
           |dd d         }t          |j        dd d         d	          }t          j        ||d
           |dd d         }t          |j        d d d         d	          }t          j        ||d
           d S )Nrf   r   r
   rE   r   r   rX      r9   rL   rC   rj   r   rK      )rK   r
   r   ir   (   )r:   r   rH   r   r|   r   r   r   )r   r   r1   resr    index_slices         r   test_slice_specialisedz%TestRangeIndex.test_slice_specialised  s   
 AhhBih AAAh
k8444 AbFm"b...
k87CCCC Br"Ho"b...
k87CCCC Ac!Gn!Ru---
k87CCCC DDbDkddd+%888
k87CCCCBFFm///
k87CCCCCGGn"BH555EBBB
k87CCCCBFFmbf"f-E:::
k87CCCCBFFmddd+%888
k87CCCCCCr   r   r   rm   c                     |dk    rdnd\  }}t          j        |||          }t          |||          }t          |          t          |          k    sJ t          |||          }t          |          dk    sJ d S )Nr   )r   r3   )r3   r   )r   r   r   rb   )r   r   r   r   arrr1   s         r   test_len_specialisedz#TestRangeIndex.test_len_specialised  s     !%qffftitT**5$--5zzSXX%%%%4--5zzQr   zindices, expectedr   r   r   i)r   r   rK   )r   r   r   r   r   )r   r   r   rK   r3   )rE   r      )r   r   r
   rE   r   r   )rE   @      .@)r   r   r
   rE   r   r   )r   Nr   )r   r   r
   r   Nr   c                    |d                              |dd                    }t          j        ||d           t          |          dk    r:|d                              |d                   }t          j        ||d           d S d S )Nr   r   TrC   r
   )appendr   rH   rb   )r   indicesr    r   result2s        r   test_appendzTestRangeIndex.test_append  s    @ ""7122;//
fhd;;;;w<<1aj''
33G!'84@@@@@@ r   c           	      @   t          ddd          }|                    d          dk    sJ t          j        |                    ddg          t          t          j        ddg                               t          j	        t          d	          5  |                    d           d d d            n# 1 swxY w Y   d
|j        vsJ t          j	        t          d	          5  |                    d           d d d            n# 1 swxY w Y   d
|j        vsJ d S )Nr
   rX   r   r3   r   r   r   3r(   _enginez'a'r   )r   r   r   r   get_indexerr   r   r   r,   r-   r   r   r   s     r   test_engineless_lookupz%TestRangeIndex.test_engineless_lookup'  s    B""{{1~~""""
#OOQF##%81a&9I9I%J%J	
 	
 	
 ]83/// 	 	KKNNN	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 
**** ]85111 	 	KK	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 
******s$   B55B9<B9&DDDc                 h   t          d          }d}t          j        t          |          5  |                                g k    sJ 	 d d d            n# 1 swxY w Y   t          j        t          |          5  |                    d          dgk    sJ 	 d d d            d S # 1 swxY w Y   d S )Nr   z RangeIndex\.format is deprecatedr(   Tr9    )r   r   r}   r~   r   )r   	empty_idxrc   s      r   test_format_emptyz TestRangeIndex.test_format_empty=  s>   qMM	1'SAAA 	, 	,##%%+++++	, 	, 	, 	, 	, 	, 	, 	, 	, 	, 	, 	, 	, 	, 	,'SAAA 	7 	7###..2$66666	7 	7 	7 	7 	7 	7 	7 	7 	7 	7 	7 	7 	7 	7 	7 	7 	7 	7s#   AAA;B''B+.B+rir   c                 ^    |                     g           }t          j        ||d           d S )NTrC   )r   r   rH   )r   r   r   s      r   test_append_len_onez"TestRangeIndex.test_append_len_oneF  s1     2
fb555555r   basec                     t          dd          }|                    |          }t          j        ddg          }t	          j        ||           d S )Nr   r   TF)r   isinr   r   r   r   )r   r   r|   r   r    s        r   test_isin_rangezTestRangeIndex.test_isin_rangeU  sP     Aq!!6""8T5M**
#FH55555r   c                 l   ddddddt          ddd          }|                    fd          }t          g d	d
          }t          j        ||d           |                                }|                    fd          }t          j        ||                                d           d S )Nr
   r   r   rX   r   )r   rm   rK   r
   r   c                 .    |                                S r5   mapx
sort_orders    r   <lambda>z5TestRangeIndex.test_sort_values_key.<locals>.<lambda>a  s    !%%
2C2C r   )r%   )rm   r   rK   r
   r   r   r   T)check_exactc                 .    |                                S r5   r  r  s    r   r  z5TestRangeIndex.test_sort_values_key.<locals>.<lambda>g  s    j0A0A r   )r   sort_valuesr   r   rH   	to_seriesassert_series_equal)r   r|   r   r    serr   r  s         @r   test_sort_values_keyz#TestRangeIndex.test_sort_values_key]  s    qQ2"55
Ar1%%##(C(C(C(C#DD888
fhDAAAA   //&A&A&A&A/BB
w(:(:(<(<$OOOOOOr   c                 z    dt          ddd          z
  }t          ddd          }t          j        ||           d S )Nr   r   rK   r   rE   )r   r   rH   r   s      r   test_range_index_rsub_by_constz-TestRangeIndex.test_range_index_rsub_by_constj  sB    Z1a(((aR((
fh/////r   N)5__name__
__module____qualname__r,   fixturer   r!   r&   r2   markparametrizer   r6   rA   rI   rU   r\   r^   rd   rh   rk   rq   rs   ru   rw   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   setr>   r   r   r   r   r   r   r   r  r   r   r   r   r      sx	       ^4 4 ^4< < <
F F F
. . .
 ["Z]]Aq!$Z1q!Q'Z"""Aq!,Z1a  !Q*		
 " " "$ $ $5 5 5"0 0 0"	< 	< 	<
< 
< 
<* * *"< < << < <	< 	< 	<	< 	< 	<	< 	< 	<	< 	< 	<) ) )' ' 'JC JC JCX!? !? !?F [Z1a  **QA"6"67Z]]JJq"a001Z1a  **Q1"5"56Z2r""JJq#r$:$:;		
 " " "- - -
Q Q Q,' ' ' [ "		
 * * *
  * * *
8 8 8( ( ( [JQRae<<<JRbr>>>	
 +&   ( ( (  ! ! !$5D 5D 5Dn [VSSr1%6%6!%<==	 	 >=	 [jB""#ZZ2q%9%9:jAq!!"JJq!Q$7$78jA

1a 0 01::a3C3CDjAq!!::a#3#34jjAq6I6IJjAq!!::aA#6#67Aq!9L9LMjQ""JJq!Q$7$78**RA:N:NOjR  **R"5"56

1a8H8HIjR  **Q"3"34jjA6F6FGjR  **Q"2"23ZZ15E5EFjR  **Q"2"23UU>>>5J5JKjnnjjA../Aq1A1ABjmmZZ]]+UU<<<-@-@AjmmZZ1--zz!Q/B/BCZZPQSTEUEUVA

1a 0 0**Q12E2EFooo&&
 B""JJq!$4$4jjAq6I6IJ
2q!! jmmUU;;;//0%%8L8L8L2M2MNjmmUU???334ee<T<T<T6U6UVjmmUU???334ee<T<T<T6U6UVjAooo 6 679O9OP3	
 <A A= <A+ + +,7 7 7 [Jq"b!!Jq!QJq!QJq"b!!Jr2r""	
	 	6 6	 	6
 [VjjA&6&6q!f%FGG6 6 HG6P P P0 0 0 0 0r   r   )numpyr   r,   pandas.core.dtypes.commonr   pandasrP   r   r   pandas._testing_testingr   r   r  r   r   <module>r     s         9 9 9 9 9 9                 `	0 `	0 `	0 `	0 `	0 `	0 `	0 `	0 `	0 `	0r   