
    I j"                        S SK r S SKJr  S SKJr  S SKJr  S[S jrS[S jr	\ R                  R                  S/ SQ5      S 5       r\ R                  R                  S	/ S
Q5      S 5       r\ R                  R                  SS/ SQ4S/ SQ4S/ SQ4S/ SQ4S/ SQ4/5      S 5       r\ R                  R                  SSS/4SS/4SS/4SS /4S!/ S"Q4/5      S# 5       r\ R                  R                  S$/ S%Q5      S& 5       r\ R                  R                  S'/ S(Q5      S) 5       r\ R                  R                  S*/ S+Q5      S, 5       r\ R                  R                  S-S.S/S0S1 S234S3S4S1 S234S5S6S7S1 S234S8S9S:S;S<S=S>S?/5      \ R                  R                  S@SSA/5      SB 5       5       r\ R                  R                  SCSDSESFSGSHSISJSKSLSMSNSOSPSQSRSSSTSUSVSWSSXS1 S234SY/5      SZ 5       rg)\    N)
CSSWarningCSSResolverc                 2    [        5       nU" XS9nX:X  d   eg N	inheritedr   )csspropsr	   resolveactuals        q/root/GenerationalWealth/GenerationalWealth/venv/lib/python3.13/site-packages/pandas/tests/io/formats/test_css.pyassert_resolvesr   
   s    mGS.F??    c                 >    [        5       nU" XS9nU" XS9nXE:X  d   eg r   r   )css1css2r	   r   	resolved1	resolved2s         r   assert_same_resolutionr      s)    mG2I2I!!!r   zname,norm,abnorm))
