a
    ==icŠ=  ã                   @   sX   d dl mZmZ d dlZd dlZd dlZd dlZG dd„ dejƒZ	G dd„ dejƒZ
dS )é    )ÚcoreÚschemaNc                   @   s$   e Zd Zdd„ Zdd„ Zdd„ ZdS )Ú	TestFieldc                 C   s   t  g ¡}|  |jd¡ d S )N©Nr   )r   ÚFieldZassertTupleEqualÚ_parent©ÚselfÚf© r   új/home/droni/.local/share/virtualenvs/DPS-5Je3_V2c/lib/python3.9/site-packages/caffe2/python/schema_test.pyÚtestInitShouldSetEmptyParent   s    
z&TestField.testInitShouldSetEmptyParentc                 C   s˜   t  t jtjdt  dt jtjdfdt  t jtd¡f¡t jtjdt  dt jtjdfdt  t jtd¡f¡t jtjdg¡}|  |j	g d¢¡ d S )N©ÚdtypeÚfield1Úfield2Úfield3Zfield4)r   é   é   é   é   é	   )
r   r   ÚScalarÚnpÚint32ÚStructÚListÚstrÚassertListEqualÚ_field_offsetsr   r   r   r   ÚtestInitShouldSetFieldOffsets   s    þþõz'TestField.testInitShouldSetFieldOffsetsc                 C   s   t  g ¡}|  |jdg¡ d S r   )r   r   r   r   r   r   r   r   Ú)testInitShouldSetFieldOffsetsIfNoChildren"   s    
z3TestField.testInitShouldSetFieldOffsetsIfNoChildrenN)Ú__name__Ú
__module__Ú__qualname__r   r    r!   r   r   r   r   r      s   r   c                   @   sì   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d+d,„ Zd-d.„ Zd/d0„ Zd1d2„ Zd3d4„ Zd5d6„ Zd7d8„ Zd9S ):ÚTestDBc              	   C   sŒ   t  dt jtjdfdt  t jtd¡f¡}t t 	|¡¡}||fD ]B}|  
t|jt jƒ¡ |  
t|jt jƒ¡ |  
t|dd ƒd u ¡ qDd S )Nr   r   r   Znon_existent)r   r   r   r   r   r   r   ÚpickleÚloadsÚdumpsÚ
assertTrueÚ
isinstancer   r   Úgetattr)r	   ÚsÚs2Úrr   r   r   ÚtestPicklable(   s    þzTestDB.testPicklablec                 C   sN   G dd„ dt jƒ}|t  ¡ ƒ}| ¡ }|  ||¡ |  ||¡ |  ||¡ d S )Nc                   @   s   e Zd ZdS )z.TestDB.testListSubclassClone.<locals>.SubclassN©r"   r#   r$   r   r   r   r   ÚSubclass4   s   r1   )r   r   r   ÚcloneÚassertIsInstanceÚassertEqualÚassertIsNot©r	   r1   r,   r2   r   r   r   ÚtestListSubclassClone3   s    zTestDB.testListSubclassClonec                 C   sN   G dd„ dt jƒ}|t  ¡ ƒ}| ¡ }|  ||¡ |  ||¡ |  ||¡ d S )Nc                   @   s   e Zd ZdS )z9TestDB.testListWithEvictedSubclassClone.<locals>.SubclassNr0   r   r   r   r   r1   >   s   r1   )r   ÚListWithEvictedr   r2   r3   r4   r5   r6   r   r   r   Ú testListWithEvictedSubclassClone=   s    z'TestDB.testListWithEvictedSubclassClonec                 C   sR   G dd„ dt jƒ}|dt  ¡ fƒ}| ¡ }|  ||¡ |  ||¡ |  ||¡ d S )Nc                   @   s   e Zd ZdS )z0TestDB.testStructSubclassClone.<locals>.SubclassNr0   r   r   r   r   r1   H   s   r1   Úa)r   r   r   r2   r3   r4   r5   r6   r   r   r   ÚtestStructSubclassCloneG   s    
ÿzTestDB.testStructSubclassClonec              
   C   sH   t  dtjfdtf¡}|  |t  dt jtjdfdt jtdf¡¡ d S )Nr   r   r   )r   r   r   r   r   ÚassertEqualsr   ©r	   r,   r   r   r   ÚtestNormalizeFieldS   s    þþzTestDB.testNormalizeFieldc              
   C   s$  t  tjttj¡}t  dt jtjdfdt jtjdfdt jtjdf¡}|  ||¡ |  |d t jtjd¡ |  |d t jtjd¡ |  |d t jtjd¡ |  |d t  dt jtjdfdt jtjdf¡¡ t	t
