
    Oh                     n    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 d Zd Zd Zd Zd Zd	 Zd
 Zy)    N)np_version_gt2)	DataFrame
MultiIndexc                 h    | j                         }| j                  }t        j                  ||       y )N)to_numpyvaluestmassert_numpy_array_equal)idxresultexps      r/var/www/html/diagnosisapp-backend/venv/lib/python3.12/site-packages/pandas/tests/indexes/multi/test_conversion.pytest_to_numpyr      s&    \\^F
**C,    c                 N   t        j                  |       }t        j                  dt              }g d|d d  t	        j
                  ||       t        j                  |       }t        j                  |       }t        j                  ||      sJ t        j                  | d      }t        j                  | d      }t        j                  ||      rJ t        sy d}t	        j                  t        |      5  t        j                  | d       d d d        y # 1 sw Y   y xY w)	N)   dtype)fooone)r   two)barr   )bazr   )quxr   )r   r   T)copyzGStarting with NumPy 2.0, the behavior of the 'copy' keyword has changedmatchF)npasarrayemptyobjectr	   r
   may_share_memoryarrayr   assert_produces_warningFutureWarning)r   r   expectedresult_copy1result_copy2msgs         r   test_array_interfacer+      s    ZZ_FxxF+HHQK 1 ::c?L::c?L|\::: 88Cd+L88Cd+L""<>>> TC		#	#M	= "
5!" " "s   :DD$c            	         g d} t        j                  |       }|j                  d      }t        |       }t	        j
                  ||       |j                         }||_        t	        j
                  ||       g d} t        j                  | ddg      }|j                  d      }t        |       }ddg|_        t	        j
                  ||       |j                         }||_        t	        j
                  ||       t        j                  |       }|j                  dddg      }t        |       }ddg|_        t	        j
                  ||       |j                  ddg      }||_        ddg|_        t	        j
                  ||       d	}t        j                  t        |
      5  |j                  d       d d d        d}t        j                  t        |
      5  |j                  dg       d d d        t        j                  t        d      t        j                  dd      g      }|j                  d      }t        t!        j"                  t!        j$                  dd      d      t!        j&                  t        j                  dd      d      d      }t	        j
                  ||       |j                         }||_        t	        j
                  ||       |j                  dddg      }t        t!        j"                  t!        j$                  dd      d      t!        j&                  t        j                  dd      d      d      }t	        j
                  ||       |j                  ddg      }||_        t	        j
                  ||       y # 1 sw Y   xY w# 1 sw Y   xY w)N))   r   )r-   r   )   r   )r.   r   Findexfirstsecondnames)r0   name)r5   z1'name' must be a list / sequence of column names.r   z<'name' should have same length as number of levels on index.   20130101   )periodsint64r   )r   r-   )r1   r2   )r   from_tuplesto_framer   r	   assert_frame_equalr0   columnspytestraises	TypeError
ValueErrorfrom_productrangepd
date_ranger   repeatarangetile)tuplesr0   r   r'   r*   s        r   test_to_framerK   7   s   =F""6*E^^%^(F H&(+^^FHN&(+=F""6'81DEE^^%^(F H*H&(+^^FHN&(+ ""6*E^^%w.A^BF H*H&(+^^'8!4^5FHN*H&(+
=C	y	, %G$% IC	z	- 'WI&' ##U1Xr}}ZQR/S$TUE^^%^(Fyy1G4a8wwr}}Z;Q?	
H &(+^^FHN&(+ ^^%w.A^BFYYryy':A>ggbmmJBAF	
H &(+^^'8!4^5FHN&(+E% %' 's   +N&#N3&N03N=c                  >   t        j                  t        j                  ddd      g dt        j                  g dd      g d	gg d
      } t        | j                        D ci c]  \  }}|| j                  |   j                  ! }}}t        t        j                  ddd      g dt        j                  g dd      g d	d
      }| j                  d      }|j                  j                         }t        j                  ||       ||k(  sJ y c c}}w )N19910905r   z
US/Eastern)r9   tz)r-   r-   r-   r.   r.   r.   )arO   brP   crQ   T)ordered)xrS   yzrS   rT   )datesrO   rP   rQ   r3   Fr/   )r   from_arraysrE   rF   Categorical	enumerater4   levelsr   r   r<   dtypesto_dictr	   r=   )miir5   original_dtypesexpected_dfdf	df_dtypess          r   test_to_frame_dtype_fidelityrc      s    			MM*aLANN94H*		
 '
B @I?RSGAttRYYq\///SOS]]:q\J# >M/		
K 
5	!B		!!#I"k*i''' Ts   '$Dc                      g d} t        j                  g dg dg dg|       }|j                         j                  j	                         }|| k(  sJ y )N)rU   r   rO   )rO   rP   rQ   )rS   rT   rU   )qwer3   )r   rW   r<   r>   tolist)r'   r]   r   s      r   $test_to_frame_resulting_column_orderri      sM    H				/?;8
B [[]""))+FXr   c                  T   ddg} ddg}t        j                  | |      }t        j                  t        d      5  |j                          d d d        |j                  d      }t        | ||	      }t        j                  ||       d d
g}t        j                  | |      }t        j                  t        d      5  |j                          d d d        |j                  d      }t        | |d
d
g	      }t        j                  ||       y # 1 sw Y   xY w# 1 sw Y   NxY w)N)r-   r.   )r8      rO   r3   z%Cannot create duplicate column labelsr   T)allow_duplicates)r0   r>   r   )	r   r;   r?   r@   rB   r<   r   r	   r=   )datar4   r0   r   r'   s        r   test_to_frame_duplicate_labelsrn      s   FD#JE""4u5E	z)P	Q  ^^T^2FUE:H&(+1IE""4u5E	z)P	Q  ^^T^2FUQF;H&(+  s   D DDD'c                 ~    t        j                  dd      }| j                         }t        j                  ||       y )Nr   F)tupleize_cols)rE   Indexto_flat_indexr	   assert_index_equal)r   r'   r   s      r   test_to_flat_indexrt      s:    xx	
 
H  F&(+r   )numpyr   r?   pandas.compat.numpyr   pandasrE   r   r   pandas._testing_testingr	   r   r+   rK   rc   ri   rn   rt    r   r   <module>r{      sA      .  - "FF,R(8,,,r   