Ë
    pPêjÙ  ã                  óÂ   — d dl mZ d dlZd dlmZmZ d dlmZ d dlm	Z	 d dl
mZmZmZ d dlmZmZmZmZmZmZmZmZmZ d dlmZ d d	lmZ  G d
„ dej8                  «      Zy)é    )ÚannotationsN)ÚEmitterÚEmitterContext)ÚHAVE_IMMORTAL)ÚClassIR)Ú
BasicBlockÚRegisterÚValue)	Ú	RInstanceÚRTupleÚRUnionÚbool_rprimitiveÚint_rprimitiveÚlist_rprimitiveÚnone_rprimitiveÚobject_rprimitiveÚstr_rprimitive)Úcompute_vtable)ÚNameGeneratorc                  ó´   — e Zd Zdd„Zdd„Zdd„Zdd„Zdd„Zdd„Zdd„Z	dd„Z
dd	„Zdd
„Zdd„Zdd„Zdd„Zdd„Zdd„Zdd„Zdd„Zdd„Zdd„Zdd„Zdd„Zy)ÚTestEmitterc                óú   — t        t        d«      | _        t        t	        dgg«      d«      | _        t        | j
                  i «      | _        t        dd«      }t        |«       |g|_
        t        |«      | _        y )NÚnÚmodTÚA)r	   r   r   r   r   Úcontextr   Úemitterr   r   Úmror   Ú
instance_a)ÚselfÚirs     úY/home/oem/CyberBrain26-unified/.venv/lib/python3.12/site-packages/mypyc/test/test_emit.pyÚsetUpzTestEmitter.setUp   sa   € Üœ.¨#Ó.ˆŒÜ%¤m°e°W°IÓ&>ÀÓEˆŒÜ˜tŸ|™|¨RÓ0ˆŒä�S˜%Ó ˆÜ�rÔØ�ˆŒÜ# B›-ˆ�ó    c                óV   — | j                   j                  t        d«      «      dk(  sJ ‚y )Né   ÚCPyL4)r   Úlabelr   ©r    s    r"   Ú
test_labelzTestEmitter.test_label#   s#   € Ø�|‰|×!Ñ!¤*¨Q£-Ó0°GÒ;Ð;Ñ;r$   c                óŒ   — | j                   di}t        | j                  |«      }|j                  | j                   «      dk(  sJ ‚y )Nr   Úcpy_r_n)r   r   r   Úreg)r    Únamesr   s      r"   Útest_regzTestEmitter.test_reg&   s:   € Ø#'§6¡6¨3 -ˆÜ˜$Ÿ,™,¨Ó.ˆØ�{‰{˜4Ÿ6™6Ó" iÒ/Ð/Ñ/r$   c                ó  — | j                   j                  dd«      dk(  sJ ‚| j                   j                  dd«      dk(  sJ ‚| j                   j                  dd«      dk(  sJ ‚| j                   j                  dd«      d	k(  sJ ‚y )
Núhello, worldúline;z /* 'hello, world' */é*   z	 /* 42 */)é   ÚxNz /* (1, 'x', None) */za /* b */ cÚ )r   Úobject_annotationr)   s    r"   Útest_object_annotationz"TestEmitter.test_object_annotation+   s€   € Ø�|‰|×-Ñ-¨n¸gÓFÐJaÒaÐaÐaØ�|‰|×-Ñ-¨b°'Ó:¸kÒIÐIÐIØ�|‰|×-Ñ-¨n¸gÓFÐJaÒaÐaÐaà�|‰|×-Ñ-¨m¸WÓEÈÒKÐKÑKr$   c                óÂ  — | j                   j                  t        ddh«      d«      | j                   j                  t        ddh«      d«      cxk(  rdk(  sJ ‚ J ‚| j                   j                  t        ddh«      fd«      | j                   j                  t        ddh«      fd«      cxk(  rdk(  sJ ‚ J ‚| j                   j                  t        «       d«      dk(  sJ ‚y )	Nr    Úclsr2   z! /* frozenset({'cls', 'self'}) */ÚbÚaz /* (frozenset({'a', 'b'}),) */z /* frozenset() */)r   r7   Ú	frozensetr)   s    r"   Ú1test_object_annotation_frozenset_is_deterministicz=TestEmitter.test_object_annotation_frozenset_is_deterministic2   sä   € à�L‰L×*Ñ*¬9°f¸e°_Ó+EÀwÓOØ�|‰|×-Ñ-¬i¸À¸Ó.HÈ'ÓRô3à2ò3ð	
ñ3ð	
ð3ð
 �L‰L×*Ñ*¬I°s¸C°jÓ,AÐ+CÀWÓMØ�|‰|×-Ñ-¬y¸#¸s¸Ó/DÐ.FÈÓPô1à0ò1ð	