||ƒƒD ]8\}\}}|  ||¡ |  || |¡ |  || |¡ qæd S )	NÚfield_0r   Úfield_1Úfield_2r   r   é   )rB   r   )r   ÚTupler   r   r   Úfloat32r   r   r<   Ú	enumerateÚzip)r	   r,   r-   ÚiÚv1Úv2r   r   r   Ú	testTuple]   s*    ýþþzTestDB.testTuplec              	   C   sZ   t  d¡}|  |t  dt  ¡ fdt  ¡ f¡¡ |  |d t  ¡ ¡ |  |d t  ¡ ¡ d S )NrB   r?   r@   r   r   )r   ZRawTupler<   r   r   r=   r   r   r   ÚtestRawTupleu   s    
ÿÿzTestDB.testRawTuplec                 C   s¶   t  dt jtjdfdt  t jtd¡fdt  ¡ f¡}|  |d |j¡ |  |d t  t jtd¡¡ |  |d t  ¡ ¡ |  |d t  dt  t jtd¡fdt jtjdf¡¡ d S )Nr   r   r   r   )r   r   )	r   r   r   r   r   r   r   r<   r   r=   r   r   r   ÚtestStructIndexing   s    
ýþþzTestDB.testStructIndexingc                 C   s¼   t  t jtd¡}t  dt jtjdfd|f¡}|  |d |j¡ |  |d |j	¡ |  
t¡ |d  W d   ƒ n1 s|0    Y  |  
t¡ |d  W d   ƒ n1 s®0    Y  d S )Nr   r   r   úfield2:lengthsúfield2:valuesúfields2:items:non_existentúfields2:non_existent)r   r   r   r   r   r   r   r<   ÚlengthsÚitemsÚassertRaisesÚKeyError©r	   r:   r,   r   r   r   ÚtestListInStructIndexing   s    þ&zTestDB.testListInStructIndexingc                 C   sÎ   t  t jtd¡}t  dt jtjdfd|f¡}|  |d |j¡ |  |d |j	¡ |  |d |j
¡ |  t¡ |d  W d   ƒ n1 sŽ0    Y  |  t¡ |d  W d   ƒ n1 sÀ0    Y  d S )	Nr   r   r   rM   rN   zfield2:_evicted_valuesrO   rP   )r   r8   r   r   r   r   r   r<   rQ   rR   Z_evicted_valuesrS   rT   rU   r   r   r   Ú#testListWithEvictedInStructIndexing   s    þ&z*TestDB.testListWithEvictedInStructIndexingc                 C   s˜   t  t jtjdt jtjd¡}t  dt jtjdfd|f¡}|  |d |j¡ |  |d |j	¡ |  
t¡ |d  W d   ƒ n1 sŠ0    Y  d S )Nr   r   r   zfield2:values:keyszfield2:values:valueszfields2:keys:non_existent)r   ÚMapr   r   r   rD   r   r<   ÚkeysÚvaluesrS   rT   rU   r   r   r   ÚtestMapInStructIndexing«   s    þþzTestDB.testMapInStructIndexingc                 C   s†  t  dt  tj¡fdt jtjt jdddfdt  t jtjt jddd¡f¡}|jj	 
t jdd¡ |  d |jj¡ |  d|jjj¡ |  d|jjjj¡ |  d|jj	jj¡ | ¡ }|  d |jj¡ |  d|jjj¡ |  d|jjjj¡ |  d|jj	jj¡ t  |t d	g¡t d
g¡t dg¡t g d¢¡g¡}|  d |jj¡ |  d|jjj¡ |  d|jjjj¡ |  d|jj	jj¡ d S )Nr:   Úbr   )Úcategorical_limit)ÚmetadataÚcé   é   ç333333@rB   é   )r   rB   rc   )r   r   r   r   rD   r   ÚMetadatar   r_   rQ   Zset_metadatar4   r:   r^   r\   r]   Úvaluer2   Úfrom_blob_listÚarray©r	   r,   ÚscÚsvr   r   r   ÚtestPreservesMetadata¹   sF    
þÿ
þÿÿúþÿzTestDB.testPreservesMetadatac                 C   sJ   |   t¡, t dt ¡ fdt ¡ f¡ W d   ƒ n1 s<0    Y  d S ©Nr:   )rS   Ú
ValueErrorr   r   r   )r	   r   r   r   ÚtestDupFieldà   s
    

