o
    wiE.                     @  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edddZedddZdS )SplitreturnNonec               	   C  s  t g dt j} tjjddgg ddd}t ddgt jt d	d
gt jt ddgt jg}t|| g|dtjddgd t ddgt j	}tjjdddgddgdd}t ddgt jt g dt jg}t|| |g|dtjddgd d S )N      ?       @      @      @      @      @r   inputoutput_1output_2output_3r   inputsoutputsaxisr	   r
   r   r   r   r   !test_split_equal_parts_1d_opset13    r   r   nameopset_imports      splitr   r   r   r   r   r   $test_split_variable_parts_1d_opset13
nparrayastypefloat32onnxhelper	make_noder   make_opsetidint64
node_inputnodeexpected_outputsr     r1   ^/home/ubuntu/sommelier/.venv/lib/python3.10/site-packages/onnx/backend/test/case/node/split.pyexport_1d_opset13   sF   
zSplit.export_1d_opset13c               	   C  s(  t g dg dgt j} tjjddgddgdd}t g d	g d
gt jt g dg dgt jg}t|| g|dtjddgd t ddgt j	}tjjdddgddgdd}t ddgddggt jt g dg dgt jg}t|| |g|dtjddgd d S )Nr         @       @      "@      $@      &@      (@r   r   r   r      r   r	   r
   r   r5   r6   r7   r   r   r   r8   r9   r:   !test_split_equal_parts_2d_opset13r   r   r   r   r   r    r	   r
   r5   r6   r!   r7   r8   r9   r:   $test_split_variable_parts_2d_opset13r#   r-   r1   r1   r2   export_2d_opset13:   sJ   
zSplit.export_2d_opset13c               	   C  s  t g dt j} tjjddgg dd}t ddgt jt dd	gt jt d
dgt jg}t|| g|dtjddgd t ddgt j	}tjjdddgddgd}t ddgt jt g dt jg}t|| |g|dtjddgd d S )Nr   r   r   r   r   r   r	   r
   r   r   r   r   +test_split_equal_parts_default_axis_opset13r   r   r   r   r   r    r   r   r!   .test_split_variable_parts_default_axis_opset13r#   r-   r1   r1   r2   export_default_values_opset13h   s:   
z#Split.export_default_values_opset13c               	   C  s   t g t j} t g dt j}tjjdddgg dd}t g t jt g t jt g t jg}t|| |g|dtj	dd	gd
 d S )Nr   r   r   r   r   r    r   rD   #test_split_zero_size_splits_opset13r   r   r   )
r$   r%   r&   r'   r,   r(   r)   r*   r   r+   r.   r    r/   r0   r1   r1   r2   export_zero_size_splits_opset13   s$   
z%Split.export_zero_size_splits_opset13c                  C  s   t g dt j} tjjddgg dddd}t dd	gt jt d
dgt jt ddgt jg}t|| g|dd t ddgt j}tjjdddgddgdd}t dd	gt jt g dt jg}t|| |g|dd d S )Nr   r   r   r   r      r   r   r   num_outputsr	   r
   r   r   r   r   !test_split_equal_parts_1d_opset18r   r   r   r   r   r    r   r   r   r!   $test_split_variable_parts_1d_opset18	r$   r%   r&   r'   r(   r)   r*   r   r,   r-   r1   r1   r2   export_1d_opset18   sD   	
zSplit.export_1d_opset18c                  C  s  t g dg dgt j} tjjddgddgddd	}t g d
g dgt jt g dg dgt jg}t|| g|dd t ddgt j}tjjdddgddgdd}t ddgddggt jt g dg dgt jg}t|| |g|dd d S )Nr   r4   r   r   r   r   r;   r   rM   r<   r=   r>   r?   test_split_equal_parts_2drP   r   r    r   r	   r
   r5   r6   r!   rA   $test_split_variable_parts_2d_opset18rR   r-   r1   r1   r2   export_2d_opset18   sN   	
zSplit.export_2d_opset18c                  C  s   t g dt j} tjjddgg ddd}t ddgt jt d	d
gt jt ddgt jg}t|| g|dd t ddgt j}tjjdddgddgd}t ddgt jt g dt jg}t|| |g|dd d S )Nr   r   r   r   rL   r   r   rN   r	   r
   r   r   r   r   +test_split_equal_parts_default_axis_opset18rP   r   r   r    r   r   rD   r!   .test_split_variable_parts_default_axis_opset18rR   r-   r1   r1   r2   export_default_values_opset18  s<   
z#Split.export_default_values_opset18c                  C  s   t g t j} t g dt j}tjjdddgg dd}t g t jt g t jt g t jg}t|| |g|dd d S )	NrH   r   r   r    r   rD   #test_split_zero_size_splits_opset18rP   )	r$   r%   r&   r'   r,   r(   r)   r*   r   rJ   r1   r1   r2   export_zero_size_splits_opset18,  s"   
z%Split.export_zero_size_splits_opset18c                  C  s   t g dt j} tjjddgg ddd}t ddgt jt d	d
gt jt ddgt jt dgt jg}t|| g|dd d S )N)r	   r
   r   r   r   r   r5   r   r   )r   r   r   output_4r   rW   r	   r
   r   r   r   r   r5   "test_split_1d_uneven_split_opset18rP   r$   r%   r&   r'   r(   r)   r*   r   r.   r/   r0   r1   r1   r2   export_1d_uneven_split_opset18E  s$   
z$Split.export_1d_uneven_split_opset18c                  C  s   t g dg dgt j} tjjddgg dddd}t g d	g d
gt jt g dg dgt jt ddgddggt jg}t|| g|dd d S )N)r	   r
   r   r   r   r   r5   r6   )r7   r8   r9   r:         *@      ,@      .@      0@r   r   r   r;   rL   rM   r<   )r7   r8   r9   r>   )r:   rb   rc   r5   r6   rd   re   "test_split_2d_uneven_split_opset18rP   r_   r`   r1   r1   r2   export_2d_uneven_split_opset18^  s0   	
z$Split.export_2d_uneven_split_opset18N)r   r   )__name__
__module____qualname__staticmethodr3   rC   rG   rK   rS   rV   rZ   r\   ra   rg   r1   r1   r1   r2   r      s*    +-&*/'r   )

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