
    /j                    ^    d dl mZ d dlZd dlZd dlmZ d dlmZ d	dZ	 G d de          Z
dS )
    )annotationsN)Base)expect        c                  
 | j         
|t          t          
                    }n
fd|D             }t          |          }|dz  |j        k    rt          d          g }t          
          D ]
}|ddggz  }t          |          D ]+}||         }	|	dk     r
|	z   }	||         |||z            g||	<   ,|dk    rt          j        | |||          S t          j        | ||          S )Nc                *    g | ]}|d k    r|n|z   S )r    ).0axis
input_ranks     d/home/longshao/multi-rider-rag/.venv/lib/python3.11/site-packages/onnx/backend/test/case/node/pad.py
<listcomp>zpad_impl.<locals>.<listcomp>   s*    JJJT		tj'8JJJ       z9The number of elements in raw_pads should be 2 * num_axesr   constant)	pad_widthmodeconstant_values)r   r   )ndimlistrangelensize
ValueErrornppad)dataraw_padsr   r   axesnum_axesr   _ir   r   s             @r   pad_implr#      s>   J|E*%%&&JJJJTJJJ4yyH!|x}$$TUUUI:  q!fX		 8__ @ @Aw!88$D#A;X(>?	$zv+	
 
 
 	
 6   r   c                  n    e Zd Zedd            Zedd            Zedd            Zedd            ZdS )	PadreturnNonec                    t           j                            dg ddgd          } t          j                            dddd	                              t          j                  }t          j        g d
                              t          j	                  }t          j        d          }t          ||dd          }t          | |||g|gd           d S )Nr%   )xpadsvalueyr   inputsoutputsr               )r   r   r0   r1   r   r   r   r2   333333?test_constant_padr.   r/   nameonnxhelper	make_noder   randomrandnastypefloat32arrayint64r#   r   )noder)   r*   r+   r,   s        r   export_constant_padzPad.export_constant_pad3   s    {$$0003%j % 
 
 IOOAq!Q''..rz::x0001188H
 
 
3Qj#..tQe,qc@STTTTTTr   c            	        dD ]} t           j                            dddgdg|           }t          j                            ddd	d
                              t          j                  }t          j        g d                              t          j	                  }t          |||           }t          |||g|gd|  d           d S )N)edgereflectwrapr%   r)   r*   r,   r-   r0   r1   r2   r3   )r   r   r0   r0   r   r   r0   r0   test__padr6   )r9   r:   r;   r   r<   r=   r>   int32r@   rA   r#   r   )r   rB   r)   r*   r,   s        r   #export_reflection_edge_and_wrap_padz'Pad.export_reflection_edge_and_wrap_padA   s    / 
	Q 
	QD;((sFmcU )  D 	1a++2228<<A844455<< D D$''A4D	A3=OT=O=O=OPPPPP
	Q 
	Qr   c                    t           j                            dg ddgd          } t          j                            dddd	                              t          j                  }t          j        g d
                              t          j	                  }t          j        d          }t          j        ddgt          j	                  }t          ||ddddg          }t          | ||||g|gd           d S )Nr%   r)   r*   r+   r   r,   r   r-   r0   r1   r2   r3   r   r1   r   r2   r4   dtypetest_constant_pad_axesr6   r8   rB   r)   r*   r+   r   r,   s         r   export_constant_pad_axeszPad.export_constant_pad_axesO   s   {$$8883%j % 
 
 IOOAq!Q''..rz::x%%,,H
 
 
3xAbh///F
 
 	tUD)C)		
 	
 	
 	
 	
 	
r   c                    t           j                            dg ddgd          } t          j                            dddd	                              t          j                  }t          j        g d
                              t          j	                  }t          j        d          }t          j        ddgt          j	                  }t          ||ddddg          }t          | ||||g|gd           d S )Nr%   rM   r,   r   r-   r0   r1   r2   r3   rN   r4   rO   test_constant_pad_negative_axesr6   r8   rR   s         r   !export_constant_pad_negative_axesz%Pad.export_constant_pad_negative_axesi   s   {$$8883%j % 
 
 IOOAq!Q''..rz::x%%,,H
 
 
3xR111H
 
 	tUD)C2		
 	
 	
 	
 	
 	
r   N)r&   r'   )__name__
__module____qualname__staticmethodrC   rK   rS   rX   r	   r   r   r%   r%   2   s        U U U \U Q Q Q \Q 
 
 
 \
2 
 
 
 \
 
 
r   r%   )r   N)
__future__r   numpyr   r9   onnx.backend.test.case.baser   onnx.backend.test.case.noder   r#   r%   r	   r   r   <module>ra      s    # " " " " "      , , , , , , . . . . . ." " " "JO
 O
 O
 O
 O
$ O
 O
 O
 O
 O
r   