
    h<N                     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                   T   \ 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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)AveragePool   Nc                  |   [         R                  R                  SS/S/SS// SQS9n [        R                  " / SQ/ SQ/ S	Q/ S
Q/ SQ///5      R                  [        R                  5      n[        R                  " / SQ/ SQ/ SQ/ SQ/ SQ///5      R                  [        R                  5      n[        X/U/SS9  g)`
input_shape: [1, 1, 5, 5]
output_shape: [1, 1, 5, 5]
pad_shape: [4, 4] -> [2, 2, 2, 2] by axis
r
   xy      r   r   r   inputsoutputskernel_shapepads   r         r            	   
                        r                        )r         @r   g      !@r    )g      #@r!   g      %@r#         '@)r$   g      )@r%         +@r&   )      -@r'   g      /@r)   g     0@)r*   g     1@r   g     2@r+   $test_averagepool_2d_precomputed_padsr   r   nameNonnxhelper	make_nodenparrayastypefloat32r   noder   r   s      a/var/www/fran/franai/venv/lib/python3.13/site-packages/onnx/backend/test/case/node/averagepool.py&export_averagepool_2d_precomputed_pads2AveragePool.export_averagepool_2d_precomputed_pads   s     {{$$5EQ % 
 HH ((,,,

 &
 	
 HH ,1020

 &
 	
 	qc0V	
    c            	         [         R                  R                  SS/S/SS// SQSS9n [        R                  " / SQ/ S	Q/ S
Q/ SQ/ SQ///5      R                  [        R                  5      n[        R                  " / SQ/ SQ/ SQ/ SQ/ SQ///5      R                  [        R                  5      n[        U U/U/SS9  g)r   r
   r   r   r   r   r   r   r   r   r   count_include_padr   r   r"   r(   r-   )g)\(@g@g333333@gRQ@gQ	@)g=
ףp=@g@ @g)\(@gGz@)g@g      $@g      *@皙%@rK   )gףp=
@g333333#@g(@g{Gz$@gGz@)g{Gz@rK   rL   g(\!@g\(\@6test_averagepool_2d_precomputed_pads_count_include_padr8   Nr:   rB   s      rD   8export_averagepool_2d_precomputed_pads_count_include_padDAveragePool.export_averagepool_2d_precomputed_pads_count_include_pad@   s     {{$$5EQ % 
 HH ((,,,

 &
 	
 HH A@CBA

 &
 	
 	3CI		
rG   c                  l   [         R                  R                  SS/S/SS/SS/S9n [        R                  " / SQ/ SQ/ SQ/ S	Q/ S
Q///5      R                  [        R                  5      n[        R                  " SS/SS////5      R                  [        R                  5      n[        U U/U/SS9  g)z6
input_shape: [1, 1, 5, 5]
output_shape: [1, 1, 2, 2]
r
   r   r   r   r   r   r   stridesr   r   r"   r(   r-   r   r   r&   r)   'test_averagepool_2d_precomputed_stridesr8   Nr:   rB   s      rD   )export_averagepool_2d_precomputed_strides5AveragePool.export_averagepool_2d_precomputed_stridesq   s     {{$$5EQF % 
 HH ((,,,

 &
 	
 HHAR)*+,33BJJ?3C:		
rG   c            	      t   [         R                  R                  SS/S/SS/SS/SS9n [        R                  " / SQ/ S	Q/ S
Q/ SQ/ SQ///5      R                  [        R                  5      n[        R                  " / SQ/ SQ/ SQ///5      R                  [        R                  5      n[        U U/U/SS9  g)z`
input_shape: [1, 1, 5, 5]
output_shape: [1, 1, 3, 3]
pad_shape: [2, 2] -> [1, 1, 1, 1] by axis
r
   r   r   r   r   
SAME_UPPER)r   r   r   rR   auto_padr   r   r"   r(   r-   )r   g      @r   )r4   r%   r6   )r+   g     4@r/   *test_averagepool_2d_precomputed_same_upperr8   Nr:   rB   s      rD   ,export_averagepool_2d_precomputed_same_upper8AveragePool.export_averagepool_2d_precomputed_same_upper   s     {{$$5EQF! % 
 HH ((,,,

 &
 	
 HH%5~FGHIPPJJ
 	3C=		
rG   c                  ^   [         R                  R                  SS/S/S/S9n [        R                  R                  SSS5      R                  [        R                  5      n[        R                  " U5      nS	nS/nS/n[        X2SS	 XE5      u  pgUn[        XXEUS
5      n	[        X/U	/SS9  g	)z2
input_shape: [1, 3, 32]
output_shape: [1, 3, 31]
r
   r   r   r   r   r   r   r   r       NAVGtest_averagepool_1d_defaultr8   r;   r<   r=   r>   randomrandnr@   rA   shaper   r   r   
rC   r   x_shaper   r   rR   	out_shape_paddedr   s
             rD   export_averagepool_1d_default)AveragePool.export_averagepool_1d_default   s     {{$$5E	 % 
 IIOOAq"%,,RZZ8((1+s#8!"+|
	 ,EJtC!3PQrG   c                  ^   [         R                  R                  SS/S/SS/S9n [        R                  R                  SSSS5      R                  [        R                  5      n[        R                  " U5      nS	nS
nSn[        X2SS	 XE5      u  pgUn[        XXEUS5      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^   Nr   r   r   r   r_   test_averagepool_2d_defaultr8   ra   re   s
             rD   export_averagepool_2d_default)AveragePool.export_averagepool_2d_default   s     {{$$5EQ	 % 
 IIOOAq"b)00<((1+8!"+|
	 ,EJtC!3PQrG   c                  h   [         R                  R                  SS/S// SQ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[        X2SS	 XE5      u  pgUn[        XXEUS5      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]   r   r   r^   Nr   r   r   r   r_   test_averagepool_3d_defaultr8   ra   re   s
             rD   export_averagepool_3d_default)AveragePool.export_averagepool_3d_default   s     {{$$5E"	 % 
 IIOOAq"b"-44RZZ@((1+ 8!"+|
	 ,EJtC!3PQrG   c            	         [         R                  R                  SS/S/SS/S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 X45      n[        SUSS X4U5      nUS   S-  nUS   U-
  nUS   S-  n	US   U	-
  n
[        R                  " USSXx4X44S[        R                  S9nXyX4n[        XX4USU5      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   rW   r   r   r   rX   r   r   r^   rm   rn   Nr   r   r   constantmodeconstant_valuesr_   test_averagepool_2d_same_upperr8   r;   r<   r=   r>   rb   rc   r@   rA   rd   r   r   padnanr   r   )rC   r   rf   r   rR   rg   	pad_shapepad_top
pad_bottompad_left	pad_rightri   r   r   s                 rD    export_averagepool_2d_same_upper,AveragePool.export_averagepool_2d_same_upper  s<    {{$$5EQ! % 
 IIOOAq"b)00<((1+-'!"+|
	 "'!"+|i
	 A,!#q\G+
Q<1$aL8+	Vg2X4IJFF	
 :9,E4PtC!3STrG   c            	         [         R                  R                  SS/S/SS/S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 X45      n[        SUSS X4U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[        R                  S9nXXy4n[        XX4USU5      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
r
   r   r   r   
SAME_LOWERry   r   r   r^   rm   rn   Nr   rz   r{   r|   r_   test_averagepool_2d_same_lowerr8   r   )rC   r   rf   r   rR   rg   r   r   r   r   r   ri   r   r   s                 rD    export_averagepool_2d_same_lower,AveragePool.export_averagepool_2d_same_lower-  s<    {{$$5EQ! % 
 IIOOAq"b)00<((1+-'!"+|
	 "'!"+|i
	 q\Q&
A,+aLA%	Q<)+Vg2X4IJFF	
 :9,E4PtC!3STrG   c            	         [         R                  R                  SS/S/SS// SQS9n [        R                  R                  SSSS5      R                  [        R                  5      n[        R                  " U5      nS	nS
nSnSnSnSnXhXW/n	[        XSS X4SS9u  p[        R                  " USSU	S   U	S   4U	S   U	S   44S[        R                  S9n[        XX4U
SU	5      n[        X/U/SS9  g)d
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   rn   r   NF	ceil_moderz   r   r{   r|   r_   test_averagepool_2d_padsr8   )r;   r<   r=   r>   rb   rc   r@   rA   rd   r   r   r   r   r   )rC   r   rf   r   rR   r   r   r   r   r   rg   ri   r   s                rD   export_averagepool_2d_pads&AveragePool.export_averagepool_2d_padsT  s    {{$$5EQ % 
 IIOOAq"b)00<((1+
	:9;!"+|
	 Vd1gtAw/$q'471CDFF	
 ,E4PtC!3MNrG   c                     [         R                  R                  SS/S/SS// SQSS9n [        R                  R                  SSSS5      R                  [        R                  5      n[        R                  " U5      nS	nS
nS	nSnSnSnSn	XyXh/n
[        XSS XEUSS9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
SS9n[        U U/U/SS9  g)r   r
   r   r   r   r   r   rI   r   rn   r   r   NFr   rz   r   r{   r|   r_   )rJ   *test_averagepool_2d_pads_count_include_padr8   )r;   r<   r=   r>   rb   rc   r@   rA   rd   r   r   r   r   )rC   r   rf   	dilationsr   rR   r   r   r   r   r   rg   ri   r   s                 rD   ,export_averagepool_2d_pads_count_include_pad8AveragePool.export_averagepool_2d_pads_count_include_padx  s2    {{$$5EQ % 
 IIOOAq"b)00<((1+	
	:9;!"+|i5
	 Vd1gtAw/$q'471CD	
 	
 	3C=		
rG   c            	      b   [         R                  R                  SS/S/SS/SS/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 X4SS9u  pVUn[        XrX4USU5      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   rQ   r   r^   )r   r   r   Nr   Fr   r_   test_averagepool_2d_stridesr8   ra   )	rC   r   rf   r   rR   rg   r   ri   r   s	            rD   export_averagepool_2d_strides)AveragePool.export_averagepool_2d_strides  s     {{$$5EQF % 
 IIOOAq"b)00<((1+;'!"+|
	 ,E4PtC!3PQrG   c            	      f   [         R                  R                  SS/S/SS/SS/S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)6
input_shape: [1, 1, 4, 4]
output_shape: [1, 1, 2, 2]
r
   r   r   r   r   T)r   r   r   rR   r   r   r   r   r   r   r   r   r   r    r!   r#   r$   r%   r&   r'   r)   r   r3   r$   r5   test_averagepool_2d_ceilr8   Nr:   rB   s      rD   export_averagepool_2d_ceil&AveragePool.export_averagepool_2d_ceil  s     {{$$5EQF % 
 HH %$'(		
 &
 	
 HHC2t*-./077

CtC!3MNrG   c            
      l   [         R                  R                  SS/S/SS/SS/SS/S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)r   r
   r   r   r   r   Tr   r   r   rR   r   r   r   r   r   r   r   r   r!   r#   test_averagepool_2d_dilationsr8   Nr:   rB   s      rD   export_averagepool_2d_dilations+AveragePool.export_averagepool_2d_dilations  s     {{$$5EQF!f % 
 HH %$'(		
 &
 	
 HHAR)*+,33BJJ?tC!3RSrG   c            
         [         R                  R                  SS/S// SQ/ SQ/ SQSS9n [        R                  " / SQ/ S	Q/ S
Q/ SQ// SQ/ S	Q/ S
Q/ SQ// SQ/ S	Q/ S
Q/ SQ// SQ/ S	Q/ S
Q/ SQ////5      R                  [        R                  5      n[        R                  " SS/SS//SS/SS/////5      R                  [        R                  5      n[        X/U/SS9  g)r   r
   r   r   rs   rt   Tr   r   r   r   r   r   r   r!   r#   #test_averagepool_3d_dilations_smallr8   Nr:   rB   s      rD   export_averagepool_3d_dilations+AveragePool.export_averagepool_3d_dilations  s    {{$$5E" % 
 HH
 )(+,	 )(+,	 )(+,	 )(+,	'
> &
? 	
B HH!Q"b*aVb"X,>?@ABII"**Uqc0U	
rG   c                     Sn SnSnSnSnS H  nS H  n[         R                  R                  SS	/S
/UUUUUS9n[        R                  R
                  " SS/U Q76 R                  [        R                  5      n[        S U UUUUS9u  p[        R                  " USSU	S   U	S   4U	S   U	S   4U	S   U	S   44SUS:X  a  SO[        R                  S9n
[        U
SS/U Q7UUUSU	UUS9	nSU SU 3n[        Xg/U/US9  M     M     g )N)r^   r^   r^   rs   )r   r   r   )r   r   r   r   )r   r   )TFr
   r   r   )r   r   r   rR   r   rJ   r   r   )r   r   rz   r   r   r   r   r{   r|   r_   )r   r   rJ   9test_averagepool_3d_dilations_large_count_include_pad_is__ceil_mode_is_r8   )r;   r<   r=   r>   rb   rc   r@   rA   r   r   r   r   r   )rf   r   r   rR   rJ   r   rC   r   rg   r   ri   r   	test_names                rD   %export_averagepool_3d_dilations_large1AveragePool.export_averagepool_3d_dilations_large=  sx   	 !'*	{{,,!5 E!-#'&7' - 	 IIOOAq373::2::F"C ''#	 a$q'*a$q'*a$q'* $):a)?ARVV $G$ '&7
 XXiWjjx  zC  yD  E	tC!9E] + "(rG    )returnN)__name__
__module____qualname____firstlineno__staticmethodrE   rN   rT   rZ   rj   rp   rv   r   r   r   r   r   r   r   r   r   __static_attributes__r   rG   rD   r
   r
      s^   *
 *
X .
 .
`  
  
D $
 $
L R R0 R R0 R R0 $U $UL $U $UL !O !OF 1
 1
f R R0 O O: T TB 5
 5
n 6F 6FrG   r
   )numpyr>   r;   onnx.backend.test.case.baser   onnx.backend.test.case.noder   !onnx.reference.ops.op_pool_commonr   r   r   r   r
   r   rG   rD   <module>r      s-   
   , . b	F$ b	FrG   