ó
    6lj=  ã                   ód   • S r SSKrSSKJs  Jr  SSKJr  SSK	J
r
JrJrJr  S rS rS rS rS	 rg)
z¹The answer shapes: the union discriminates on `kind`, a scalar's `number`
is derived from its printed `value`, and 'not present' stays distinguishable
from zero without reading English.é    N)ÚDecimal)ÚAnswerÚPointÚScalarÚUnanswerablec                  ó0  • [         R                  " SSSS.0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[         R                  " SS
SS.0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[         R                  " SSSS.05      nUR                  ofR                  nSo‡U:H  o"(       dÏ  [        R                  " SU4SXx4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(g )NÚpayloadÚscalarz$14.47©ÚkindÚvaluezRassert %(py6)s
{%(py6)s = %(py0)s(%(py3)s
{%(py3)s = %(py1)s.payload
}, %(py4)s)
}Ú
isinstanceÚar   )Úpy0Úpy1Úpy3Úpy4Úpy6Úunanswerableznot printed©r   ÚreasonÚbr   ÚproseÚbecause)r   Útext©ú==©zI%(py4)s
{%(py4)s = %(py2)s
{%(py2)s = %(py0)s.payload
}.kind
} == %(py7)sÚc©r   Úpy2r   Úpy7úassert %(py9)sÚpy9)r   Úmodel_validater	   r   r   Ú@py_builtinsÚlocalsÚ
@pytest_arÚ_should_repr_global_nameÚ	_safereprÚAssertionErrorÚ_format_explanationr   r   Ú_call_reprcompare)r   Ú@py_assert2Ú@py_assert5Ú@py_format7r   r   Ú@py_assert1Ú@py_assert3Ú@py_assert6Ú@py_format8Ú@py_format10s              Ú6/home/mande/repo/quber/tests/playground/test_shapes.pyÚ test_union_discriminates_on_kindr7   
   s!  € Ü×Ò˜y°8ÀhÑ*OÐPÓQ€AØ—i‘iÐ(Œ:�i¤Ó(Ð(Ö(×(×(×(×(×(Ñ(Œ:×(×(×(Ñ(Œ:×(×(×(×(×(Ö(�a×(×(×(Ñ(�a×(×(Õ(�i×(×(×(×(×(Ô(¤×(×(×(Ñ(¤×(×(Õ(Ð(×(×(×(×(×(Ò(Ü×Ò˜y°>È]Ñ*[Ð\Ó]€AØ—i‘iÐ.Œ:�i¤Ó.Ð.Ö.×.×.×.×.×.Ñ.Œ:×.×.×.Ñ.Œ:×.×.×.×.×.Ö.�a×.×.×.Ñ.�a×.×.Õ.�i×.×.×.×.×.Ô.¤×.×.×.Ñ.¤×.×.Õ.Ð.×.×.×.×.×.Ò.Ü×Ò˜y°7ÀIÑ*NÐOÓP€AØ�9‰9Ð$�>‰>Ð$˜WÐ$˜WÑ$×$×$×$Ò$ˆ>×$×$×$×$×$Õ$ˆ1×$×$×$Ñ$ˆ1×$×$Õ$ˆ9×$×$Ó$ˆ>×$×$Ó$˜W×$×$×$×$×$×$Ö$ó    c            
      óö  • [        SS9n U R                  nSn[        U5      o1U:H  oD(       Gd"  [        R                  " SU4SX45      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      [        R                  " U5      S.-  nS	S
U0-  n[        [        R                  " U5      5      eS =n=n=p#Sn[        US9oDR                  nSn[        U5      o‚U:H  o3(       GdT  [        R                  " SU4SX(45      S[
        R                  " 5       ;   d  [        R                  " [         5      (       a  [        R                  " [         5      OS[        R                  " U5      [        R                  " U5      [        R                  " U5      S[
        R                  " 5       ;   d  [        R                  " [        5      (       a  [        R                  " [        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=n=pxSn[        US9oDR                  nS o²UL o3(       dì  [        R                  " SU4SX+45      S[
        R                  " 5       ;   d  [        R                  " [         5      (       a  [        R                  " [         5      OS[        R                  " U5      [        R                  " U5      [        R                  " U5      [        R                  " U5      S.-  nSSU0-  n[        [        R                  " U5      5      eS =n=n=n=p;g )Nz
$ (10,550)©r   z-10550r   )zL%(py2)s
{%(py2)s = %(py0)s.number
} == %(py8)s
{%(py8)s = %(py4)s(%(py6)s)
}Úsr   )r   r!   r   r   Úpy8zassert %(py10)sÚpy10z6.7 %z6.7)zs%(py6)s
{%(py6)s = %(py4)s
{%(py4)s = %(py0)s(value=%(py2)s)
}.number
} == %(py12)s
{%(py12)s = %(py8)s(%(py10)s)
}r   )r   r!   r   r   r<   r=   Úpy12zassert %(py14)sÚpy14zn/a)Úis)zR%(py6)s
{%(py6)s = %(py4)s
{%(py4)s = %(py0)s(value=%(py2)s)
}.number
} is %(py9)s)r   r!   r   r   r$   zassert %(py11)sÚpy11)r   Únumberr   r(   r-   r&   r'   r)   r*   r+   r,   )r;   r1   r/   Ú@py_assert7r2   Ú@py_format9Ú@py_format11Ú@py_assert9Ú@py_assert11Ú@py_format13Ú@py_format15Ú@py_assert8r5   Ú@py_format12s                 r6   Ú test_scalar_number_follows_valuerL      s  € Ü�\Ñ"€AØ�8‰8Ð(˜xÐ(”w˜xÓ(Ð(Ð(Ñ(×(×(×(Ó(ˆ8×(×(×(×(×(Õ(ˆ1×(×(×(Ñ(ˆ1×(×(Õ(ˆ8×(×(×(×(×(Ô(”w×(×(×(Ñ(”w×(×(Õ(˜x×(×(Ó(Ð(×(×(×(×(×(×(Õ(ØÐ9Œ6˜Ñ Ð9×'Ñ'Ð9°5Ð9¬7°5«>Ð9¨>Ñ9×9×9×9Ó9Ð'×9×9×9×9×9Õ9Œ6×9×9×9Ñ9Œ6×9×9Õ9˜×9×9Ó9Ð ×9×9Ó9Ð'×9×9×9×9×9Ô9¬7×9×9×9Ñ9¬7×9×9Õ9°5×9×9Ó9¨>×9×9×9×9×9×9×9Ñ9ØÐ-Œ6˜ÑÐ-×%Ñ%Ð-¨Ð-¨Ð-×-×-×-Ò-Ð%×-×-×-×-×-Õ-Œ6×-×-×-Ñ-Œ6×-×-Õ-˜×-×-Ó-Ð×-×-Ó-Ð%×-×-Ó-¨×-×-×-×-×-×-×-Ð-r8   c                  ó:  • [        SS9R                  SS9n U S   nSo!U:H  o3(       do  [        R                  " SU4SX45      [        R                  " U5      [        R                  " U5      S	.-  nS
SU0-  n[        [        R                  " U5      5      eS =n=p2g )Nz65%r:   Újson)ÚmoderB   Ú65r   )z%(py1)s == %(py4)s)r   r   zassert %(py6)sr   )r   Ú
model_dumpr(   r-   r*   r+   r,   )ÚdumpedÚ@py_assert0r2   r.   Ú@py_format5r0   s         r6   Ú%test_number_serializes_with_the_modelrU      sj   € Ü˜%Ñ ×+Ñ+°Ð+Ð8€FØ�(ÑÐ#˜tÐ#˜tÑ#×#×#×#Ò#Ð×#×#Ô#Ð×#×#Ó#˜t×#×#×#×#×#×#Ô#r8   c                  óP  • Sn Sn[        XS9o"R                  nSn[        U5      oSU:H  of(       Gdi  [        R                  " SU4SX545      S[
        R                  " 5       ;   d  [        R                  " [         5      (       a  [        R                  " [         5      OS[        R                  " U 5      [        R                  " U5      [        R                  " U5      [        R                  " U5      S[
        R                  " 5       ;   d  [        R                  " [        5      (       a  [        R                  " [        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=n=n=pEg )NÚQ1z(0.06))Úlabelr   z-0.06r   )zƒ%(py8)s
{%(py8)s = %(py6)s
{%(py6)s = %(py0)s(label=%(py2)s, value=%(py4)s)
}.number
} == %(py14)s
{%(py14)s = %(py10)s(%(py12)s)
}r   r   )r   r!   r   r   r<   r=   r>   r?   zassert %(py16)sÚpy16)r   rB   r   r(   r-   r&   r'   r)   r*   r+   r,   )	r1   r2   r/   rC   rG   Ú@py_assert13rF   rI   Ú@py_format17s	            r6   Ú%test_point_number_reads_like_a_scalarr\      så   € ØÐG 8ÐGŒ5�tÑ,ÐG×3Ñ3ÐG¸wÐG´w¸wÓ7GÐGÐ7GÑG×G×G×GÓGÐ3×G×G×G×G×GÕGŒ5×G×G×GÑGŒ5×G×GÕG�t×G×GÓG 8×G×GÓGÐ,×G×GÓGÐ3×G×G×G×G×GÔG´w×G×G×GÑG´w×G×GÕG¸w×G×GÓGÐ7G×G×G×G×G×G×G×GÔGr8   c                  ó	  • [         R                  " SSSS.05      n [         R                  " SSSS.05      n/ o R                  o3R                  nSoTU:H  ofov(       a  U R                  oˆR                  n	So©U
:H  o»nU(       GdÈ  [
        R                  " S	U4S
XE4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-  oÒR                  U5        U(       aÁ  [
        R                  " S	W4SW	W
45      S[        R                  " 5       ;   d  [
        R                  " U 5      (       a  [
        R                  " U 5      OS[
        R                  " W5      [
        R                  " U	5      [
        R                  " U
5      S.-  nSSU0-  oòR                  U5        [
        R                  " US5      0 -  nSSU0-  n[        [
        R                  " U5      5      eS =n=n=n=n=n=n=n=n	=pºUR                  o"R                  nSnUU:H  oD(       dÐ  [
        R                  " S	U4SUU4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=nnUR                  nSn[        UU5      nU(       + oU(       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      [
        R                  " U5      [
        R                  " U5      S.-  n[        [
        R                  " U5      5      eS =n=n=nng )Nr	   r
   Ú0r   r   Úabsentr   r   r   )zI%(py6)s
{%(py6)s = %(py4)s
{%(py4)s = %(py2)s.payload
}.kind
} == %(py9)sÚzero)r!   r   r   r$   z%(py11)srA   )zQ%(py17)s
{%(py17)s = %(py15)s
{%(py15)s = %(py13)s.payload
}.number
} == %(py20)s)Úpy13Úpy15Úpy17Úpy20z%(py22)sÚpy22zassert %(py25)sÚpy25r   r    r#   r$   rB   zVassert not %(py7)s
{%(py7)s = %(py0)s(%(py3)s
{%(py3)s = %(py1)s.payload
}, %(py5)s)
}Úhasattr)r   r   r   Úpy5r"   )r   r%   r	   r   rB   r(   r-   r&   r'   r)   r*   ÚappendÚ_format_boolopr+   r,   rg   )r`   r_   r1   r2   r/   rJ   rC   rS   Ú@py_assert14Ú@py_assert16Ú@py_assert19Ú@py_assert18r5   rK   Ú@py_format21Ú@py_format23Ú@py_format24Ú@py_format26r3   r4   r.   Ú@py_assert4rD   s                          r6   Ú&test_unanswerable_is_not_a_zero_scalarrt   #   s€  € Ü× Ò  )°hÈÑ-MÐ!NÓO€DÜ×"Ò" I¸ÐRZÑ/[Ð#\Ó]€FÙE�<‰<ÐE×ÑÐE ÐE Ñ(×E¨T¯\©\ÐE×-@Ñ-@ÐEÀAÐEÀAÑ-E×E×E×EÕEÐ×E×E×E×E×EÕEˆ4×E×E×EÑEˆ4×E×EÕEˆ<×E×EÓEÐ×E×EÓE ×E×E×E×E×E×E×EÒEÐ-@ÀA×E×E×E×E×EÕE¨T×E×E×EÑE¨T×E×EÕE¨\×E×EÓEÐ-@×E×EÓEÀA×E×E×E×E×E×E×E×E×E×E×E×E×E×EÒEØ�>‰>Ð0×ÑÐ0 .Ð0Ð .Ñ0×0×0×0Ò0Ð .×0×0×0×0×0Õ0ˆ6×0×0×0Ñ0ˆ6×0×0Õ0ˆ>×0×0Ó0Ð×0×0Ó0 .×0×0×0×0×0×0Ö0Ø—~‘~Ð0 xÐ0Œw�~ xÓ0Ð0Ð0Ô0Ð0Ö0×0×0×0×0×0Ñ0Œw×0×0×0Ñ0Œw×0×0×0×0×0Ö0�v×0×0×0Ñ0�v×0×0Õ0�~×0×0Ó0 x×0×0Ó0Ð0×0×0×0×0×0×0Ð0r8   )Ú__doc__Úbuiltinsr&   Ú_pytest.assertion.rewriteÚ	assertionÚrewriter(   Údecimalr   Úquber.playground.answers.shapesr   r   r   r   r7   rL   rU   r\   rt   © r8   r6   Ú<module>r}      s4   ðñ&÷ „ Õ ç OÓ Oò%ò.ò$ò
Hó1r8   