
    Si/#                    f    S SK Jr  S SKrS SKrS SKJr  S SKJr  S SK	J
r
JrJrJr   " S S\5      rg)    )annotationsN)Base)expect)get_output_shape_auto_pad!get_output_shape_explicit_paddingget_pad_shapepoolc                      \ rS rSr\SS j5       r\SS j5       r\SS j5       r\SS j5       r\SS j5       r	\SS j5       r
\SS j5       r\SS	 j5       rS
rg)LpPool   c            
     b   Sn S/nS/n[         R                  R                  SS/S/UUU S9n[        R                  R                  SSS5      R                  [        R                  5      n[        R                  " U5      nS	n[        XeSS	 X5      u  pxUn	[        XXUS
U S9n
[        X4/U
/SS9  g	)z1input_shape: [1, 3, 32]
output_shape: [1, 3, 31]
         r   xyinputsoutputskernel_shapestridesp    NLPPOOLr   test_lppool_1d_defaultr   r   nameonnxhelper	make_nodenprandomrandnastypefloat32shaper   r	   r   )r   r   r   noder   x_shapepads	out_shape_paddedr   s              a/var/www/html/ai-image-ml/venv/lib/python3.13/site-packages/onnx/backend/test/case/node/lppool.pyexport_lppool_1d_defaultLpPool.export_lppool_1d_default   s    
 s#{{$$5E% % 
 IIOOAq"%,,RZZ8((1+8!"+|
	 ,HPQRtC!3KL    c            
     b   Sn [         R                  R                  SS/S/SS/U S9n[        R                  R                  SSS	S	5      R                  [        R                  5      n[        R                  " U5      nS
nSnSn[        XCSS
 XV5      u  pxUn	[        XXVUSU S9n
[        X/U
/SS9  g
)z9input_shape: [1, 3, 32, 32]
output_shape: [1, 3, 31, 31]
   r   r   r   r   r   r   r   r   r   r   r   Nr   r   r   r   r   r   test_lppool_2d_defaultr   r   r   r)   r   r*   r+   r   r   r,   r-   r.   r   s              r/   export_lppool_2d_defaultLpPool.export_lppool_2d_default/   s    
 {{$$5EQ % 
 IIOOAq"b)00<((1+8!"+|
	 ,HPQRtC!3KLr2   c            
     l   Sn [         R                  R                  SS/S// SQU S9n[        R                  R                  SSSSS5      R                  [        R                  5      n[        R                  " U5      nS	n/ SQn/ S
Qn[        XCSS	 XV5      u  pxUn	[        XXVUSU S9n
[        X/U
/SS9  g	)zAinput_shape: [1, 3, 32, 32, 32]
output_shape: [1, 3, 31, 31, 31]
r   r   r   r   )r   r   r   r5   r   r   N)r   r   r   r   r   r   test_lppool_3d_defaultr   r   r9   s              r/   export_lppool_3d_defaultLpPool.export_lppool_3d_defaultI   s    
 {{$$5E" % 
 IIOOAq"b"-44RZZ@((1+ 8!"+|
	 ,HPQRtC!3KLr2   c                     Sn [         R                  R                  SS/S/SS/SU S9n[        R                  R                  SSS	S	5      R                  [        R                  5      n[        R                  " U5      nS
nSn[        SUSS XE5      n[        SUSS XEU5      nUS   S-  nUS   U-
  n	US   S-  n
US   U
-
  n[        R                  " USSX4X44SSS9nXX/n[        XXEUSXU S9	n[        X/U/SS9  g)zcinput_shape: [1, 3, 32, 32]
output_shape: [1, 3, 32, 32]
pad_shape: [1, 1] -> [0, 1, 0, 1] by axis
r   r   r   r   
SAME_UPPERr   r   r   auto_padr   r   r   r   r6   r7   Nr   r   r   constantmodeconstant_valuesr   r   test_lppool_2d_same_upperr   r    r!   r"   r#   r$   r%   r&   r'   r(   r   r   padr	   r   )r   r)   r   r*   r   r   r,   	pad_shapepad_top
pad_bottompad_left	pad_rightr.   r+   r   s                  r/   export_lppool_2d_same_upper"LpPool.export_lppool_2d_same_upperc   sH    {{$$5EQ! % 
 IIOOAq"b)00<((1+-'!"+|
	 "'!"+|i
	 A,!#q\G+
Q<1$aL8+	Vg2X4IJ	
 :9\IxWX
 	tC!3NOr2   c                     Sn [         R                  R                  SS/S/SS/SU S9n[        R                  R                  SS	S
S
5      R                  [        R                  5      n[        R                  " U5      nSnSn[        SUSS XE5      n[        SUSS XEU5      nUS   S-  nUS   U-
  n	US   S-  n
US   U
-
  n[        R                  " USSX4X44SSS9nXX/n[        XXEUSXU S9	n[        X/U/SS9  g)zcinput_shape: [1, 3, 32, 32]
output_shape: [1, 3, 32, 32]
pad_shape: [1, 1] -> [1, 0, 1, 0] by axis
r4   r   r   r   r   
SAME_LOWERrB   r   r   r   r6   r7   Nr   rD   rE   rF   r   r   test_lppool_2d_same_lowerr   rJ   )r   r)   r   r*   r   r   r,   rL   rN   rM   rP   rO   r.   r+   r   s                  r/   export_lppool_2d_same_lower"LpPool.export_lppool_2d_same_lower   sH    {{$$5EQ! % 
 IIOOAq"b)00<((1+-'!"+|
	 "'!"+|i
	 q\Q&
A,+aLA%	Q<)+Vg2X4IJ	
 :9\IxWX
 	tC!3NOr2   c                    Sn [         R                  R                  SS/S/SS// SQU S9n[        R                  R                  SSSS5      R                  [        R                  5      n[        R                  " U5      nS	nS
nS=n=n=pXyXh/n
[        XSS XE5      u  p[        R                  " USSUS   US   4US   US   44SSS9n[        UUUUUSUU
U S9	n[        X/U/SS9  g)zcinput_shape: [1, 3, 28, 28]
output_shape: [1, 3, 30, 30]
pad_shape: [4, 4] -> [2, 2, 2, 2] by axis
r   r   r   r   )r   r   r   r   )r   r   r   r+   r   r      r   r   r7   r   NrD   r   rE   rF   r   )pads_requiredr+   r   test_lppool_2d_padsr   )r    r!   r"   r#   r$   r%   r&   r'   r(   r   rK   r	   r   )r   r)   r   r*   r   r   rN   rM   rP   rO   r+   r,   
extra_padsr.   r   s                  r/   export_lppool_2d_padsLpPool.export_lppool_2d_pads   s0    {{$$5EQ % 
 IIOOAq"b)00<((1+677
7W7y:9 A!"+|!
	 A
1.A
1.	 

 $

 	tC!3HIr2   c            
     h   Sn [         R                  R                  SS/S/SS/SS/U S9n[        R                  R                  SSS	S	5      R                  [        R                  5      n[        R                  " U5      nS
nSnSn[        XCSS
 XV5      u  pxUn	[        XXVUSU S9n
[        X/U
/SS9  g
)z9input_shape: [1, 3, 32, 32]
output_shape: [1, 3, 10, 10]
r   r   r   r      r   r   r   r   N)ra   ra   rZ   r   r   test_lppool_2d_stridesr   r   r9   s              r/   export_lppool_2d_stridesLpPool.export_lppool_2d_strides   s    
 {{$$5EQF % 
 IIOOAq"b)00<((1+8!"+|
	 ,HPQRtC!3KLr2   c            
     p   Sn [         R                  R                  SS/S/SS/SS/SS/U S9n[        R                  " / SQ/ SQ/ S	Q/ S
Q///5      R                  [        R                  5      n[        R                  " SS/SS////5      R                  [        R                  5      n[        X/U/SS9  g)z5input_shape: [1, 1, 4, 4]
output_shape: [1, 1, 2, 2]
r   r   r   r   r   )r   r   r   r   	dilationsr   )r   r   r   r4   )ra            )	   
         )            gv -@g6?0@gwIs 5@gC.c]~7@test_lppool_2d_dilationsr   N)r    r!   r"   r#   arrayr&   r'   r   )r   r)   r   r   s       r/   export_lppool_2d_dilations!LpPool.export_lppool_2d_dilations  s    
 {{$$5EQF!f % 
 HH %$'(		
 &
 	
 HH ,->?+->?	
 &
 	
 	tC!3MNr2    N)returnNone)__name__
__module____qualname____firstlineno__staticmethodr0   r:   r>   rQ   rV   r^   rc   rt   __static_attributes__rv   r2   r/   r   r      s    M M4 M M2 M M2 'P 'PR 'P 'PR .J .J` M M4 &O &Or2   r   )
__future__r   numpyr#   r    onnx.backend.test.case.baser   onnx.backend.test.case.noder   !onnx.reference.ops.op_pool_commonr   r   r   r	   r   rv   r2   r/   <module>r      s0    #   , . WOT WOr2   