o
    gR!                     @   s   d dl Zd dlZd dlmZ d dlZd dlmZmZm	Z	 d dl
mZ dd Zdd Zdd	 Zd
d Zdd Zdd Zdd Zdd Zdd Zdd Zdd Zdd Zdd Zdd ZdS )     Nis_any_real_numeric_dtype)Index
MultiIndexSeriesc                 C   s   |  | sJ |  |  sJ |  | tsJ |  |  s#J |  |  ds/J |  t| r8J |  t| rBJ t| td}|  |sOJ | | sVJ | j	dkrd|  t
| rfJ d S d S )Ncategorydtype   )equalscopyastypeobjectto_flat_indexlistnparrayr   nlevelsr   )idxsame_values r   e/var/www/html/api-tag/env/lib/python3.10/site-packages/pandas/tests/indexes/multi/test_equivalence.pytest_equals   s   
r   c                 C   sT  | }t |}|dd }|dd |dd }|dd }tjtdd ||k W d    n1 s5w   Y  tdg| }tdg|d  dg }t||k| t||k| t|}t|dd }	t|dd |dd }
t|dd }tjtdd ||	k W d    n1 sw   Y  t||k| t||
k| t	|}t	|	}t	|
}t	|}tjtdd ||k W d    n1 sw   Y  t||k| t||k| tjtdd ||k W d    n	1 sw   Y  tjtdd ||k W d    n	1 sw   Y  tjtdd ||k W d    n	1 s;w   Y  d	}tjt|d ||k W d    n	1 sYw   Y  tjtdd ||k W d    n	1 suw   Y  t
|tstdgt |d
  ddg }|d }t||k| t||kt	| d S d S )Nr   r
   zLengths must match)matchTFz3Can only compare identically-labeled Series objects   )lenappendpytestraises
ValueErrorr   r   tmassert_numpy_array_equalr   
isinstancer   assert_series_equal)r   index_anindex_bindex_cindex_d	expected1	expected2array_aarray_barray_carray_dseries_aseries_bseries_cseries_dmsg	expected3itemr   r   r   test_equals_op"   sh   

 






 r8   c                  C   s   t ddggd } tg d}| | d k}tg d}t|| | | d k}t||  | | d k }t|| | | d k}t|| | | d k}t||  | | d k}t||  d S )Nr
   r   )FFFFr   )TFFF)r   from_productr   r   r"   r#   )mi	all_falseresultexpectedr   r   r   test_compare_tuple_   s   r>   c                  C   sV   t g d} | dk}tg d}t|| | dk}tg d}t|| d S )N))ab)r@   crA   r?   rB   )FFT)rA   )FFF)r   from_tuplesr   r   r"   r#   )r:   r<   r=   r   r   r   test_compare_tuple_strsy   s   rD   c                 C   s  |  | sJ |  | jrJ |  t| jsJ | | s J |  | d d r+J |  | d r4J ttttdtttdtttdgtg dtg dtg dgd}t|j	d d |j
d d d}| |rxJ ||rJ tttd}tttd}tg d}tg d	}t||g||gd}|  |rJ | |rJ tg d
}tddg}tg d}tg d}t||g||gd}|  |rJ d S )Nr      )r   r   r
   r   r   r      rF   )r   r
   r   r   r   r
   r   r
   )r
   r   r
   r
   r   r   r
   r   )levelscodesr   )r   r   r
   r   r   rF   )r   r
   r   r   r
   r   )foobarbazquxonetwo)r   r   r   r   rF   rF   )r   r
   r   r
   r   r
   )r   valuesr   equal_levelsr   r   ranger   r   rG   rH   )r   indexindex2
major_axis
minor_axismajor_codesminor_codesr   r   r   test_equals_multi   sB   , 	rX   c                 C   s   |   }|   }||sJ |ddg}||sJ ||r$J |ddg}||s2J t| dd}||rAJ ||sHJ d S )Nnew1new2F)tupleize_cols)r   	identical	set_namesr   r   tolist)r   r:   mi2mi4r   r   r   test_identical   s   ra   c                 C   s   | | k  sJ d S N)allr   r   r   r   test_equals_operator   s   re   c                  C   s^   t dtjfdtdfg} | dd | d }|rJ | dd | d }|r-J d S )Nr   20130101r
   r   )r   rC   pdNaT	Timestampr   )ir<   r   r   r   test_equals_missing_values   s
   rk   c                  C   st   t dtjftjtjfg} t tjtjfdtjfg}| |r#J t dtjftjtjfg}| |s8J d S )Ng     @T@)r   rC   r   nanr   mi1r_   r   r   r   -test_equals_missing_values_differently_sorted   s
   ro   c                  C   s0  t ttdtd} | | sJ | |  sJ | |     s+J |  }ddg|_|| s;J | |sBJ | | ddgrNJ |t	tdt	tdg}||rdJ || skJ | }|t	tdt	tdg}||rJ |  }||j
}|| rJ d S )N
   ABCD)r   rC   ziprQ   is_viewnamesr]   
set_levelsr   rG   )r:   r_   mi3r`   mi5r   r   r   test_is_   s$   
r|   c                 C   s   | j rJ d S rb   )_is_all_datesrd   r   r   r   test_is_all_dates   s   r~   c                 C   s   t | rJ d S rb   r   rd   r   r   r   test_is_numeric   s   r   c                  C   s\   t ddgg} tddg}t| | k}t|| tddg}t| | k}t|| d S )Nr   r
   TF)r   r9   r   r"   r%   )midxr=   r<   r   r   r   test_multiindex_compare  s   r   c                  C   sT   t tddgddddgg} t ddgddgg}| |r!J || r(J d S )Nr
   r   Int64r   rF   rE   )r   from_arraysr   r   rm   r   r   r   test_equals_ea_int_regular_int  s   r   )numpyr   r   pandas.core.dtypes.commonr   pandasrg   r   r   r   pandas._testing_testingr"   r   r8   r>   rD   rX   ra   re   rk   ro   r|   r~   r   r   r   r   r   r   r   <module>   s(    =1	
