ó
    9°Mj  ã                  ó–   • S r SSKJr  SSKrSSKJs  Jr  SSK	r	SSK
r
SSKJr  SSKJr  SSKJrJr  SSKJr  SSKJr  S	 rS
 rS rS rg)zOReview artifacts draw the final content_region box, not the overrunning region.é    )ÚannotationsN)ÚPath)ÚImage)ÚExtractedTableÚGroundedCell)Úrender_flags_html)Ú
before_b64c                 óº  • [         R                  " SSS5      n SnSn[         R                  " [        R                  " [
        R                  " [        XU5      5      5      5      nSu  pE[        [        SSU-   5      S	-  5      [        [        S
SU-
  5      S	-  5      -
  n[        [        SSU-   5      S	-  5      [        [        S
SU-
  5      S	-  5      -
  nUR                  S   oˆU-
  n	[        U	5      n
SoºU:*  oÌ(       Gd"  [        R                  " SU4SX«45      S[        R                   " 5       ;   d  [        R"                  " [        5      (       a  [        R$                  " [        5      OS[        R$                  " U5      S[        R                   " 5       ;   d  [        R"                  " U5      (       a  [        R$                  " U5      OS[        R$                  " U
5      [        R$                  " U5      S.-  nSSU0-  n['        [        R(                  " U5      5      eS =n=n	=n
=pËUR                  S   oˆU-
  n	[        U	5      n
SoºU:*  oÌ(       Gd"  [        R                  " SU4SX«45      S[        R                   " 5       ;   d  [        R"                  " [        5      (       a  [        R$                  " [        5      OS[        R$                  " U5      S[        R                   " 5       ;   d  [        R"                  " U5      (       a  [        R$                  " U5      OS[        R$                  " U
5      [        R$                  " U5      S.-  nSSU0-  n['        [        R(                  " U5      5      eS =n=n	=n
=pËUR+                  SS9=(       d    / nS U 5       n[-        U5      nU(       d¢  SS[        R                   " 5       ;   d  [        R"                  " [,        5      (       a  [        R$                  " [,        5      OS[        R$                  " U5      [        R$                  " U5      S.-  n['        [        R(                  " U5      5      eS =nng )NÚRGB)éd   r   ©éÿ   r   r   )çš™™™™™¹?r   ç      à?gš™™™™™Ù?)çš™™™™™©?r   çÍÌÌÌÌÌì?çš™™™™™é?)gš™™™™™™?gú~j¼t“ˆ?g      ð?r   r   g        r   r   r   é   )ú<=)z<%(py6)s
{%(py6)s = %(py0)s((%(py2)s - %(py3)s))
} <= %(py9)sÚabsÚ
expected_w)Úpy0Úpy2Úpy3Úpy6Úpy9zassert %(py11)sÚpy11Ú
expected_hi   )Ú	maxcolorsc              3  ó0   #   • U  H  u  pUS :H  v •  M     g7f))r   éZ   éë   N© )Ú.0Ú_countÚcolors      Ú</home/mande/repo/quber/tests/review/test_review_artifacts.pyÚ	<genexpr>ÚDtest_before_b64_box_and_crop_use_separate_regions.<locals>.<genexpr>!   s   é € ÐAº&©¨ˆu˜Ö$º&ùs   ‚z,assert %(py4)s
{%(py4)s = %(py0)s(%(py2)s)
}Úany©r   r   Úpy4)ÚPImageÚnewÚopenÚioÚBytesIOÚbase64Ú	b64decoder	   ÚintÚminÚmaxÚsizer   Ú
@pytest_arÚ_call_reprcompareÚ@py_builtinsÚlocalsÚ_should_repr_global_nameÚ	_safereprÚAssertionErrorÚ_format_explanationÚ	getcolorsr*   )ÚimgÚboxÚcrop_regionÚoutÚmxÚmyr   r   Ú@py_assert1Ú@py_assert4Ú@py_assert5Ú@py_assert8Ú@py_assert7Ú@py_format10Ú@py_format12ÚcolorsÚ@py_assert3Ú@py_format5s                     r'   Ú1test_before_b64_box_and_crop_use_separate_regionsrQ      sœ  € ô �*Š*�U˜J¨Ó
8€CØ
"€CØ*€Kä
�+Š+”b—j’j¤×!1Ò!1´*¸SÀ{Ó2SÓ!TÓUÓ
V€Cà�F€BÜ”S˜˜d R™iÓ(¨3Ñ.Ó/´#´c¸#¸tÀb¹yÓ6IÈCÑ6OÓ2PÑP€JÜ”S˜˜d R™iÓ(¨3Ñ.Ó/´#´c¸#¸tÀb¹yÓ6IÈCÑ6OÓ2PÑP€JØ�x‰x˜‰{Ð-˜ZÑ'Ð-Œ3Ð'Ó(Ð-¨AÐ-¨AÑ-×-×-×-Ó-Ð(×-×-×-×-×-Õ-Œ3×-×-×-Ñ-Œ3×-×-Õ-ˆ{×-×-×-×-×-Ô-˜Z×-×-×-Ñ-˜Z×-×-Õ-Ð(×-×-Ó-¨A×-×-×-×-×-×-×-Ø�x‰x˜‰{Ð-˜ZÑ'Ð-Œ3Ð'Ó(Ð-¨AÐ-¨AÑ-×-×-×-Ó-Ð(×-×-×-×-×-Õ-Œ3×-×-×-Ñ-Œ3×-×-Õ-ˆ{×-×-×-×-×-Ô-˜Z×-×-×-Ñ-˜Z×-×-Õ-Ð(×-×-Ó-¨A×-×-×-×-×-×-×-à�]‰] Wˆ]Ð-×3°€FÙA¹&ÓAÐAŒ3ÐAÓAÐAÖA×A×A×A×A×AÑAŒ3×A×A×AÑAŒ3×A×AÕAÐA×A×AÓAÐA×A×A×A×A×AÔAó    c                ó°   • U  VVVVs/ s H$  o" VVVs/ s H  u  p4n[        X4US9PM     snnnPM&     nnnnn[        SSSUSSS.UD6$ s  snnnf s  snnnnf )N)ÚtextÚstatusÚnotez| a |
| --- |
| 1 |r   )r   r   r   r   )r   r   r   gÍÌÌÌÌÌÜ?)ÚmarkdownÚpageÚcorrected_gridÚ
som_regionÚcontent_regionr#   )r   r   )ÚcellsÚkwÚrowrT   rU   rV   Úgrids          r'   Ú_tabler`   $   sv   € áejöÚejÐ^aÐUXÕYÒUXÑ?Q¸tÈTŒ˜4°TÔ	:ÑUXÖYÑejð 	ó ô ð Ø(ØØØ'Ø,ñð ñð ùô 	Zùõs   ˆA
“A	ª	A
Á	A
c                óÄ  • UR                  SS 5        [        SS/SS/SS//S	S
S/S9nU S-  n[        S5      U/4/n[        XC5      oUU:H  of(       GdX  [        R
                  " SU4SXS45      S[        R                  " 5       ;   d  [        R                  " [        5      (       a  [        R                  " [        5      OS[        R                  " U5      S[        R                  " 5       ;   d  [        R                  " U5      (       a  [        R                  " U5      OS[        R                  " U5      S[        R                  " 5       ;   d  [        R                  " U5      (       a  [        R                  " U5      OSS.-  nSSU0-  n[        [        R                  " U5      5      eS =n=pVUR                  5       n	SoªU	;   o»(       d¥  [        R
                  " SU4SX©45      [        R                  " U
5      S[        R                  " 5       ;   d  [        R                  " U	5      (       a  [        R                  " U	5      OSS.-  nSSU0-  n[        [        R                  " U5      5      eS =p«SoªU	;   o»(       d¥  [        R
                  " SU4SX©45      [        R                  " U
5      S[        R                  " 5       ;   d  [        R                  " U	5      (       a  [        R                  " U	5      OSS.-  nSSU0-  n[        [        R                  " U5      5      eS =p«SoªU	;   o»(       d¥  [        R
                  " SU4SX©45      [        R                  " U
5      S[        R                  " 5       ;   d  [        R                  " U	5      (       a  [        R                  " U	5      OSS.-  nSSU0-  n[        [        R                  " U5      5      eS =p«SoªU	;   o»(       d¥  [        R
                  " SU4SX©45      [        R                  " U
5      S[        R                  " 5       ;   d  [        R                  " U	5      (       a  [        R                  " U	5      OSS.-  nSSU0-  n[        [        R                  " U5      5      eS =p«S oªU	;   o»(       d¥  [        R
                  " SU4SX©45      [        R                  " U
5      S[        R                  " 5       ;   d  [        R                  " U	5      (       a  [        R                  " U	5      OSS.-  nSSU0-  n[        [        R                  " U5      5      eS =p«S!oªU	;   o»(       d¥  [        R
                  " SU4SX©45      [        R                  " U
5      S[        R                  " 5       ;   d  [        R                  " U	5      (       a  [        R                  " U	5      OSS.-  nSSU0-  n[        [        R                  " U5      5      eS =p«S"oªU	;   o»(       d¥  [        R
                  " SU4SX©45      [        R                  " U
5      S[        R                  " 5       ;   d  [        R                  " U	5      (       a  [        R                  " U	5      OSS.-  nSSU0-  n[        [        R                  " U5      5      eS =p«S#oªU	;   o»(       d¥  [        R
                  " SU4SX©45      [        R                  " U
5      S[        R                  " 5       ;   d  [        R                  " U	5      (       a  [        R                  " U	5      OSS.-  nSSU0-  n[        [        R                  " U5      5      eS =p«g )$Nz#quber.review.flags.render_flag_pagec                ó2   • [         R                  " SSS5      $ )Nr   )éP   é<   r   )r-   r.   )ÚpdfrX   Údpis      r'   Ú<lambda>ÚEtest_render_flags_html_shows_every_flagged_decision.<locals>.<lambda>8   s   € œvŸzšz¨%°¸?ÔKrR   )ÚPayorÚ
unverifiedz&nothing printed at the header position)Ú2022Ú
reconciledN)ÚTotalÚtotal_label_addedú"the row visibly totals its section©z$ 5rl   N)zRate(1)Údefectz(the page prints 'Effective Rate(1)' here)z9%rl   Nz	doc-p1-t1zRevenue by payorzAttachment 1)Útable_idÚtitleÚdropped_textúdoc.flags.htmlúdoc.pdf)ú==)z9%(py5)s
{%(py5)s = %(py0)s(%(py2)s, %(py3)s)
} == %(py7)sr   rD   )r   r   r   Úpy5Úpy7zassert %(py9)sr   zclass="unverified">Payor)Úin)z%(py1)s in %(py3)sÚhtml)Úpy1r   zassert %(py5)srx   zclass="defect">Rate(1)zclass="total_label_added">Totalz2the page prints &#x27;Effective Rate(1)&#x27; herero   z)header_text_dropped</span> 'Attachment 1'zdoc-p1-t1: Revenue by payorzdata:image/png;base64,)Úsetattrr`   r   r   r8   r9   r:   r;   r<   r=   r>   r?   Ú	read_text)Útmp_pathÚmonkeypatchÚtablerD   rG   rH   Ú@py_assert6Ú@py_format8rL   r{   Ú@py_assert0Ú@py_assert2Ú@py_format4Ú@py_format6s                 r'   Ú3test_render_flags_html_shows_every_flagged_decisionrˆ   2   s(  € ð ×ÑØ-ÙKôô ð RØ,ðð
 UØ+ðð OÐPjÐkð
	
ð Ø Ø$Ð%ñ€Eð  Ð%Ñ
%€Cä# I›°°Ð8Ð9ÐFÔÐ9Ó?ÐFÀ3ÑF×F×F×FÓFÐ?×F×F×F×F×FÕFÔ×F×F×FÑFÔ×F×FÕFÐ9×F×F×F×F×FÔF¸3×F×F×FÑF¸3×F×FÕFÐ?×F×F×F×F×FÔFÀ3×F×F×FÑFÀ3×F×F×F×F×F×FÕFØ�=‰=‹?€DØ%Ð-¨Ñ-×-×-×-Ò-Ð%×-×-Ô-Ð%×-×-×-×-×-Ô-¨×-×-×-Ñ-¨×-×-×-×-×-×-Ó-Ø#Ð+ tÑ+×+×+×+Ò+Ð#×+×+Ô+Ð#×+×+×+×+×+Ô+ t×+×+×+Ñ+ t×+×+×+×+×+×+Ó+Ø,Ð4°Ñ4×4×4×4Ò4Ð,×4×4Ô4Ð,×4×4×4×4×4Ô4°×4×4×4Ñ4°×4×4×4×4×4×4Ó4Ø?ÐGÀ4ÑG×G×G×GÒGÐ?×G×GÔGÐ?×G×G×G×G×GÔGÀ4×G×G×GÑGÀ4×G×G×G×G×G×GÓGØ/Ð7°4Ñ7×7×7×7Ò7Ð/×7×7Ô7Ð/×7×7×7×7×7Ô7°4×7×7×7Ñ7°4×7×7×7×7×7×7Ó7Ø6Ð>¸$Ñ>×>×>×>Ò>Ð6×>×>Ô>Ð6×>×>×>×>×>Ô>¸$×>×>×>Ñ>¸$×>×>×>×>×>×>Ó>Ø(Ð0¨DÑ0×0×0×0Ò0Ð(×0×0Ô0Ð(×0×0×0×0×0Ô0¨D×0×0×0Ñ0¨D×0×0×0×0×0×0Ó0Ø#Ð+ tÑ+×+×+×+Ò+Ð#×+×+Ô+Ð#×+×+×+×+×+Ô+ t×+×+×+Ñ+ t×+×+×+×+×+×+Ô+rR   c                óB  • [        SS//5      nU S-  n[        S5      U/4/n[        X25      nS oTUL of(       Gd"  [        R                  " SU4SXE45      S[
        R                  " 5       ;   d  [        R                  " [        5      (       a  [        R                  " [        5      OS[        R                  " U5      S[
        R                  " 5       ;   d  [        R                  " U5      (       a  [        R                  " U5      OS[        R                  " U5      [        R                  " U5      S	.-  nS
SU0-  n[        [        R                  " U5      5      eS =n=n=peUR                  o3" 5       o™(       + oª(       dš  SS[
        R                  " 5       ;   d  [        R                  " U5      (       a  [        R                  " U5      OS[        R                  " U5      [        R                  " U	5      S.-  n[        [        R                  " U5      5      eS =n=pšg )N)ÚRevenuerl   Nrp   ru   rv   )Úis)z9%(py5)s
{%(py5)s = %(py0)s(%(py2)s, %(py3)s)
} is %(py8)sr   rD   )r   r   r   rx   Úpy8zassert %(py10)sÚpy10zEassert not %(py4)s
{%(py4)s = %(py2)s
{%(py2)s = %(py0)s.exists
}()
}r+   )r`   r   r   r8   r9   r:   r;   r<   r=   r>   r?   Úexists)r   r�   rD   rG   rH   rK   r‚   Ú@py_format9Ú@py_format11rO   rI   r‡   s               r'   Ú?test_render_flags_html_writes_nothing_without_flagged_decisionsr‘   X   s<  € ÜÐ4Ð6QÐRÐSÓT€EØ
Ð%Ñ
%€Cä# I›°°Ð8Ð9ÐGÔÐ9Ó?ÐGÀ4ÐGÀ4ÐG×G×G×GÓGÐ?×G×G×G×G×GÕGÔ×G×G×GÑGÔ×G×GÕGÐ9×G×G×G×G×GÔG¸3×G×G×GÑG¸3×G×GÕGÐ?×G×GÓGÀ4×G×G×G×G×G×GÕGØ�z‰zÐˆz‹|ÐÔÐÕ×××××Ñˆs×××Ñˆs××Õˆz××Óˆ|×××××ÕrR   )Ú__doc__Ú
__future__r   Úbuiltinsr:   Ú_pytest.assertion.rewriteÚ	assertionÚrewriter8   r2   r0   Úpathlibr   ÚPILr   r-   Úquber.core.extractors.baser   r   Úquber.review.flagsr   Úquber.review.htmlr	   rQ   r`   rˆ   r‘   r#   rR   r'   Ú<module>r�      s:   ðÙ Uå "ç  „ ƒÛ 	Ý å ç CÝ 0Ý (òBò(ò#,óLrR   