
    OhF              
          d dl mZ d dlZd dlmZ d dlZd dlZd dlZd dl	Z	d dl
mZ d dlmZmZmZmZ d dlmZmZmZmZmZmZmZ d dlmZ d dlmZ e	j<                  d        Zd	 Z d
 Z!e	jD                  jG                  dg d      d        Z$d Z%e	jD                  jG                  dg d      d        Z&d Z'e	jD                  jG                  dg d      d        Z(d Z)d Z*d Z+d Z,d Z-d Z.e	jD                  j_                  ed      d        Z0e	jD                  jc                  e d      d         Z2e	jD                  j_                  ed!      d"        Z3d# Z4d$ Z5d% Z6e	jD                  jc                  e d&      d'        Z7e	jD                  jc                   e       d(      d)        Z8e	jD                  jr                  d*        Z:e	jD                  jG                  d+g d,g d-g d.g d/g d0g d1g      d2        Z;y)3    )StringION)ascii_uppercase)using_string_dtype)HAS_PYARROWIS64PYPYis_platform_arm)CategoricalIndex	DataFrameIndex
MultiIndexSeries
date_rangeoption_context)Versionc                  x    t        t        j                  j                  d      j	                  d      g d      S )z&Dataframe with duplicate column names.   )i     )ar   br   columns)r   nprandomdefault_rngstandard_normal     l/var/www/html/diagnosisapp-backend/venv/lib/python3.12/site-packages/pandas/tests/frame/methods/test_info.pyduplicate_columns_framer        s1     
		a 00;$ r   c                      t               } t               }| j                  |       |j                         }t	        j
                  d      }||k(  sJ y )Nbufzd        <class 'pandas.core.frame.DataFrame'>
        RangeIndex: 0 entries
        Empty DataFrame
)r   r   infogetvaluetextwrapdedent)dfr#   resultexpecteds       r   test_info_emptyr+   )   sL    	B
*CGGG\\^F	H Xr   c            
      &   d} t        dt        j                  j                  d      j	                  d| t
              i      }t        t        j                  t        d            j                  t        j                  j                  d      j	                  dd| t
                          j                  d	      |d	<   |j                          t               }|j                  |
       ||d	   dk(     }t               }|j                  |
       y )Ni	  int64r   d   )sizedtype
abcdefghijr   
   categoryr"   d)r   r   r   r   integersintr   arraylisttakeastypeisnar   r$   )nr(   r#   df2s       r   'test_info_categorical_column_smoke_testr>   8   s    A	GRYY2215>>sRU>VW	XB
l#$))II!!!$--a!3-G	
 fZ	 zN
 GGI
*CGGG
R
^s"
#C
*CHHHr   fixture_func_name)	int_framefloat_framedatetime_framer    float_string_framec                     |j                  |       }t               }|j                  |       |j                         j	                         }t        |      dkD  sJ t               }|j                  |d       y )Nr"   r2   Fr#   verbose)getfixturevaluer   r$   r%   
splitlineslen)r?   requestframer#   r)   s        r   test_info_smoke_testrL   I   sg     ##$56E
*C	JJ3J\\^&&(Fv;
*C	JJ3J&r   c                     t               }| j                  dg      j                  d|       | j                  ddg      j                  d|       t               j                  |       y )NAr   FrF   r#   Br"   )r   reindexr$   r   )rA   r#   s     r   test_info_smoke_test2rR   ^   sf    
*C&++Es+Cc
+00C0H Kr   z&num_columns, max_info_columns, verbose))r2   r.   T)r2      T)r2   r2   T)r2   	   F)r2      Fc                 z   t        t        j                  j                  d      j	                  d| f            }t        d|      5  t               }|j                  |       |j                         }t               }|j                  ||       |j                         }||k(  sJ 	 d d d        y # 1 sw Y   y xY w)Nr      display.max_info_columnsr"   rE   )	r   r   r   r   r   r   r   r$   r%   )num_columnsmax_info_columnsrF   rK   
io_defaultr)   io_explicitr*   s           r   #test_info_default_verbose_selectionr]   h   s     bii++A.>>;?OPQE	24D	E 	"Z


z
"$$&j

