
    I j>                     	   S SK rS SKrS SKrS SKJrJrJr  S SKJ	r
  S rS rS r\R                  R                  S\" S5      \" S5      \" S	5      /5      S
 5       r\R                  R                  S\" S5      \" SS5      4\" S5      \" S5      4\" S	5      \" S5      4\" S	5      \" S5      4\" S5      \" S5      4/5      S 5       r\R                  R                  SSS0S/ SQ0SS0/5      S 5       r\R                  R                  SSS/5      \R                  R                  S/ SQ5      S 5       5       r\R                  R                  S\" S S!/SS"/S#9\" S S!/S$S%/S#9S&4\R,                  " SS"/S'S(/S S!/S).S*S+/S#9R.                  \R,                  " S$S%/S'S(/S S!/S).S*S+/S#9R.                  S,4/5      S- 5       r\R                  R                  S.S/S0/5      S1 5       r\R                  R                  S2S/S0/5      S3 5       rS4 rS5 rS6 rS7 rS8 rS9 r S: r!S; r"S< r#S= r$S> r%S? r&S@ r'SA r(SB r)\R                  R                  SSCSD/5      SE 5       r*\R                  R                  SSFSG/5      SH 5       r+\R                  R                  SS\,/5      \R                  R                  SIS/S0/5      \R                  R                  SJSSK/5      SL 5       5       5       r-SM r.\R                  R                  SN\R^                  " / SOQ5      \R^                  " \R`                  " S SSP5      5      4\Rb                  Re                  / SQQ/ SOQ/5      \Rb                  Re                  / SQQ\R`                  " S SSP5      /5      4\Rb                  Re                  / SRQ/ SSQ/5      \Rb                  Re                  / SRQ/ STQ/5      4\Rf                  " \R^                  " / SSQ5      \R^                  " / STQ5      \R                  Ri                  SUSV9SW9\Rf                  " \Rb                  Re                  / SQQ/ SSQ/5      \Rb                  Re                  / SQQ/ STQ/5      \R                  Ri                  SUSV9SW9/5      SX 5       r5g)Y    N)Categorical	DataFrameSeriesc                 `    [         R                  " X40 UD6  [         R                  " X40 UD6  g)z
Check that two Series equal.

This check is performed commutatively.

Parameters
----------
a : Series
    The first Series to compare.
b : Series
    The second Series to compare.
kwargs : dict
    The arguments passed to `tm.assert_series_equal`.