þzTestDB.testDupFieldc                 C   sJ   |   t¡, t dt ¡ f¡}t ¡ |_W d   ƒ n1 s<0    Y  d S rl   )rS   Ú	TypeErrorr   r   r   r:   r=   r   r   r   ÚtestAssignToFieldæ   s    zTestDB.testAssignToFieldc                 C   sŽ   t  dt  tj¡fdt  ¡ f¡}| ¡ }|  d|j¡ |  d|j¡ t  |t 	dg¡g¡}|  d|j¡ |  d|j¡ |  
dt|jjƒ¡ d S )Nr:   r\   rb   r   )r   r   r   r   rD   r2   ÚassertInÚfieldsrf   rg   r4   Úlenr\   rh   r   r   r   ÚtestPreservesEmptyFieldsë   s    
þzTestDB.testPreservesEmptyFieldsc                 C   s¼   t  dt  ¡ fdt  ¡ fdt  ¡ f¡}t  dt  ¡ f¡}|| }|  ddg| ¡ ¡ t  dt  ¡ f¡}|| }|  ddg| ¡ ¡ |  t¡ |t  ¡   W d   ƒ n1 s®0    Y  d S )Nr:   r\   r_   ©r   r   r   r4   Úfield_namesrS   ro   ©r	   Ús1r-   r,   Zs3r   r   r   ÚtestStructSubstractionø   s"    


ý
ÿ
ÿzTestDB.testStructSubstractionc                 C   sŠ   t  dt  ¡ fdt  dt  ¡ fdt  ¡ fdt  ¡ fdt  ¡ f¡f¡}t  dt  dt  ¡ fdt  ¡ f¡f¡}|| }|  g d¢| ¡ ¡ d S )Nr:   r\   r_   ÚdÚer
   )r:   úb:czb:f)r   r   r   r4   rv   ©r	   rx   r-   r,   r   r   r   ÚtestStructNestedSubstraction  s"    




üþ	

þÿz#TestDB.testStructNestedSubstractionc                 C   s´   t  dt  ¡ f¡}t  dt  ¡ f¡}|| }|  d|j¡ |  d|j¡ |  t¡ ||  W d   ƒ n1 sp0    Y  |  t¡ |t  ¡   W d   ƒ n1 s¦0    Y  d S )Nr:   r\   )r   r   r   rq   rr   rS   ro   r}   r   r   r   ÚtestStructAddition   s    
ÿ
ÿ&zTestDB.testStructAdditionc              	   C   s¦   t  dt  ¡ fdt  dt  ¡ f¡f¡}t  dt  dt  ¡ f¡f¡}|| }|  g d¢| ¡ ¡ t  dt  ¡ f¡}|  t¡ || }W d   ƒ n1 s˜0    Y  d S )Nr:   r\   r_   rz   )r:   r|   zb:dru   rw   r   r   r   ÚtestStructNestedAddition/  s$    

ÿþ
ÿÿ
ÿzTestDB.testStructNestedAdditionc                 C   s¾   t  dt  ¡ fdt  dt  dt  ¡ f¡f¡f¡}|  t|jd¡ |  t|jd¡ |  t|jd¡ |  t|jd¡ |d }|  t|t jƒ¡ |d	 }|  d|j	¡ |d
 }|  t|t jƒ¡ d S )Nr:   r\   r_   rz   Ú Úxzx:yúb:c:xr|   úb:c:d)
r   r   r   rS   rT   Ú__getitem__r)   r*   rq   rr   )r	   Ústr:   ÚbcZbcdr   r   r   ÚtestGetFieldByNestedNameD  s$    

ÿÿþzTestDB.testGetFieldByNestedNamec              
   C   s¦  t jt d¡d}t  dt  dt jt d¡df¡f¡}t  dt jt d¡df¡}|  t¡* t  d|fd	|fd
|f¡}W d   ƒ n1 sŽ0    Y  |  t¡* t  d|fd	|fd|f¡}W d   ƒ n1 sÒ0    Y  t  d|fd	|fd|f¡}|  g d¢| ¡ ¡ |  g d¢| 	¡ ¡ t  d|fd|fd	|f¡}|  g d¢| ¡ ¡ |  g d¢| 	¡ ¡ t  d|fd|fd|f¡}|  g d¢| ¡ ¡ |  g d¢| 	¡ ¡ d S )NÚblob1)Úblobr_   rz   Úblob2r‚   Úblob3r:   r\   r„   zb:c:d:eze:f)r:   r„   ze:f:x)r‰   r‹   rŒ   zb:c:e)r:   zb:c:e:xr„   )r‰   rŒ   r‹   úa:a1zb:b1)r   za:xzb:b1:c:d)
r   r   r   ÚBlobReferencer   rS   ro   r4   rv   Úfield_blobs)r	   Zf_aZf_bZf_xr†   r   r   r   ÚtestAddFieldByNestedNameX  sT    ÿÿÿý"ý"ýýýzTestDB.testAddFieldByNestedNamec                 C   s–   t  dt  ¡ fdt  dt  dt  ¡ f¡f¡f¡}|  d|v ¡ |  d|v ¡ |  d|v ¡ |  d|v ¡ |  d|v ¡ |  d	|v ¡ |  d
|v ¡ d S )Nr:   r\   r_   rz   r|   r„   r   r‚   rƒ   zb:c:d:x)r   r   r   r)   ZassertFalse)r	   r†   r   r   r   ÚtestContainsˆ  s    