ñ1ð	
ð1ð �|‰|×-Ñ-¬i«k¸7ÓCÐG[Ò[Ð[Ñ[r$   c                ó’  — | j                   }|j                  d«       |j                  d«       |j                  d«       |j                  d«       |j                  g d¢k(  sJ ‚t        | j                  i «      }|j                  dd¬«       |j                  d	d
¬«       |j                  d   dk(  sJ ‚|j                  d   dk(  sJ ‚y )Nr2   za {zf();ú})zline;
za {
z	    f();
z}
zCPyStatics[0];r1   )ÚannzCPyStatics[1];r3   r   z$CPyStatics[0]; /* 'hello, world' */
r4   zCPyStatics[1]; /* 42 */
)r   Ú	emit_lineÚ	fragmentsr   r   ©r    r   s     r"   Útest_emit_linezTestEmitter.test_emit_line?   sÄ   € Ø—,‘,ˆØ×Ñ˜'Ô"Ø×Ñ˜%Ô Ø×Ñ˜&Ô!Ø×Ñ˜#ÔØ× Ñ Ò$MÒMÐMÐMÜ˜$Ÿ,™,¨Ó+ˆØ×ÑÐ*°ÐÔ?Ø×ÑÐ*°ÐÔ3Ø× Ñ  Ñ#Ð'NÒNÐNÐNØ× Ñ  Ñ#Ð'BÒBÐBÑBr$   c                ó¸   — | j                   }|j                  t        «      dk(  sJ ‚|j                  t        «      dk(  sJ ‚|j                  t        «      dk(  sJ ‚y )NÚCPY_INT_TAGÚNULLÚ2)r   Úc_undefined_valuer   r   r   rD   s     r"   Ú)test_emit_undefined_value_for_simple_typez5TestEmitter.test_emit_undefined_value_for_simple_typeL   sV   € Ø—,‘,ˆØ×(Ñ(¬Ó8¸MÒIÐIÐIØ×(Ñ(¬Ó8¸FÒBÐBÐBØ×(Ñ(¬Ó9¸SÒ@Ð@Ñ@r$   c                ó&  — | j                   }|j                  t        t        t        t
        g«      «      dk(  sJ ‚|j                  t        t        g«      «      dk(  sJ ‚|j                  t        t        t        g«      t
        g«      «      dk(  sJ ‚y )Nz&(tuple_T3OIC) { NULL, CPY_INT_TAG, 2 }z(tuple_T1O) { NULL }z(tuple_T2T1OC) { { NULL }, 2 })r   rJ   r   r   r   r   rD   s     r"   Ú#test_emit_undefined_value_for_tuplez/TestEmitter.test_emit_undefined_value_for_tupleR   s�   € Ø—,‘,ˆà×%Ñ%¤f¬n¼nÌoÐ-^Ó&_Ó`Ø7ò8ð	
ð8ð ×(Ñ(¬´Ð0@Ó)AÓBÐF\Ò\Ð\Ð\à×%Ñ%¤f¬f´nÐ5EÓ.FÌÐ-XÓ&YÓZØ/ò0ð	
ñ0r$   c                óf   — | j                   j                  dt        «       | j                  d«       y )Nr5   úCPy_INCREF(x);
)r   Úemit_inc_refr   Úassert_outputr)   s    r"   Útest_emit_inc_ref_objectz$TestEmitter.test_emit_inc_ref_object^   s&   € Ø�‰×!Ñ! #Ô'8Ô9Ø×ÑÐ-Õ.r$   c                óf   — | j                   j                  dt        «       | j                  d«       y )Nr5   zCPyTagged_INCREF(x);
)r   rP   r   rQ   r)   s    r"   Útest_emit_inc_ref_intz!TestEmitter.test_emit_inc_ref_intb   s%   € Ø�‰×!Ñ! #¤~Ô6Ø×ÑÐ3Õ4r$   c                óÐ   — | j                   j                  dt        d¬«       | j                  d«       | j                   j                  dt        d¬«       | j                  d«       y )Nr5   T©ÚrarerO   zCPyTagged_IncRef(x);
)r   rP   r   rQ   r   r)   s    r"   Útest_emit_inc_ref_rarez"TestEmitter.test_emit_inc_ref_raref   óS   € Ø�‰×!Ñ! #Ô'8¸tÐ!ÔDØ×ÑÐ-Ô.Ø�‰×!Ñ! #¤~¸DÐ!ÔAØ×ÑÐ3Õ4r$   c                ó–   — | j                   j                  dt        «       t        r| j	                  d«       y | j	                  d«       y ©Nr5   zCPy_INCREF_NO_IMM(x);
rO   )r   rP   r   r   rQ   r)   s    r"   Útest_emit_inc_ref_listz"TestEmitter.test_emit_inc_ref_listl   s7   € Ø�‰×!Ñ! #¤Ô7ÝØ×ÑÐ8Õ9à×ÑÐ1Õ2r$   c                ó¢   — | j                   j                  d| j                  «       t        r| j	                  d«       y | j	                  d«       y r[   )r   rP   r   r   rQ   r)   s    r"   Útest_emit_inc_ref_instancez&TestEmitter.test_emit_inc_ref_instances   s;   € Ø�‰×!Ñ! # t§¡Ô7ÝØ×ÑÐ8Õ9à×ÑÐ1Õ2r$   c                ó”   — t        | j                  t        g«      }| j                  j	                  d|«       | j                  d«       y )NÚozCPy_INCREF(o);
)r   r   r   r   rP   rQ   ©r    Úoptionals     r"   Útest_emit_inc_ref_optionalz&TestEmitter.test_emit_inc_ref_optionalz   ó8   € Ü˜4Ÿ?™?¬OÐ<Ó=ˆØ�‰×!Ñ! # xÔ0Ø×ÑÐ-Õ.r$   c                óÌ   — | j                   j                  dt        «       | j                  d«       | j                   j                  dt        d¬«       | j                  d«       y )Nr5   úCPy_DECREF(x);
T©Úis_xdecúCPy_XDECREF(x);
)r   Úemit_dec_refr   rQ   r)   s    r"   Útest_emit_dec_ref_objectz$TestEmitter.test_emit_dec_ref_object   sO   € Ø�‰×!Ñ! #Ô'8Ô9Ø×ÑÐ-Ô.Ø�‰×!Ñ! #Ô'8À$Ð!ÔGØ×ÑÐ.Õ/r$   c                óÌ   — | j                   j                  dt        «       | j                  d«       | j                   j                  dt        d¬«       | j                  d«       y )Nr5   zCPyTagged_DECREF(x);
Trg   zCPyTagged_XDECREF(x);
)r   rj   r   rQ   r)   s    r"   Útest_emit_dec_ref_intz!TestEmitter.test_emit_dec_ref_int…   sM   € Ø�‰×!Ñ! #¤~Ô6Ø×ÑÐ3Ô4Ø�‰×!Ñ! #¤~¸tÐ!ÔDØ×ÑÐ4Õ5r$   c                óÐ   — | j                   j                  dt        d¬«       | j                  d«       | j                   j                  dt        d¬«       | j                  d«       y )Nr5   TrV   zCPy_DecRef(x);
zCPyTagged_DecRef(x);
)r   rj   r   rQ   r   r)   s    r"   Útest_emit_dec_ref_rarez"TestEmitter.test_emit_dec_ref_rare‹   rY   r$   c                ó,  — | j                   j                  dt        «       t        r| j	                  d«       n| j	                  d«       | j                   j                  dt        d¬«       t        r| j	                  d«       y | j	                  d«       y ©Nr5   zCPy_DECREF_NO_IMM(x);
rf   Trg   zCPy_XDECREF_NO_IMM(x);
ri   )r   rj   r   r   rQ   r)   s    r"   Útest_emit_dec_ref_listz"TestEmitter.test_emit_dec_ref_list‘   sq   € Ø�‰×!Ñ! #¤Ô7ÝØ×ÑÐ8Õ9à×ÑÐ1Ô2Ø�‰×!Ñ! #¤ÀÐ!ÔEÝØ×ÑÐ9Õ:à×ÑÐ2Õ3r$   c                óD  — | j                   j                  d| j                  «       t        r| j	                  d«       n| j	                  d«       | j                   j                  d| j                  d¬«       t        r| j	                  d«       y | j	                  d«       y rq   )r   rj   r   r   rQ   r)   s    r"   Útest_emit_dec_ref_instancez&TestEmitter.test_emit_dec_ref_instance�   sy   € Ø�‰×!Ñ! # t§¡Ô7ÝØ×ÑÐ8Õ9à×ÑÐ1Ô2Ø�‰×!Ñ! # t§¡ÀÐ!ÔEÝØ×ÑÐ9Õ:à×ÑÐ2Õ3r$   c                ó”   — t        | j                  t        g«      }| j                  j	                  d|«       | j                  d«       y )Nr`   zCPy_DECREF(o);
)r   r   r   r   rj   rQ   ra   s     r"   Útest_emit_dec_ref_optionalz&TestEmitter.test_emit_dec_ref_optional©   rd   r$   c                óz   — dj                  | j                  j                  «      |k(  sJ ‚g | j                  _        y )Nr6   )Újoinr   rC   )r    Úexpecteds     r"   rQ   zTestEmitter.assert_output®   s/   € Ø�w‰w�t—|‘|×-Ñ-Ó.°(Ò:Ð:Ð:Ø!#ˆ�‰Õr$   N)ÚreturnÚNone)ry   Ústrrz   r{   )Ú__name__Ú
__module__Ú__qualname__r#   r*   r/   r8   r>   rE   rK   rM   rR   rT   rX   r\   r^   rc   rk   rm   ro   rr   rt   rv   rQ   © r$   r"   r   r      so   „ ó(ó<ó0ó
Ló\óCóAó

ó/ó5ó5ó3ó3ó/ó
0ó6ó5ó
4ó
4ó/ô
$r$   r   )Ú
__future__r   ÚunittestÚmypyc.codegen.emitr   r   Úmypyc.commonr   Úmypyc.ir.class_irr   Úmypyc.ir.opsr   r	   r
   Úmypyc.ir.rtypesr   r   r   r   r   r   r   r   r   Úmypyc.irbuild.vtabler   Úmypyc.namegenr   ÚTestCaser   r€   r$   r"   ú<module>r‹      sE   ðÝ "ã ç 6Ý &Ý %ß 4Ñ 4÷
÷ 
õ 
õ 0Ý 'ôX$�(×#Ñ#õ X$r$   