whitespacehello: world; foo: barz( 	 hello 	 :
  world 
  ;  
 foo: 	bar

)caser   zHello: WORLD; foO: bar)z
empty-declr   z; hello: world;; foo: bar;
; ;)z
empty-list ;c                     [        X5        g Nr   )namenormabnorms      r   test_css_parse_normalisationr"      s     4(r   zinvalid_css,remainder,msg))zhello-worldr   expected a colon)z border-style: solid; hello-worldzborder-style: solidr#   )z3border-style: solid; hello-world; font-weight: boldz&border-style: solid; font-weight: boldr#   )zfont-size: blahfont-size: 1emUnhandled size)zfont-size: 1a2br$   r%   )zfont-size: 1e5ptr$   r%   )zfont-size: 1+6ptr$   r%   )zfont-size: 1unknownunitr$   r%   )zfont-size: 10r$   r%   )zfont-size: 10 ptr$   r%   )zborder-top: 1pt solid red greenzborder-top: 1pt solid greenzToo manyc                     [         R                  " [        US9   [        X5        S S S 5        g ! , (       d  f       g = f)Nmatch)tmassert_produces_warningr   r   )invalid_css	remaindermsgs      r   test_css_parse_invalidr.   (   s(    2 
	#	#Jc	:{6 
;	:	:s   /
=zshorthand,expansionsmargin)z
margin-topzmargin-rightzmargin-bottomzmargin-leftpadding)zpadding-topzpadding-rightzpadding-bottomzpadding-leftzborder-width)zborder-top-widthzborder-right-widthzborder-bottom-widthborder-left-widthzborder-color)zborder-top-colorzborder-right-colorzborder-bottom-colorborder-left-colorzborder-style)zborder-top-stylezborder-right-stylezborder-bottom-styleborder-left-stylec                 J   Uu  p#pE[        U  S3USUSUSUS05        [        U  S3USUSUSUS05        [        U  S3USUSUSUS05        [        U  S3USUSUSUS05        [        R                  " [        S	S
9   [        U  S30 5        S S S 5        g ! , (       d  f       g = f)Nz: 1pt1ptz	: 1pt 4pt4ptz: 1pt 4pt 2pt2ptz: 1pt 4pt 2pt 0pt0ptzCould not expandr'   z: 1pt 1pt 1pt 1pt 1pt)r   r)   r*   r   )	shorthand
expansionstoprightbottomlefts         r   test_css_side_shorthandsr?   E   s    F  *C+Uc5%tUS +Y#ueUFE4QV!W +]#	eUE65$>
 +&'	eUE65$>
 
	#	#J6H	I9+%:;R@ 
J	I	Is   ;B
B"zshorthand,sidesz
border-topr;   zborder-rightr<   zborder-bottomr=   zborder-leftr>   border)r;   r<   r=   r>   c           	      >    SS jn[        U  S3U" USSS5      5        g )Nc                 z    0 nU  H2  nU(       a  XSU S3'   U(       a  X$SU S3'   U(       d  M*  X4SU S3'   M4     U$ )Nzborder-z-colorz-stylez-width )sidescolorstylewidthresolvedsides         r   create_border_dict;test_css_border_shorthand_sides.<locals>.create_border_dict   sV    D3874&/03874&/0u3874&/0  r   z: 1pt red solidredsolidr5   )NNNr   )r9   rD   rJ   s      r   test_css_border_shorthand_sidesrO      s*    	 +_%'9%QV'Wr   zprop, expected))z1pt red solidrL   rM   r5   )zred 1pt solidrP   )zred solid 1ptrP   )zsolid 1pt redrP   )z	red solid)rL   rM   
1.500000pt)z	1pt solid)blackrM   r5   )z1pt red)rL   noner5   )rL   )rL   rS   rQ   )r5   )rR   rS   r5   )rM   )rR   rM   rQ   )1em)rR   rS   12ptc                 4    Uu  p#n[        SU  3UUUS.5        g )Nzborder-left: )r2   r3   r1   rN   )propexpectedrE   rF   rG   s        r   test_css_border_shorthandsrY      s.    ( #E%
v!&!&!&	
r   zstyle,inherited,equiv))zmargin: 1px; margin: 2pxr   margin: 2px)margin: 1pxrZ   r[   )zmargin: 1px; margin: inheritrZ   rZ   )margin: 1px; margin-top: 2pxr   zHmargin-left: 1px; margin-right: 1px; margin-bottom: 1px; margin-top: 2px)margin-top: 2pxr[   r\   )r[   r]   r[   ) margin: 1px; margin-top: inheritrZ   r\   c                 R    [        5       nU" U5      nU" XS9nU" U5      nXV:X  d   eg r   r   )rF   r	   equivr   inherited_propsstyle_propsequiv_propss          r   test_css_precedencerd      s4    * mGi(O%;K%.K%%%r   zstyle,equiv))r^   z7margin-bottom: 1px; margin-right: 1px; margin-left: 1px)zmargin-top: inheritr   )zmargin-top: initialr   c                     [        X5        g r   r   )rF   r`   s     r   test_css_none_absentrf      s     5(r   zsize,resolved)zxx-small6ptzx-smallg      @fptsmallg333333#@)mediumrU   largeg      +@)zx-large18pt)zxx-large24pt)8pxrg   )z1.25pc15pt)z.25inrm   )z02.54cm72pt)z25.4mmrq   )z101.6qrq   relative_to16ptc                 8    Uc  S nOSU0n[        SU  3SU0US9  g Nz	font-sizezfont-size: r   rN   sizerr   rH   r	   s       r   test_css_absolute_font_sizerx      s1    ( 	 +.	k$(;*AYWr   zsize,relative_to,resolved)rT   NrU   )1.0emNrU   )1.25emNrp   )rT   rs   rs   )ry   rs   rs   )rz   rs   20pt)1remrs   rU   )z1.0remrs   rU   )z1.25remrs   rp   )100%NrU   )125%Nrp   )r}   rs   rs   )r~   rs   r{   )2exNrU   )z2.0exNrU   )z2.50exNrp   )inheritrs   rs   )smallerN10pt)r   rm   rp   largerg,@)r   rp   rm   c                 8    Uc  S nOSU0n[        SU  3SU0US9  g ru   rN   rv   s       r   test_css_relative_font_sizer     s1    6 	 +.	k$(;*AYWr   r   )pytestpandas.errorsr   pandas._testing_testingr)   pandas.io.formats.cssr   r   r   markparametrizer"   r.   r?   rO   rY   rd   rf   rx   r   rC   r   r   <module>r      s    $  -" 	)) 07107
 	QR	VW	
 	
 	
+!DAE!DA2 	w	'#	8*%	!	56		" &
'&
 (&)(& 
)
) 	s1gRL!	SG2,	T!HB- $ v7X 8%&X  !" "#   #!#	4D82'"+4X54Xr   