ÿÿþzTestDB.testContainsc                 C   s0   t  ¡ }| ¡ }t j|d}|  |t  ¡ ¡ d S )N)Z	col_names)r   r   rv   Úfrom_column_listr4   )r	   r†   ÚcolumnsÚrecr   r   r   ÚtestFromEmptyColumnList™  s    zTestDB.testFromEmptyColumnListc              
   C   sÊ   t  dt  ¡ fdt  t  ¡ ¡fdt  t  ¡ t  ¡ ¡f¡}| ¡ }tdƒD ]|}dd„ |D ƒ}t j||d}|  | 	¡ ¡ |  
t| ¡ ƒt| ¡ ƒ¡ |  
dd„ | ¡ D ƒd	d„ | ¡ D ƒ¡ t |¡ qHd S )
Nr:   r\   r_   é
   c                 S   s   g | ]}t  d | ¡‘qS ©zblob:)r   rŽ   )Ú.0r‚   r   r   r   Ú
<listcomp>¨  ó    z-TestDB.testFromColumnList.<locals>.<listcomp>)Z	col_blobsc                 S   s   g | ]}t |ƒ‘qS r   ©r   )r˜   rŠ   r   r   r   r™   ¬  rš   c                 S   s   g | ]}t d | ƒ‘qS r—   r›   )r˜   Únamer   r   r   r™   ­  rš   )r   r   r   r   rX   rv   Úranger’   r)   Z	has_blobsr4   Úsortedr   ÚrandomÚshuffle)r	   r†   r“   Ú_Z
some_blobsr”   r   r   r   ÚtestFromColumnListŸ  s    
ýÿzTestDB.testFromColumnListc                 C   s~   t  d¡}t |t tj¡¡}t |t tj¡¡}t ||¡}| dd ¡|ksRJ ‚| dd ¡|ksfJ ‚| dd ¡d u szJ ‚d S )NZtest_netr?   r@   rA   )	r   ZNetr   Z	NewRecordr   r   rD   rC   Úget)r	   Únetrx   r-   Útr   r   r   ÚtestStructGet°  s    
zTestDB.testStructGetc                 C   sj   t  d¡}|  t¡  t  tjdf¡}W d   ƒ n1 s:0    Y  t  tj¡}t  d ¡}||ksfJ ‚d S )N)N©rB   r§   )r   r   rS   ro   r   Úvoid)r	   Zs0_goodZs0_badÚs1_goodZs2_goodr   r   r   ÚtestScalarForVoidType¹  s    
.
zTestDB.testScalarForVoidTypec                 C   sÂ   t  tj¡}|  | ¡ jd¡ t  tjdf¡}|  | ¡ jd¡ |  t¡  t  tjdf¡}W d   ƒ n1 sp0    Y  t  tjdf¡}|  | ¡ jd¡ t  tjdf¡}|  | ¡ jd¡ d S )Nr   r   )r   éÿÿÿÿr   )r   )rB   rc   )	r   r   r   r   r4   Z
field_typeÚshaperS   rm   )r	   Ús0r©   Zs1_badZs1_hardr-   r   r   r   ÚtestScalarShapeÂ  s    .zTestDB.testScalarShapec                 C   sT   t  tjj¡}|  |tj¡ |  t	¡ t  d¡ W d   ƒ n1 sF0    Y  d S )Néd   )
r   Zdtype_for_core_typer   ZDataTypeZFLOAT16r4   r   Úfloat16rS   ro   )r	   r   r   r   r   ÚtestDtypeForCoreTypeÒ  s    zTestDB.testDtypeForCoreTypeN)r"   r#   r$   r/   r7   r9   r;   r>   rJ   rK   rL   rV   rW   r[   rk   rn   rp   rt   ry   r~   r   r€   rˆ   r   r‘   r•   r¢   r¦   rª   r®   r±   r   r   r   r   r%   '   s8   



'0		r%   )Zcaffe2.pythonr   r   Únumpyr   Zunittestr&   rŸ   ZTestCaser   r%   r   r   r   r   Ú<module>   s   