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                   @  s|   e Zd ZedddZedddZedddZedd	d
ZedddZedddZ	edddZ
edddZdS )SlicereturnNonec                  C  s   t jjdg ddgd} tjdddtj}|dd	ddf }tjddgtj	d
}tjd	dgtj	d
}tjddgtj	d
}tjddgtj	d
}t
| |||||g|gdd d S )Nr   xstartsendsaxesstepsyinputsoutputs   
      r      dtype   
test_slicer   r   nameonnxhelper	make_nodenprandomrandnastypefloat32arrayint64r   )noder	   r   r
   r   r   r    r(   ^/home/ubuntu/sommelier/.venv/lib/python3.10/site-packages/onnx/backend/test/case/node/slice.pyexport_slice   s   
zSlice.export_slicec                  C  s   t jjdg ddgd} tjdddtj}tjdgtj	d	}tjd
gtj	d	}tjdgtj	d	}tjdgtj	d	}|d d dd
f }t
| |||||g|gdd d S )Nr   r   r   r   r   r   r   r   r   r   test_slice_negr   r   r'   r	   r
   r   r   r   r   r(   r(   r)   export_slice_neg!   "   
zSlice.export_slice_negc                  C  s   t jjdg ddgd} tjdddtj}tjdgtj	d	}tjdgtj	d	}tjd
gtj	d	}tjd
gtj	d	}|d d ddf }t
| |||||g|gdd d S )Nr   r   r   r   r   r   r     r   r   test_slice_start_out_of_boundsr   r   r-   r(   r(   r)    export_slice_start_out_of_bounds7   r/   z&Slice.export_slice_start_out_of_boundsc                  C  s   t jjdg ddgd} tjdddtj}tjdgtj	d	}tjd
gtj	d	}tjdgtj	d	}tjdgtj	d	}|d d dd
f }t
| |||||g|gdd d S )Nr   r   r   r   r   r   r   r   r   r0   test_slice_end_out_of_boundsr   r   r-   r(   r(   r)   export_slice_end_out_of_boundsM   r/   z$Slice.export_slice_end_out_of_boundsc                  C  s   t jjdg ddgd} tjdddtj}tjg dtj	d	}tjg d
tj	d	}|d d d d ddf }t
| |||g|gdd d S )Nr   )r	   r
   r   r   r   r   r   r   r   r   r   r   r   r      r   r7   test_slice_default_axesr   r   )r'   r	   r
   r   r   r(   r(   r)   export_slice_default_axesc   s   
zSlice.export_slice_default_axesc                  C     t jjdg ddgd} tjdddtj}tjg dtj	d	}tjg d
tj	d	}tjg dtj	d	}|d d d d ddf }t
| ||||g|gdd d S )Nr   r	   r
   r   r   r   r   r   r   r   r5   r   r6   r   r      r   r7   test_slice_default_stepsr   r   r'   r	   r
   r   r   r   r(   r(   r)   export_slice_default_stepst       

z Slice.export_slice_default_stepsc                  C  s   t jjdg ddgd} tjdddtj}tjg dtj	d	}tjg d
tj	d	}tjg dtj	d	}tg dtj	}|dddddddddf }t
| |||||g|gdd d S )Nr   r   r   r   r   r   r   r6   r   )r   r   r   r<   )r+   r   r+   rB   r7   r   rC   test_slice_neg_stepsr   r   r-   r(   r(   r)   export_slice_neg_steps   s"    
zSlice.export_slice_neg_stepsc                  C  r:   )Nr   r;   r   r   r   r   r   r5   r   r6   )r   rC   r+   r   r7   test_slice_negative_axesr   r   r?   r(   r(   r)   export_slice_negative_axes   rA   z Slice.export_slice_negative_axesN)r   r   )__name__
__module____qualname__staticmethodr*   r.   r2   r4   r9   r@   rE   rG   r(   r(   r(   r)   r      s"    r   )

__future__r   numpyr    r   onnx.backend.test.case.baser   onnx.backend.test.case.noder   r   r(   r(   r(   r)   <module>   s   