ó
    6ljÅ  ã                   ót   • S r SSKrSSKJs  Jr  SSKJrJ	r	  SSK
JrJr  SSKJrJrJr  S rS rS rS	 rS
 rg)zÈThe expectation mappers: every declared result becomes the same `Answer`
a free-shape question produces, and a forced shape that found nothing comes
back `unanswerable` rather than as an empty figure.é    N)ÚDeclaredProseÚDeclaredScalar)Úprose_answerÚscalar_answer)ÚProseÚScalarÚUnanswerablec                  ó”  • [        SSSS/S9n [        U 5      nUR                  n[        U[        5      o3(       Gd@  SS[
        R                  " 5       ;   d  [        R                  " [        5      (       a  [        R                  " [        5      OSS[
        R                  " 5       ;   d  [        R                  " U5      (       a  [        R                  " U5      OS[        R                  " U5      S	[
        R                  " 5       ;   d  [        R                  " [        5      (       a  [        R                  " [        5      OS	[        R                  " U5      S
.-  n[        [        R                  " U5      5      eS =p#UR                  oUR                  nSovU:H  o3(       dÏ  [        R                  " SU4SXg45      S[
        R                  " 5       ;   d  [        R                  " U5      (       a  [        R                  " U5      OS[        R                  " U5      [        R                  " U5      [        R                  " U5      S.-  nSSU0-  n	[        [        R                  " U	5      5      eS =n=n=p7UR                  oUR                  nSovU:H  o3(       dÏ  [        R                  " SU4SXg45      S[
        R                  " 5       ;   d  [        R                  " U5      (       a  [        R                  " U5      OS[        R                  " U5      [        R                  " U5      [        R                  " U5      S.-  nSSU0-  n	[        [        R                  " U	5      5      eS =n=n=p7UR                  nS/o¥U
:H  of(       dº  [        R                  " SU4SXZ4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=pjg )Nz6.7 %ÚpercentzQ1 2026zt1-2-3)ÚvalueÚunitÚperiodÚ	cited_idsúRassert %(py6)s
{%(py6)s = %(py0)s(%(py3)s
{%(py3)s = %(py1)s.payload
}, %(py4)s)
}Ú
isinstanceÚanswerr   ©Úpy0Úpy1Úpy3Úpy4Úpy6©ú==)zJ%(py4)s
{%(py4)s = %(py2)s
{%(py2)s = %(py0)s.payload
}.value
} == %(py7)s©r   Úpy2r   Úpy7úassert %(py9)sÚpy9)zI%(py4)s
{%(py4)s = %(py2)s
{%(py2)s = %(py0)s.payload
}.unit
} == %(py7)s©z1%(py2)s
{%(py2)s = %(py0)s.cited_ids
} == %(py5)s©r   r   Úpy5úassert %(py7)sr   )r   r   Úpayloadr   r   Ú@py_builtinsÚlocalsÚ
@pytest_arÚ_should_repr_global_nameÚ	_safereprÚAssertionErrorÚ_format_explanationr   Ú_call_reprcomparer   r   )Úresultr   Ú@py_assert2Ú@py_assert5Ú@py_format7Ú@py_assert1Ú@py_assert3Ú@py_assert6Ú@py_format8Ú@py_format10Ú@py_assert4Ú@py_format6s               Ú;/home/mande/repo/quber/tests/playground/test_expectation.pyÚ"test_scalar_maps_to_scalar_payloadr9   
   sG  € Ü '°	À)ÐX`ÐWaÑb€FÜ˜6Ó"€FØ—n‘nÐ-Œ:�n¤fÓ-Ð-Ö-×-×-×-×-×-Ñ-Œ:×-×-×-Ñ-Œ:×-×-×-×-×-Ö-�f×-×-×-Ñ-�f×-×-Õ-�n×-×-×-×-×-Ô-¤f×-×-×-Ñ-¤f×-×-Õ-Ð-×-×-×-×-×-Ò-Ø�>‰>Ð*×ÑÐ* 7Ð* 7Ñ*×*×*×*Ò*Ð×*×*×*×*×*Õ*ˆ6×*×*×*Ñ*ˆ6×*×*Õ*ˆ>×*×*Ó*Ð×*×*Ó* 7×*×*×*×*×*×*Õ*Ø�>‰>Ð+×ÑÐ+ )Ð+ )Ñ+×+×+×+Ò+Ð×+×+×+×+×+Õ+ˆ6×+×+×+Ñ+ˆ6×+×+Õ+ˆ>×+×+Ó+Ð×+×+Ó+ )×+×+×+×+×+×+Õ+Ø×ÑÐ) ˜zÐ)˜zÑ)×)×)×)Ò)Ð×)×)×)×)×)Õ)ˆ6×)×)×)Ñ)ˆ6×)×)Õ)Ð×)×)Ó)˜z×)×)×)×)×)×)Ô)ó    c                  óî  • [        SS/ S9n [        U 5      nUR                  n[        U[        5      o3(       Gd@  SS[
        R                  " 5       ;   d  [        R                  " [        5      (       a  [        R                  " [        5      OSS[
        R                  " 5       ;   d  [        R                  " U5      (       a  [        R                  " U5      OS[        R                  " U5      S[
        R                  " 5       ;   d  [        R                  " [        5      (       a  [        R                  " [        5      OS[        R                  " U5      S.-  n[        [        R                  " U5      5      eS =p#UR                  oUR                  nSovU:H  o3(       dÏ  [        R                  " S	U4S
Xg45      S[
        R                  " 5       ;   d  [        R                  " U5      (       a  [        R                  " U5      OS[        R                  " U5      [        R                  " U5      [        R                  " U5      S.-  nSSU0-  n	[        [        R                  " U	5      5      eS =n=n=p7g )NÚ zthe context lacks it)r   Ú	not_foundr   r   r   r   r	   r   r   )zK%(py4)s
{%(py4)s = %(py2)s
{%(py2)s = %(py0)s.payload
}.reason
} == %(py7)sr   r   r   )r   r   r$   r   r	   r%   r&   r'   r(   r)   r*   r+   Úreasonr,   )
r-   r   r.   r/   r0   r1   r2   r3   r4   r5   s
             r8   Ú*test_scalar_not_found_becomes_unanswerabler?      sL  € Ü "Ð0FÐRTÑU€FÜ˜6Ó"€FØ—n‘nÐ3Œ:�n¤lÓ3Ð3Ö3×3×3×3×3×3Ñ3Œ:×3×3×3Ñ3Œ:×3×3×3×3×3Ö3�f×3×3×3Ñ3�f×3×3Õ3�n×3×3×3×3×3Ô3¤l×3×3×3Ñ3¤l×3×3Õ3Ð3×3×3×3×3×3Ò3Ø�>‰>Ð:× Ñ Ð:Ð$:Ð:Ð$:Ñ:×:×:×:Ò:Ð ×:×:×:×:×:Õ:ˆ6×:×:×:Ñ:ˆ6×:×:Õ:ˆ>×:×:Ó:Ð ×:×:Ó:Ð$:×:×:×:×:×:×:Ö:r:   c                  óš  • [        [        SS/S95      n U R                  n[        U[        5      o"(       Gd@  SS[
        R                  " 5       ;   d  [        R                  " [        5      (       a  [        R                  " [        5      OSS[
        R                  " 5       ;   d  [        R                  " U 5      (       a  [        R                  " U 5      OS[        R                  " U5      S[
        R                  " 5       ;   d  [        R                  " [        5      (       a  [        R                  " [        5      OS[        R                  " U5      S.-  n[        [        R                  " U5      5      eS =pU R                  oDR                  nSoeU:H  o"(       dÏ  [        R                  " S	U4S
XV45      S[
        R                  " 5       ;   d  [        R                  " U 5      (       a  [        R                  " U 5      OS[        R                  " U5      [        R                  " U5      [        R                  " U5      S.-  nSSU0-  n[        [        R                  " U5      5      eS =n=n=p&U R                  nS/o”U	:H  oU(       dº  [        R                  " S	U4SXI4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=pYg )Nzmargins compressedÚc9)Útextr   r   r   r   r   r   r   )zI%(py4)s
{%(py4)s = %(py2)s
{%(py2)s = %(py0)s.payload
}.text
} == %(py7)sr   r   r   r    r!   r#   r   )r   r   r$   r   r   r%   r&   r'   r(   r)   r*   r+   rB   r,   r   )r   r.   r/   r0   r1   r2   r3   r4   r5   r6   r7   s              r8   Ú test_prose_maps_to_prose_payloadrC      s»  € Üœ-Ð-AÈdÈVÑTÓU€FØ—n‘nÐ,Œ:�n¤eÓ,Ð,Ö,×,×,×,×,×,Ñ,Œ:×,×,×,Ñ,Œ:×,×,×,×,×,Ö,�f×,×,×,Ñ,�f×,×,Õ,�n×,×,×,×,×,Ô,¤e×,×,×,Ñ,¤e×,×,Õ,Ð,×,×,×,×,×,Ò,Ø�>‰>Ð6×ÑÐ6Ð"6Ð6Ð"6Ñ6×6×6×6Ò6Ð×6×6×6×6×6Õ6ˆ6×6×6×6Ñ6ˆ6×6×6Õ6ˆ>×6×6Ó6Ð×6×6Ó6Ð"6×6×6×6×6×6×6Õ6Ø×ÑÐ% ˜vÐ%˜vÑ%×%×%×%Ò%Ð×%×%×%×%×%Õ%ˆ6×%×%×%Ñ%ˆ6×%×%Õ%Ð×%×%Ó%˜v×%×%×%×%×%×%Ô%r:   c                  óö  • [        [        SSS95      n U R                  n[        U[        5      o"(       Gd@  SS[
        R                  " 5       ;   d  [        R                  " [        5      (       a  [        R                  " [        5      OSS[
        R                  " 5       ;   d  [        R                  " U 5      (       a  [        R                  " U 5      OS[        R                  " U5      S[
        R                  " 5       ;   d  [        R                  " [        5      (       a  [        R                  " [        5      OS[        R                  " U5      S.-  n[        [        R                  " U5      5      eS =pg )	Nr<   znothing on this©rB   r=   r   r   r   r	   r   )r   r   r$   r   r	   r%   r&   r'   r(   r)   r*   r+   ©r   r.   r/   r0   s       r8   Ú6test_prose_not_found_without_text_becomes_unanswerablerG   !   s¼   € Üœ-¨RÐ;LÑMÓN€FØ—n‘nÐ3Œ:�n¤lÓ3Ð3Ö3×3×3×3×3×3Ñ3Œ:×3×3×3Ñ3Œ:×3×3×3×3×3Ö3�f×3×3×3Ñ3�f×3×3Õ3�n×3×3×3×3×3Ô3¤l×3×3×3Ñ3¤l×3×3Õ3Ð3×3×3×3×3×3Ó3r:   c                  óö  • [        [        SSS95      n U R                  n[        U[        5      o"(       Gd@  SS[
        R                  " 5       ;   d  [        R                  " [        5      (       a  [        R                  " [        5      OSS[
        R                  " 5       ;   d  [        R                  " U 5      (       a  [        R                  " U 5      OS[        R                  " U5      S[
        R                  " 5       ;   d  [        R                  " [        5      (       a  [        R                  " [        5      OS[        R                  " U5      S.-  n[        [        R                  " U5      5      eS =pg )	Nzpartial readingÚ
incompleterE   r   r   r   r   r   )r   r   r$   r   r   r%   r&   r'   r(   r)   r*   r+   rF   s       r8   Ú:test_prose_with_text_keeps_text_even_when_not_found_is_setrJ   &   s¼   € Üœ-Ð->È,ÑWÓX€FØ—n‘nÐ,Œ:�n¤eÓ,Ð,Ö,×,×,×,×,×,Ñ,Œ:×,×,×,Ñ,Œ:×,×,×,×,×,Ö,�f×,×,×,Ñ,�f×,×,Õ,�n×,×,×,×,×,Ô,¤e×,×,×,Ñ,¤e×,×,Õ,Ð,×,×,×,×,×,Ó,r:   )Ú__doc__Úbuiltinsr%   Ú_pytest.assertion.rewriteÚ	assertionÚrewriter'   Ú!quber.playground.answers.declaredr   r   Ú$quber.playground.answers.expectationr   r   Úquber.playground.answers.shapesr   r   r	   r9   r?   rC   rG   rJ   © r:   r8   Ú<module>rT      s6   ðñ7÷ „ × Kß Lß GÑ Gò*ò;ò&ò4ó
-r:   