N)tmassert_series_equalabkwargss      {/root/GenerationalWealth/GenerationalWealth/venv/lib/python3.13/site-packages/pandas/tests/util/test_assert_series_equal.py_assert_series_equal_bothr      s*     1*6*1*6*    c                      [         R                  " X40 UD6  Sn[        R                  " US9  g! [         a     gf = f)z
Check that two Series are not equal.

Parameters
----------
a : Series
    The first Series to compare.
b : Series
    The second Series to compare.
kwargs : dict
    The arguments passed to `tm.assert_series_equal`.
z7The two Series were equal when they shouldn't have been)msgN)r   r   pytestfailAssertionError)r
   r   r   r   s       r   _assert_not_series_equalr       s=    
q.v.G s   -0 
==c                 4    [        X40 UD6  [        X40 UD6  g)a  
Check that two Series are not equal.

This check is performed commutatively.

Parameters
----------
a : Series
    The first Series to compare.
b : Series
    The second Series to compare.
kwargs : dict
    The arguments passed to `tm.assert_series_equal`.
N)r   r	   s      r   _assert_not_series_equal_bothr   6   s     Q,V,Q,V,r   data   abcu   áàäc                 @    [        [        U 5      [        U 5      5        g N)r   r   )r   s    r   test_series_equalr   I   s    fTlF4L9r   zdata1,data2      xyzu   éèës   aaac                 @    [        [        U 5      [        U5      5        g r   )r   r   )data1data2s     r   $test_series_not_equal_value_mismatchr$   N   s     "&-?r   r   dtypefloat64indexr      r   namefooc                 ^    [        S5      n[        U5      n[        U40 U D6n[        X#5        g )Nr   )ranger   r   )r   r   s1s2s       r   'test_series_not_equal_metadata_mismatchr0   \   s-     8D	B			B!")r   )g|Pk?g9]?)gV-?g??decimals)r   r   r)   r      
   c                     SU* -  n[        U /US9n[        U/US9nUS;   d  US:  aK  [        X-
  5      S:  a:  Sn[        R                  " [        US9   [
        R                  " XVUS9  S S S 5        g [        XVUS9  g ! , (       d  f       g = f)	Nr3   r%   )r2   r3   r   gMb@?zSeries values are differentmatchrtol)r   absr   raisesr   r   r   r   )r"   r#   any_float_dtyper1   r9   r.   r/   r   s           r   test_less_preciser=   l   s     y=D		/B		/B7x1}U]1Cv1M+]]>5""25 65 	""t4 65s   A??
Bz	s1,s2,msgl1l2r)   r'   g      ?g       @zSeries\.index are differentg @      ?r
   r   cr
   r   z'Series\.index level \[0\] are differentc                     SU0nU(       a:  [         R                  " [        US9   [        R                  " X40 UD6  S S S 5        g [        R                  " X40 UD6  g ! , (       d  f       g = f)Ncheck_index_typer6   )r   r;   r   r   r   )r.   r/   r   rE   r   s        r   test_series_equal_index_dtyperF   {   sY    , !"23F]]>5""24V4 65 	r00 65s   A
A,
check_likeTFc                     [        / SQ/ SQS9n[        / SQ/ SQS9nU (       d8  [        R                  " [        SS9   [        R
                  " XU S9  S S S 5        g [        XU S9  g ! , (       d  f       g = f)	Nr   r)   r   rB   r@   )r   r)   r   rC   r   r
   Series.index are differentr6   )rG   r   r   r;   r   r   r   r   )rG   r.   r/   s      r    test_series_equal_order_mismatchrM      s[    			1B			1B]]>1MN""2jA ON 	""Z@ ON   A''
A5check_indexc                     [        / SQ/ SQS9n[        / SQ/ SQS9nU (       a8  [        R                  " [        SS9   [        R
                  " XU S9  S S S 5        g [        XU S9  g ! , (       d  f       g = f)NrI   rB   r@   rJ   rK   r6   )rO   rL   )rO   r.   r/   s      r    test_series_equal_index_mismatchrQ      s[    			1B			1B]]>1MN""2{C ON 	""kB ONrN   c                      [        [        S9n [        [        S9n[        R                  " [        SS9   [
        R                  " XSSS9  S S S 5        g ! , (       d  f       g = f)Nr5   z0check_like must be False if check_index is Falser6   FT)rO   rG   )r   objectr   r;   
ValueErrorr   r   leftrights     r   %test_series_invalid_param_combinationrX      sL    D E	L
 	t$O
 
 
s   A
A"c                     Sn[        / SQ5      n[        / SQ5      n[        R                  " [        US9   [        R
                  " X#U S9  S S S 5        g ! , (       d  f       g = f)NzSeries are different

Series length are different
\[left\]:  3, RangeIndex\(start=0, stop=3, step=1\)
\[right\]: 4, RangeIndex\(start=0, stop=4, step=1\)rI   )r   r)   r   r   r6   r8   r   r   r;   r   r   r   r9   r   r.   r/   s       r   !test_series_equal_length_mismatchr\      sI    ;C 
		B		B	~S	1
rD1 
2	1	1   A
A#c                     Sn[        / SQ5      n[        / SQ5      n[        R                  " [        US9   [        R
                  " X#U S9  S S S 5        g ! , (       d  f       g = f)NzSeries are different

Series values are different \(33\.33333 %\)
\[index\]: \[0, 1, 2\]
\[left\]:  \[1, 2, 3\]
\[right\]: \[1, 2, 4\]rI   r(   r6   r8   rZ   r[   s       r   )test_series_equal_numeric_values_mismatchr_      sI    C 
		B			B	~S	1
rD1 
2	1	1r]   c                    U(       a  SOSnSU SU S3n[        [        / SQ5      5      n[        [        / SQ5      5      n[        R                  " [        US9   [
        R                  " XEU S	9  S S S 5        g ! , (       d  f       g = f)
NstrrS   zSeries are different

Series values are different \(66\.66667 %\)
\[index\]: \[0, 1, 2\]
\[left\]:  \['a', 'b', 'c'\]
Categories \(3, zC\): \['a', 'b', 'c'\]
\[right\]: \['a', 'c', 'b'\]
Categories \(3, z\): \['a', 'b', 'c'\]rB   )r
   rC   r   r6   r8   )r   r   r   r;   r   r   r   )r9   using_infer_stringr%   r   r.   r/   s         r   -test_series_equal_categorical_values_mismatchrc      su    'EXE
  04C 
O,	-B	O,	-B	~S	1
rD1 
2	1	1s   A99
Bc           	         Sn[        [        R                  " SSSSS95      n[        [        R                  " SSSSS95      n[        R                  " [
        US9   [        R                  " X#U S	9  S S S 5        g ! , (       d  f       g = f)
NzSeries are different

Series values are different \(100.0 %\)
\[index\]: \[0, 1, 2\]
\[left\]:  \[1514764800000000000, 1514851200000000000, 1514937600000000000\]
\[right\]: \[1549065600000000000, 1549152000000000000, 1549238400000000000\]z
2018-01-01r   Dns)periodsfrequnitz
2019-02-02r6   r8   )r   pd
date_ranger   r;   r   r   r   r[   s       r   *test_series_equal_datetime_values_mismatchrl      sh    TC 
lACdK	LB	lACdK	LB	~S	1
rD1 
2	1	1s   A;;
B	c                 J   U(       a  SnOSnSU SU S3n[        [        SS/5      5      n[        [        SS/[        S5      S	95      nU (       a8  [        R                  " [
        US
9   [        R                  " XEU S9  S S S 5        g [        XEU S9  g ! , (       d  f       g = f)Nra   rS   zAttributes of Series are different

Attribute "dtype" are different
\[left\]:  CategoricalDtype\(categories=\['a', 'b'\], ordered=False, categories_dtype=z^\)
\[right\]: CategoricalDtype\(categories=\['a', 'b', 'c'\], ordered=False, categories_dtype=z\)r
   r   r   )
categoriesr6   )check_categorical)	r   r   listr   r;   r   r   r   r   )ro   rb   r%   r   r.   r/   s         r   &test_series_equal_categorical_mismatchrq      s      !!&s.C 
S#J'	(B	S#J4;?	@B]]>5""2=NO 65 	""<MN 65s   *B
B"c                  ,   [        [        R                  " / SQSS95      n U R                  [        5      nSn[
        R                  " XSS9  [        R                  " [        US9   [
        R                  " XSS9  S S S 5        g ! , (       d  f       g = f)	NrI   Int64r5   zjAttributes of Series are different

Attribute "dtype" are different
\[left\]:  Int64
\[right\]: int[32|64]Fcheck_dtyper6   T)
r   rj   arrayastypeintr   r   r   r;   r   rV   rW   r   s      r   1test_assert_series_equal_extension_dtype_mismatchrz     sh    "((9G45DKKEC 4E:	~S	1
t= 
2	1	1   &B
Bc                  ,   [        [        R                  " SS5      /SS9n U R                  [        5      nSn[
        R                  " XSS9  [        R                  " [        US9   [
        R                  " XS	S9  S S S 5        g ! , (       d  f       g = f)
Nr   r   intervalr5   zyAttributes of Series are different

Attribute "dtype" are different
\[left\]:  interval\[int64, right\]
\[right\]: objectFrt   r6   T)
r   rj   Intervalrw   rS   r   r   r   r;   r   ry   s      r   0test_assert_series_equal_interval_dtype_mismatchr   !  sm    2;;q!$%Z8DKKEC 4E:	~S	1
t= 
2	1	1r{   c                  2    " S S[         5      n [        SS/5      n[        SS/5      nU " SS/5      n[        R                  " XSS9  [        R                  " XSS9  [        R                  " XSS9  [        R                  " X1SS9  [        R                  " [
        SS	9   [        R                  " XSS9  S S S 5        [        R                  " [
        SS	9   [        R                  " X1SS9  S S S 5        g ! , (       d  f       NF= f! , (       d  f       g = f)
Nc                       \ rS rSrSrg)/test_series_equal_series_type.<locals>.MySeriesi3   N)__name__
__module____qualname____firstlineno____static_attributes__r   r   r   MySeriesr   3  s    r   r   r   r)   F)check_series_typeTzSeries classes are differentr6   r   r   r   r   r;   r   )r   r.   r/   s3s       r   test_series_equal_series_typer   2  s    6  
AB	AB	1a&	B2U;2T:2U;2U;	~-K	L
r> 
M 
~-K	L
r> 
M	L 
M	L 
M	Ls   !C7D7
D
Dc                     [        SS/5      n [        SS/5      n[        SS/5      n[        R                  " XSS9  [        R                  " XSS9  Sn[        R                  " [
        US9   [        R                  " XSS9  S S S 5        Sn[        R                  " [
        US9   [        R                  " X SS9  S S S 5        g ! , (       d  f       NH= f! , (       d  f       g = f)Nr
   r   Tcheck_exactzzSeries are different

Series values are different \(100\.0 %\)
\[index\]: \[0, 1\]
\[left\]:  \[a, b\]
\[right\]: \[b, a\]r6   zzSeries are different

Series values are different \(100\.0 %\)
\[index\]: \[0, 1\]
\[left\]:  \[b, a\]
\[right\]: \[a, b\]r   )r.   r/   r   r   s       r   &test_series_equal_exact_for_nonnumericr   G  s    	c
	B	c
	B	c
	B2t42t4C 
~S	1
r48 
2C 
~S	1
r48 
2	1 
2	1 
2	1s   -C&C
C
C$c                  ^    [        / SQSS9n [        / SQSS9n[        R                  " XSS9  g )NrI   rs   r5   Int32Frt   r   r   r   rU   s     r   8test_assert_series_equal_ignore_extension_dtype_mismatchr   c  *    )7+D9G,E4E:r   c                  ^    [        / SQSS9n [        / SQSS9n[        R                  " XSS9  g )NrI   rs   r5   int64Frt   r   rU   s     r   Dtest_assert_series_equal_ignore_extension_dtype_mismatch_cross_classr   j  r   r   c                     [        S/5      n [        S/5      R                  SS9n[        R                  " X 5        [        R                  " X5        [        R                  " XSS9  [        R                  " XSS9  [        R
                  " [        SS9   [        R                  " X5        S S S 5        [        R
                  " [        SS9   [        R                  " X5        S S S 5        g ! , (       d  f       NG= f! , (       d  f       g = f)Nr   F)allows_duplicate_labels)check_flagsz<Flagsr6   )r   	set_flagsr   r   r   r;   r   rU   s     r   test_allows_duplicate_labelsr   q  s    1#;DA3K!!%!@E4&5(4E:5E:	~X	6
t+ 
7 
~X	6
t+ 
7	6 
7	6 
7	6s   C-C>-
C;>
Dc                     [        U /5      n[        R                  " XR                  5       5        [        R
                  " U5      n[        R                  " X"R                  SS95        g )NT)deep)r   r   r   copyrj   Indexassert_index_equal)nulls_fixtureseridxs      r   %test_assert_series_equal_identical_nar     sJ    
-
!C3
+ ((3-C#xxTx23r   c            	      D   [        SSS[        R                  " SS/5      /5      n [        SSS[        R                  " SS/5      /5      n[        R                  " X 5        [        R                  " X SS9  [        R                  " X5        [        R                  " XSS9  g )Nr   g=ۊ?g߷>g	ﰴ9?g?Tr   )r   nprv   r   r   )xys     r   %test_identical_nested_series_is_equalr     s    HH(*<=>		
	A 	HH(*<=>		
	A 1 1T21 1T2r   
datetime64timedelta64c                    [        / SQ5      R                  U  S35      nUR                  U  S35      n[        R                  " [        SS9   [
        R                  " X5        S S S 5        [
        R                  " X!SS9  U[        / SQ5      R                  U  S35      -  n[        R                  " [        S	S9   [
        R                  " X5        S S S 5        [        R                  " [        S	S9   [
        R                  " XSS9  S S S 5        g ! , (       d  f       N= f! , (       d  f       NW= f! , (       d  f       g = f)
N)iC i   iK3Ez[s]z[ms]z"Attributes of Series are differentr6   Frt   )r   r   r   Series are different)r   rw   r   r;   r   r   r   )r%   ser_sser_mss      r   %test_check_dtype_false_different_resor     s     /0775'FE\\UG4.)F	~-Q	R
u- 
S6e<
fY&&%~66F	~-C	D
u- 
E 
~-C	D
u%@ 
E	D 
S	R 
E	D 
E	Ds$   D<D$4D5
D!$
D25
Ers   r   c                     [        S/U S9n[        S/U S9n[        R                  " [        SS9   [        R
                  " X5        S S S 5        g ! , (       d  f       g = f)Nl   ?&l, r5   l   ?&l, r   r6   rZ   )r%   rV   rW   s      r   test_large_unequal_intsr     sN     #$E2D$%U3E	~-C	D
t+ 
E	D	Ds   A
Ar   valg      @c                     [        SSU /US9n[        [        R                  " SSU /5      5      n[        R                  " X4SUS9  g )Nr   r)   r5   F)ru   r   )r   rj   rv   r   r   )r   r   r%   rV   rW   s        r    test_ea_and_numpy_no_dtype_checkr     sA    
 1a+U+D288Q3K()E4E{Sr   c                  V   [        / SQ5      n [        / SQ5      n[        R                  " XSS9  [        R                  " U R	                  5       UR	                  5       SS9  [        R
                  " U R                  S5      R                  UR                  S5      R                  SS9  g )N)Q      y   &   J   H   r   r      r   r      r   r   )r   	   r   r   r   r   r   r   r   r   r   r   r   r   rA   r8   rs   )r   r   r   assert_frame_equalto_frameassert_extension_array_equalrw   valuesrU   s     r    test_assert_series_equal_int_tolr     sz    MNDJKE4S1$--/5>>+;#F##G##U\\'%:%A%Ar   zleft_idx, right_idx)r   g?g?g333333?g?r      )r   r   r   r   r   r   )r
   r
   r
   r   r   r   )r   r)   r   r   r2   l    a$)r   r)   r   r   r2   l    a$z"check_exact_index defaults to True)reason)marksc                 "   [        [        R                  " S[        S9U 5      n[        [        R                  " S[        S9U5      n[        R
                  " X#5        [        R                  " UR                  5       UR                  5       5        g )Nr   r5   )r   r   zerosrx   r   r   r   r   )left_idx	right_idxser1ser2s       r   2test_assert_series_equal_check_exact_index_defaultr     s]    J "((1C((3D"((1C()4D4&$--/4==?;r   )6numpyr   r   pandasrj   r   r   r   pandas._testing_testingr   r   r   r   markparametrizer-   rp   r   r$   r0   r=   from_recordsrC   rF   rM   rQ   rX   r\   r_   rc   rl   rq   rz   r   r   r   r   r   r   r   r   r   r   rS   r   r   r   linspace
MultiIndexfrom_arraysparamxfailr   r   r   r   <module>r      s      
 +&,-& %(DKh!HI: J: 	q5A;	ed5k"	hh(	hf&	q58	@	@ 	)	)	** );=M(NO%89
5 : P
5  D$<1v.D$<Sz2*	
 ""!fC:T4LA#sa""CjSztEcSVZa8	
*1+*1 e}5A 6A u6C 7CP222$2O.>">"?*98;;,434 <"?@A AA" 7G"45, 6, 4.1u6C)T * 7 2T	  HH/0HHR[[Aq)*	

 MM%%'9;U&VWMM%%'92;;q!Q;O&PQ	

 MM%%/1PQ MM%%/1PQ		
 	HH45HH45++##+O#P	

 	MM%%#%DE MM%%#%DE ++##+O#P	
-"F<G"F<r   