{G
4'')!!!	" 	" 	"s   A!B11B:c                     t               } d}d}t        t        j                  j	                  d      j                  d|f            }|j                  d|        | j                         }d}||v sJ |j                  d|        | j                  d       | j                         }t        |      dkD  sJ t        |      D ]3  \  }}||cxk  r	||z   k  sn d	||z
   d	}	|j                  |	      r3J  y )
N  rW   r      TrO   z- #     Column  Dtype  
---    ------  -----  r    )r   r   r   r   r   r   r$   r%   seek	readlinesrI   	enumerate
startswith)
r#   r/   startrK   resheaderlinesilineline_nrs
             r   -test_info_verbose_check_header_separator_bodyrm      s    
*CDEbii++A.>>4yIJE	JJtJ%
,,.C=FS==	JJtJ%HHQKMMOEu:>>U# ,4A$$!e)A&G??7+++,r   z>size, header_exp, separator_exp, first_line_exp, last_line_exp))r   $ #   Column  Non-Null Count  Dtype  $---  ------  --------------  -----  $ 0   0       3 non-null      float64z$ 3   3       3 non-null      float64)rS   rn   ro   rp   z$ 10  10      3 non-null      float64)e   z% #    Column  Non-Null Count  Dtype  z%---   ------  --------------  -----  z% 0    0       3 non-null      float64z% 100  100     3 non-null      float64)r_   z& #     Column  Non-Null Count  Dtype  z&---    ------  --------------  -----  z& 0     0       3 non-null      float64z& 1000  1000    3 non-null      float64)i'  z' #      Column  Non-Null Count  Dtype  z'---     ------  --------------  -----  z' 0      0       3 non-null      float64z' 10000  10000   3 non-null      float64c                 j   t        t        j                  j                  d      j	                  d| f            }t               5 }|j                  dd|       |j                         j                         }ddd       dd }|^}	}
}}}|	|k(  sJ |
|k(  sJ ||k(  sJ ||k(  sJ y# 1 sw Y   3xY w)zETest header column, spacer, first line and last line in verbose mode.r   r`   T)rF   show_countsr#   N)	r   r   r   r   r   r   r$   r%   rH   )r/   
header_expseparator_expfirst_line_explast_line_exprK   r#   	all_linestablerh   	separator
first_linerest	last_lines                 r   %test_info_verbose_with_counts_spacingr      s    X bii++A.>>4yIJE	 0s

4Ts
;LLN--/	0
 aOE6;3FIzD)Z%%%'''%%%0 0s   3B))B2c                     t        dt        ddgd      i      } t               }| j                  |       |j	                         }t        | j                         j                               }t        j                  d| d      }||k(  sJ y )	Nr   rU   r   i8r0   r"   a      <class 'pandas.core.frame.DataFrame'>
    RangeIndex: 2 entries, 0 to 1
    Data columns (total 1 columns):
     #   Column  Non-Null Count  Dtype
    ---  ------  --------------  -----
     0   a       2 non-null      int64
    dtypes: int64(1)
    memory usage: z bytes
    )
r   r   r   r$   r%   floatmemory_usagesumr&   r'   )r(   r#   r)   bytesr*   s        r   test_info_memoryr      s    	CAd34	5B
*CGGG\\^F"//#'')*E ' 		H Xr   c                     t               } t        t        j                  j	                  d      j                  d            }|j                  |        t               } |j                  | d       | j                         }t        |j                               dkD  sJ |}t        dd      5  t               } |j                  |        | j                         }||k(  sJ 	 d d d        y # 1 sw Y   y xY w)Nr   )rW   rq   r"   rq   r#   max_colsr.   rX   )r   r   r   r   r   r   r$   r%   rI   rH   r   )ior(   r)   r*   s       r   test_info_wider      s    	B	299((+;;HE	FBGGGO	BGGSG![[]Fv  "#c)))H	2C	8 "Z
B!!!	" " "s   -4C++C4c                      t               } t        ddggddg      }|j                  |        | j                         j	                  d      }d|d   k(  sJ d	|d
   k(  sJ y )NrU   g       @r   r   r"   Tz% 0   a       1 non-null      int64  
rW   z% 1   a       1 non-null      float64
   )r   r   r$   r%   rH   )r   rK   ri   s      r   0test_info_duplicate_columns_shows_correct_dtypesr      sg    	B3xj3*5E	JJ2JKKM$$T*E3uQx???3uQx???r   c            	         g d} i }d}t        |       D ]G  \  }}t        j                  j                  d      j	                  d|      j                  |      ||<   I t        |      }t               }|j                  |       |j                         }d}||v sJ t        |       D ]  \  }}d|dd	|dd
|dd| }	|	|v rJ  y )Nr-   float64zdatetime64[ns]ztimedelta64[ns]
complex128objectboolr2   r   r/   r"   zY #   Column  Non-Null Count  Dtype          
---  ------  --------------  -----          ra   r4   z   z       z non-null     )
rd   r   r   r   r5   r:   r   r   r$   r%   )
dtypesdatar<   rj   r0   r(   r#   rg   rh   names
             r   test_info_shows_column_dtypesr     s    F D
Af% M5))''*33AA3>EEeLQM	4B
*CGGG
,,.C	7  S==f% 51Q%s1Q%wqe>%As{{r   c                     t        t        j                  j                  d      j	                  d            } dD ]u  \  }}t        dd      5  t               }| j                  ||       |j                         }t        |j                         j                  d            |k(  sJ 	 d d d        w dD ]u  \  }}t        dd	      5  t               }| j                  ||       |j                         }t        |j                         j                  d            |k(  sJ 	 d d d        w d
D ]  \  }}t        dd      5  t               }| j                  ||       |j                         }t        |j                         j                  d            |k(  sJ 	 d d d        t        dd	      5  t               }| j                  ||       |j                         }t        |j                         j                  d            |k(  sJ 	 d d d         y # 1 sw Y   xY w# 1 sw Y   zxY w# 1 sw Y   xY w# 1 sw Y   xY w)Nr   )r2   rW   ))rW   NrW   F   TrZ   r   rE   
))r   Nr   r   rW   ))r   rW   )rW   r   r   )r   r   r   r   r   r   r   r$   r%   rI   stripsplit)r(   len_rF   r#   rg   r   s         r   test_info_max_colsr     s   	299((+;;GD	EB< 8g.2 	8*CGGWG-,,.Csyy{((./4777		8 	88 > 8g.2 	8*CGGWG-,,.Csyy{((./4777		8 	88 , 8h.2 	8*CGGhG/,,.Csyy{((./4777		8 .2 	8*CGGhG/,,.Csyy{((./4777		8 	88	8 	8	8 	8	8 	8	8 	8s4   AHAH$ AH10AH=H!	$H.	1H:	=I	c            	         g d} i }d}t        |       D ]G  \  }}t        j                  j                  d      j	                  d|      j                  |      ||<   I t        |      }t               }|j                  |d       |j                         j                         }d|d   v sJ |j                  |d	       |j                         j                         }d|d   vsJ |j                  |d       |j                         j                         }t        j                  d
|d         sJ |j                  d d d df   j                  |d       |j                         j                         }t        j                  d
|d         rJ g d} i }d}t        |       D ]G  \  }}t        j                  j                  d      j	                  d|      j                  |      ||<   I t        |      }| |_        t        ddgit        dgt                     }|j                  |d       |j                         j                         }t        j                  d
|d         sJ |j                  |d       |j                         j                         }t        j                  d|d         sJ |j#                         j%                         }	t'        |       |z  dz  |j(                  j*                  z   }
|	|
k(  sJ t        j,                  |j                  j.                        dz   }|t        j,                  |j#                               k(  sJ |j#                         j%                         |j#                  d      j%                         k(  sJ t        ddgdg      j#                  d       t        ddgdg      j(                  j*                   t        dt1        j2                  dgt5        d      g      dg      }|j(                  j*                   |j#                  d       |j(                  j.                  j*                   |j#                  d      j%                         }|dkD  sJ y )Nr   r2   r   r   T)r#   r   zmemory usage: Fzmemory usage: [^+]+\+rW   )r-   r-   r-   r   r.   r   rU   foor   indexdeepzmemory usage: [^+]+$   r   rN   r   r     r   r   r   r   )rd   r   r   r   r5   r:   r   r   r$   r%   rH   rematchilocr   r   r   r   r   rI   r   nbytesr/   valuesr   from_productrange)r   r   r<   rj   r0   r(   r#   rg   df_with_object_indexdf_sizeexp_sizesize_dfmems                r   test_info_memory_usager   @  s   F D
Af% M5))''*33AA3>EEeLQM	4B
*C GG$G'
,,.
#
#
%Cs2w&&& GG%G(
,,.
#
#
%C3r7***GG$G'
,,.
#
#
%C 88,c"g666GGArrENCd3
,,.
#
#
%C xx0#b'::: 4FDAf% M5))''*33AA3>EEeLQM	4BBJ$cA3ZueWF7ST#D9
,,.
#
#
%C88,c"g666#F;
,,.
#
#
%C88+SW555 oo##%G6{Q"RXX__4Hh ggbjj''(1,Gbggboo/0000 ??  "boo4o&@&D&D&FFFF ause,999Eause,2299	j--ueDk.BCcU
B HHOOOO$OHHOO
//t/
$
(
(
*C7N7r   z'on PyPy deep=True doesn't change result)reasonc                     t        ddgit        dgt                    } | j                  dd      j	                         | j                  d      j	                         kD  sJ t        dt        dgt              i      }|j                  d      j	                         |j                         j	                         kD  sJ y 	Nr   rU   r   r   r   T)r   r   r   r   r   r   r   r   r   r   	df_objects     r   $test_info_memory_usage_deep_not_pypyr     s    $cA3ZueWF7ST))4)@DDF

+
+$
+
7
;
;
=	>	> 3uF ;<=I!!t!,002Y5K5K5M5Q5Q5SSSSr   z(on PyPy deep=True does not change resultc                     t        ddgit        dgt                    } | j                  dd      j	                         | j                  d      j	                         k(  sJ t        dt        dgt              i      }|j                  d      j	                         |j                         j	                         k(  sJ y r   r   r   s     r    test_info_memory_usage_deep_pypyr     s    $cA3ZueWF7ST))4)@DDF,,4,8<<>	?	? 3uF ;<=I!!t!,002i6L6L6N6R6R6TTTTr   z PyPy getsizeof() fails by designc            	          t        dt        j                  dgt        d      g      dg      } | j	                  d      j                         }|t        j                  |       z
  }t        |      dk  sJ y )	NrU   r   r   rN   r   Tr   r.   )	r   r   r   r   r   r   sys	getsizeofabs)r(   r   diffs      r   test_usage_via_getsizeofr     sk    	j--ueDk.BCcU
B //t/
$
(
(
*C r""Dt9s??r   c           
      &   t               }t        dt        d      g d      }|j                  |       d|j	                         vsJ t               }t        dt        d      t        t        d      t                    }|j                  |       d|j	                         v sJ t               }t        dt        d      t        t        d      d	            }|j                  |       | rt        rd|j	                         vsJ d|j	                         v sJ t               }t        dt        d      t        j                  t        d
      t        d
      g            }|j                  |       d|j	                         vsJ t               }t        dt        d      t        j                  t        d
      ddgg            }|j                  |       | rt        rd|j	                         vsJ y d|j	                         v sJ y )NrU   ab)rU   r   r`   r   r   r"   +ABCr   strr`   r   bar)r   r   r8   r$   r%   r   r   r   r   r   r   )using_infer_stringr#   r(   s      r    test_info_memory_usage_qualifiedr     s   
*C	1d4j		:BGGGclln$$$
*C	1d4jd5k0P	QBGGG#,,.   
*C	1d4jd5k0O	PBGGGk#,,.(((clln$$$
*C		4:Z%<%<eAha=Q%R
B GGGclln$$$
*C		4:Z%<%<eAhPU=W%X
B GGGk#,,.(((clln$$$r   c                     d } d}t        t              }t        j                  t	        t              t        d|      gddg      }t        dt        j                  j                  d	      j                  ||z        i|
      }|j                  d      }|j                  j                  |j                  j                  k(  sJ  | |       | |      kD  sJ  | |       | |      z
  dk  sJ y )Nc                 B    | j                  d      j                         S )NTr   )r   r   )fs    r   r   z>test_info_memory_usage_bug_on_multiindex.<locals>.memory_usage  s    ~~4~(,,..r   r.   20160101)periodsiddate)namesvaluer   r   i  )rI   r   r   r   r8   r   r   r   r   r   r   unstackr   r   )r   NMr   r(   	unstackeds         r   (test_info_memory_usage_bug_on_multiindexr     s    / 	AOA##	o	
:q ABVnE 
	"))''*::1q5AB%
B 

4 I99y//66666l95555 	"\"%55<<<r   c                      t        ddg      } t        t        j                  d      | |       }t	               }|j                  |       y )Nr   r   )r   r   r   r"   )r
   r   r   zerosr   r$   )idxr(   r#   s      r   test_info_categoricalr     s<    
C:
&C	288F#3	<B
*CGGGr   zGH 36579: fail on 32-bit systemc                     t        ddgddgdddg      }t               }|j                  d|	       |j                         }t	        j
                  d
| rt        rdnd d      }||k(  sJ y )NrU   r   r`   )rU   r   rN   rP   r   T)rs   r#   aR          <class 'pandas.core.frame.DataFrame'>
        Index: 2 entries, A to B
        Data columns (total 2 columns):
         #   Column  Non-Null Count  Dtype
        ---  ------  --------------  -----
         0   1       2 non-null      int64
         1   2       2 non-null      int64
        dtypes: int64(2)
        memory usage: z50.0z48.0+z bytes
        )r   r   r$   r%   r&   r'   r   )r   r(   r#   r)   r*   s        r   test_info_int_columnsr      s     
1v1a&)#s	<B
*CGG#G&\\^F	 "4vQ R	
	H Xr   zTODO(infer_string)c                    t        ddg      }t        j                  d       5  |j                         }d d d        | r	t        rd}n
t
        rdnd}t        |dg      }t        j                  |       y # 1 sw Y   CxY w)Nr   r   r         r   r   )r   tmassert_produces_warningr   r   r   r   assert_series_equal)r   r(   r)   r   r*   s        r   "test_memory_usage_empty_no_warningr     sr     
#s	$B		#	#D	) #"#keG9-H68,# #s   A77B c                     t        j                  d      } t        | j                        t        d      k(  r,t	               r"t        j
                  d| j                          t        ddgddgg      }t        dd	      5  t               }|j                  |
       |j                         }d d d        t               }|j                  |
       |j                         }|k(  sJ y # 1 sw Y   =xY w)Nnumbaz0.61z&Segfaults on ARM platforms with numba rU   r   r`   r   zcompute.use_numbaTr"   )pytestimportorskipr   __version__r	   skipr   r   r   r$   r%   )r   r(   r#   r)   r*   s        r   test_info_compute_numbar   %  s     (Eu  !WV_49J<U=N=N<OPQ	QFQF#	$B	+T	2  j
C 
 *CGGG||~HX   s    -C))C2z!row, columns, show_counts, result)   r   NT)r   r   TT)r   r   FF)rW   rW   NF)rW   rW   TF)rW   rW   FFc                 x   t        dt        d      t        d            j                  ddi      }t        j                  |j
                  d<   t        d| d|      5  t               5 }|j                  ||       d	|j                         v |u sJ 	 d d d        d d d        y # 1 sw Y   xY w# 1 sw Y   y xY w)
NrU   r2   r   r   )rU   rU   zdisplay.max_info_rowsrX   )r#   rs   znon-null)
r   r   r:   r   nanr   r   r   r$   r%   )rowr   rs   r)   r(   r#   s         r   test_info_show_countsr   8  s     
1eBiuRy	9	@	@!W	NBFFBGGDM	&@'
 < Z 	<3GGG5#,,.0V;;;	<< <	< 	<< <s$   B0(*B$B0$B-	)B00B9)<r   r   r   stringr   r   r&   numpyr   r   pandas._configr   pandas.compatr   r   r   r	   pandasr
   r   r   r   r   r   r   pandas._testing_testingr   pandas.util.versionr   fixturer    r+   r>   markparametrizerL   rR   r]   rm   r   r   r   r   r   r   r   skipifr   xfailr   r   r   r   r   r   r   
single_cpur   r   r   r   r   <module>r	     sY    	 " 
    -     '  " 	'	' ,	"	",, D$'P&Q'P&$,"$@88DRj D!JKT LT t8$NOU PU D!CD E"%J=2 t8$EF G, %'0DE
- F
-  $ '

<

<r   