
    h=#                     Z    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)    N)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   Nc            
      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	)z2
input_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              \/var/www/fran/franai/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
)z:
input_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Lr1   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	)zB
input_shape: [1, 3, 32, 32, 32]
output_shape: [1, 3, 31, 31, 31]
r   r
   r   r   )r   r   r   r4   r   r   N)r   r   r   r   r   r   test_lppool_3d_defaultr   r   r8   s              r.   export_lppool_3d_defaultLpPool.export_lppool_3d_defaultJ   s     {{$$5E" % 
 IIOOAq"b"-44RZZ@((1+ 8!"+|
	 ,HPQRtC!3KLr1   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XS9n[        X/U/SS9  g)zd
input_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   r5   r6   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_uppere   s@    {{$$5EQ! % 
 IIOOAq"b)00<((1+-'!"+|
	 "'!"+|i
	 A,!#q\G+
Q<1$aL8+	Vg2X4IJ	
 :9,HdXtC!3NOr1   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XS9n[        X/U/SS9  g)zd
input_shape: [1, 3, 32, 32]
output_shape: [1, 3, 32, 32]
pad_shape: [1, 1] -> [1, 0, 1, 0] by axis
r3   r
   r   r   r   
SAME_LOWERrA   r   r   r   r5   r6   Nr   rC   rD   rE   r   r   test_lppool_2d_same_lowerr   rI   )r   r(   r   r)   r   r   r+   rK   rM   rL   rO   rN   r-   r*   r   s                  r.   export_lppool_2d_same_lower"LpPool.export_lppool_2d_same_lower   s@    {{$$5EQ! % 
 IIOOAq"b)00<((1+-'!"+|
	 "'!"+|i
	 q\Q&
A,+aLA%	Q<)+Vg2X4IJ	
 :9,HdXtC!3NOr1   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Xv4X44SSS9n[        XXEUSXS9n[        X/U/SS9  g)zd
input_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   r6   r   NrC   rD   r   rE   r   r   test_lppool_2d_padsr   )r   r    r!   r"   r#   r$   r%   r&   r'   r   rJ   r   r   )r   r(   r   r)   r   r   rM   rL   rO   rN   r*   r+   r-   r   s                 r.   export_lppool_2d_padsLpPool.export_lppool_2d_pads   s     {{$$5EQ % 
 IIOOAq"b)00<((1+677
7W7y:9;!"+|
	 Vg2X4IJ	
 ,HdXtC!3HIr1   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
)z:
input_shape: [1, 3, 32, 32]
output_shape: [1, 3, 10, 10]
r   r
   r   r      r   r   r   r   N)r^   r^   rY   r   r   test_lppool_2d_stridesr   r   r8   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Lr1   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)z6
input_shape: [1, 1, 4, 4]
output_shape: [1, 1, 2, 2]
r   r
   r   r   r   )r   r   r   r   	dilationsr   )r   r   r   r3   )r^            )	   
         )            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Nr1    )returnN)__name__
__module____qualname____firstlineno__staticmethodr/   r9   r=   rP   rU   r[   r`   rq   __static_attributes__rs   r1   r.   r
   r
      s    M M6 M M4 M M4 &P &PP &P &PP  J  JD M M6 'O 'Or1   r
   )numpyr"   r   onnx.backend.test.case.baser   onnx.backend.test.case.noder   !onnx.reference.ops.op_pool_commonr   r   r   r   r
   rs   r1   r.   <module>r      s-   
   , . LOT LOr1   