U
    rh                     @  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                   @  sB   e Zd ZeddddZeddddZeddddZd	S )
ConvNone)returnc                  C  s  t dddddgdddd	d
gdddddgdddddgdddddggggt j} t dddgdddgdddggggt j}tjjdddgdgddgddddgd }t ddd!d"dgd"d#d$d%d&gd$d'd(d)d*gd+d,d-d.d/gd%d/d)d0d1ggggt j}t|| |g|gd2d3 tjjdddgdgddgd4d4d4d4gd }t d#d$d%gd'd(d)gd,d-d.ggggt j}t|| |g|gd5d3 d S )6N              ?       @      @      @      @      @      @       @      "@      $@      &@      (@      *@      ,@      .@      0@      1@      2@      3@      4@      5@      6@      7@      8@r   xWy      )inputsoutputskernel_shapepads      ;@     @@      K@     O@      R@g     I@     X@      [@     @]@     @T@g     @W@      b@g      c@     @d@g     [@     ^@      U@Ztest_basic_conv_with_paddingr&   r'   namer   Ztest_basic_conv_without_paddingnparrayZastypeZfloat32onnxhelperZ	make_noder   )r!   r"   node_with_paddingy_with_paddingnode_without_paddingy_without_padding rB   D/tmp/pip-unpacked-wheel-xnis5xre/onnx/backend/test/case/node/conv.pyexport   s    



zConv.exportc                  C  s  t dddddgdddd	d
gdddddgdddddgdddddgdddddgdd d!d"d#ggggt j} t dddgdddgdddggggt j}tjjd$d%d&gd'gd(d(gd)d)d)d)gd*d*gd+}t dddgd,d-d.gd/d0d1gd2d3d4ggggt j}t|| |g|gd5d6 tjjd$d%d&gd'gd(d(gd7d7d7d7gd*d*gd+}t d8d9gd:d;gd<d=ggggt j}t|| |g|gd>d6 tjjd$d%d&gd'gd(d(gd)d7d)d7gd*d*gd+}t dd"gd?d@gdAdBgdCdDggggt j}t|| |g|gdEd6 d S )FNr   r	   r
   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   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)   stridesr-   r0   r2   r5   g     h@g     a@g      \@g      f@g      _@Ztest_conv_with_strides_paddingr7   r   r,   r.   r3   r4   g     @m@g     o@Z!test_conv_with_strides_no_paddingr/   r1   g     g@g     i@g     `e@g     f@Z-test_conv_with_strides_and_asymmetric_paddingr9   )r!   r"   r>   r?   r@   rA   Znode_with_asymmetric_paddingZy_with_asymmetric_paddingrB   rB   rC   export_conv_with_stridesa   s    




zConv.export_conv_with_stridesc                  C  s   t dddddgdddd	d
gdddddgdddddgdddddggggt j} t dddgdddgdddggggt j}tjjdddgdgdddgd d gd!}t dd"dgd#d$d%gd&d'd(ggggt j}t|| |g|gd)d* d S )+Nr   r	   r
   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r    r   r!   r"   r#   Z
SAME_LOWERr$   rE   )r&   r'   Zauto_padr(   rF   r*   r-   r0   r2   r.   r1   r6   Ztest_conv_with_autopad_samer7   r9   )r!   r"   noder#   rB   rB   rC   export_conv_with_autopad_same   sH    
z"Conv.export_conv_with_autopad_sameN)__name__
__module____qualname__staticmethodrD   rG   rI   rB   rB   rB   rC   r      s   Rxr   )

__future__r   Znumpyr:   r<   Zonnx.backend.test.case.baser   Zonnx.backend.test.case.noder   r   rB   rB   rB   rC   <module>   s
   