o
    ØÝ2g?  ã                   @  sV   d dl mZ d dlZd dlmZmZmZmZmZm	Z	 d dl
mZ G dd„ dejƒZdS )é    )ÚannotationsN)ÚRStructÚbool_rprimitiveÚint32_rprimitiveÚint64_rprimitiveÚint_rprimitiveÚobject_rprimitive)Úis_runtime_subtypec                   @  s4   e Zd Zddd„Zddd„Zddd„Zdd	d
„ZdS )Ú
TestStructÚreturnÚNonec           	      C  sŠ  t dg tttgƒ}|jdksJ ‚|jg d¢ksJ ‚t dg ttgƒ}|jdks(J ‚|jddgks1J ‚t dg ttgƒ}t dg ttgƒ}|jddgksJJ ‚|jddgksSJ ‚|jdksZJ ‚|jdksaJ ‚t dg ttttgƒ}|jdksrJ ‚|jg d	¢ks{J ‚t dg t|gƒ}|jddgksŒJ ‚|jd
ks“J ‚t dg t|gƒ}|jddgks¤J ‚|jdks«J ‚t dg t|gƒ}|jddgks¼J ‚|jdksÃJ ‚d S )NÚ é   )r   é   é   é   r   é   r   r   )r   r   r   r   é   é    é   )r   r   r   r   ÚsizeÚoffsets)	ÚselfÚrÚr1Úr2Úr3Úr4Úr5Úr6Úr7© r!   úN/home/garg/my-data/venv/lib/python3.10/site-packages/mypyc/test/test_struct.pyÚtest_struct_offsets   s0   zTestStruct.test_struct_offsetsc                 C  s”   t dddgttgƒ}t|ƒdksJ ‚t|ƒdksJ ‚t ddgtgƒ}t|ƒdks*J ‚t|ƒd	ks2J ‚t d
g g ƒ}t|ƒdks@J ‚t|ƒdksHJ ‚d S )NÚFooÚaÚbzFoo{a:bool, b:object}zK<RStruct Foo{a:<RPrimitive builtins.bool>, b:<RPrimitive builtins.object>}>ÚBarÚcz
Bar{c:i32}z!<RStruct Bar{c:<RPrimitive i32>}>ÚBazzBaz{}z<RStruct Baz{}>)r   r   r   ÚstrÚreprr   )r   r   r   r   r!   r!   r"   Útest_struct_str2   s   zTestStruct.test_struct_strc                 C  sØ   t dddgttgƒ}t dddgttgƒ}t dddgttgƒ}t dddgttgƒ}t dddgttgƒ}t dg d	¢tttgƒ}t||ƒd
u sFJ ‚t||ƒdu sOJ ‚t||ƒdu sXJ ‚t||ƒdu saJ ‚t||ƒdu sjJ ‚d S )Nr$   r%   r&   r'   r(   r)   ÚFooBarÚ	FooBarBaz)r%   r&   r(   TF)r   r   r   r   r	   )r   r   r   r   r   r   r   r!   r!   r"   Útest_runtime_subtype@   s   ÿzTestStruct.test_runtime_subtypec                 C  sê   t dddgttgƒ}t dddgttgƒ}t|ƒt|ƒksJ ‚||ks$J ‚t dddgttgƒ}t|ƒt|ƒks8J ‚||ks>J ‚t dddgttgƒ}t|ƒt|ƒksRJ ‚||ksXJ ‚t dddgtttgƒ}t|ƒt|ƒksmJ ‚||kssJ ‚d S )Nr$   r%   r&   ÚFoqr(   )r   r   r   Úhash)r   r   r   r   r   r   r!   r!   r"   Útest_eq_and_hash[   s   zTestStruct.test_eq_and_hashN)r   r   )Ú__name__Ú
__module__Ú__qualname__r#   r,   r/   r2   r!   r!   r!   r"   r
      s
    

!
r
   )Ú
__future__r   ÚunittestÚmypyc.ir.rtypesr   r   r   r   r   r   Úmypyc.rt_subtyper	   ÚTestCaser
   r!   r!   r!   r"   Ú<module>   s
     