o
    wi                     @  sH   d dl mZ d dlZd dlZd dlmZ d dlmZ G dd deZ	dS )    )annotationsN)Base)expectc                   @  s6   e Zd Zed
ddZed
ddZed
ddZd	S )ConvreturnNonec                  C  s0  t g dg dg dg dg dgggt j} t g dg dg dgggt j}tjjddd	gd
gddgg dd}t g dg dg dg dg dgggt j}t|| |g|gdd tjjddd	gd
gddgg dd}t g dg dg dgggt j}t|| |g|gdd d S )Ng              ?g       @g      @g      @g      @g      @g      @g       @g      "@g      $@g      &@      (@g      *@g      ,@g      .@g      0@g      1@g      2@g      3@g      4@      5@g      6@g      7@      8@r	   r	   r	   r   xWy      r   r   r   )inputsoutputskernel_shapepads)r   r         ;@     @@r   )r         K@     O@      R@g     I@)r        X@      [@     @]@     @T@)g     @W@      b@      c@     @d@     [@)r    r(   r#        ^@      U@test_basic_conv_with_paddingr   r   namer   r   r   r   )r   r   r    )r!   r"   r#   )r%   r&   r'   test_basic_conv_without_paddingnparrayastypefloat32onnxhelper	make_noder   )r   r   node_with_paddingy_with_paddingnode_without_paddingy_without_padding r<   ]/home/ubuntu/sommelier/.venv/lib/python3.10/site-packages/onnx/backend/test/case/node/conv.pyexport   s   


zConv.exportc               
   C  s  t g dg dg dg dg dg dg dgggt j} t g dg dg dgggt j}tjjd	d
dgdgddgg dddgd}t g dg dg dg dgggt j}t|| |g|gdd tjjd	d
dgdgddgg dddgd}t ddgddgddggggt j}t|| |g|gdd tjjd	d
dgdgddgg dddgd}t d d!gd"d#gd$d%gd&d'ggggt j}t|| |g|gd(d d S ))Nr   r
   r   r   r   )g      9@g      :@r   g      <@g      =@)g      >@g      ?@g      @@r   g      A@r   r   r   r   r   r   r      )r   r   r   r   stridesr   r   r   r   r"   r$   )r)   g     h@g     a@)g      \@g      f@g      _@test_conv_with_strides_paddingr,   r.   r   r    r%   r'   g     @m@g     o@!test_conv_with_strides_no_padding)r   r   r   r   r   r   r!   r#   g     g@g     i@g     `e@g     f@-test_conv_with_strides_and_asymmetric_paddingr0   )r   r   r8   r9   r:   r;   node_with_asymmetric_paddingy_with_asymmetric_paddingr<   r<   r=   export_conv_with_stridesa   s   


zConv.export_conv_with_stridesc                  C  s   t g dg dg dg dg dgggt j} t g dg dg dgggt j}tjjddd	gd
gdddgddgd}t g dg dg dgggt j}t|| |g|gdd d S )Nr   r
   r   r   r   r   r   r   r   r   
SAME_LOWERr   r?   )r   r   auto_padr   r@   rA   rB   )r    r#   r*   test_conv_with_autopad_samer,   r0   )r   r   noder   r<   r<   r=   export_conv_with_autopad_same   sH   
z"Conv.export_conv_with_autopad_sameN)r   r   )__name__
__module____qualname__staticmethodr>   rH   rM   r<   r<   r<   r=   r      s    Rxr   )

__future__r   numpyr1   r5   onnx.backend.test.case.baser   onnx.backend.test.case.noder   r   r<   r<   r<   r=   <module>   s   