
    iS                         S SK r S SKJr  S SKrS SKJs  Jr  S SKJ	r	  S SK
JrJr   " S S\ R                  5      r " S S\ R                  5      r\S	:X  a  \ R"                  " 5         gg)
    N)patch)skip_if_no_cuda)TorchAOBaseTensortorch_version_at_leastc                       \ rS rSrS rSrg)TestTorchVersion   c           
          / SQnU H?  u  p#n[        SU5         [        U5      nU R                  UUSU SU 35        S S S 5        MA     g ! , (       d  f       MS  = f)N))2.5.0a0+git9f170372.5.0F)r   2.4.0T)2.5.0.dev20240708+cu121r   F)r   r   T)r   r   T)r   r   T)r   r   T)r   r   Fztorch.__version__zFailed for torch.__version__=z, comparing with )r   r   assertEqual)self
test_casestorch_versioncompare_versionexpected_resultresults         N/var/www/html/ai-image-ml/venv/lib/python3.13/site-packages/test/test_utils.pytest_torch_version_at_least,TestTorchVersion.test_torch_version_at_least   si    	

 @J;MO*M:/@  #3M?BSTcSde ;: @J::s   %A
A	 N)__name__
__module____qualname____firstlineno__r   __static_attributes__r       r   r   r      s    r   r   c                       \ rS rSrS rS r\" 5       S 5       r\" 5       S 5       r\" 5       S 5       r	S r
S rS	 rS
 rS rS rSrg)TestTorchAOBaseTensor(   c                 *    " S S[         5      n[        R                  R                  SS5      nU R	                  [
        S5         [        R                  R                  U" UR                  5      5      Ul        S S S 5        g ! , (       d  f       g = f)Nc                        \ rS rSrS rS rSrg)<TestTorchAOBaseTensor.test_print_arg_types.<locals>.MyTensor*   c                 X    UR                   n[        R                  R                  X5      $ N)shapetorchTensor_make_wrapper_subclass)clsdatar)   s      r   __new__DTestTorchAOBaseTensor.test_print_arg_types.<locals>.MyTensor.__new__+   s     

||::3FFr   c                     Xl         g r(   r.   )r   r.   s     r   __init__ETestTorchAOBaseTensor.test_print_arg_types.<locals>.MyTensor.__init__/   s     	r   r2   N)r   r   r   r   r/   r3   r   r   r   r   MyTensorr%   *   s    G!r   r5   
   	arg_types)r   r*   nnLinearassertRaisesRegexNotImplementedError	Parameterweight)r   r5   ls      r   test_print_arg_types*TestTorchAOBaseTensor.test_print_arg_types)   sd    	!( 	! HHOOB# ##$7Exx))(188*<=AH FEEs   5B
Bc           
      ^
   UR                   R                  5       n[        US5      (       a2  UR                   H"  n[	        X5      c  M  UR                  U5        M$     UR                  R                  5       n[        US5      (       a2  UR                   H"  n[	        X5      c  M  UR                  U5        M$     UR                  5       u  pxU V	s0 s H  o[	        X5      _M     n
n	UR                  5       nUR                  5       n[        U5      R                  XX5      nU H;  nU R                  [        R                  " [	        X5      [	        X5      5      5        M=     U H'  nU R!                  [	        X5      [	        X5      5        M)     U R                  [        R                  " UR"                  UR"                  5      5        U R!                  UR$                  UR$                  5        UR'                  [        R(                  SS9nUR'                  [        R(                  SS9nUR*                  nUR-                  S5      nU R!                  UR*                  R                  S5        UR-                  U5      nU R!                  UR*                  U5        [/        U5      nUR1                  5       n[        R2                  R4                  R7                  U5      nUR9                  5       nU H<  nU R                  [        R                  " [	        UU5      [	        X5      5      5        M>     U H(  nU R!                  [	        UU5      [	        X5      5        M*     U Ht  n[	        X5      nUR;                  SS5      R=                  5       nUR;                  SS5      n[?        XU5        U RA                  [	        X5      RC                  5       5        Mv     UR=                  5       nU H,  nU R                  [	        UU5      RC                  5       5        M.     U H(  nU R!                  [	        UU5      [	        X5      5        M*     U RE                  UR"                  S   S   UR"                  S   S   5        U H'  nU R!                  [	        X&5      [	        X5      5        M)     URG                  U5        U H;  nU R                  [        R                  " [	        X5      [	        X$5      5      5        M=     U H'  nU R!                  [	        X&5      [	        X5      5        M)     g s  sn	f )Noptional_tensor_data_namesoptional_tensor_attribute_namescuda)device)layoutrE   r      )$tensor_data_namescopyhasattrrB   getattrappendtensor_attribute_namesrC   __tensor_flatten__sizestridetype__tensor_unflatten__
assertTruer*   equalr   qdataattr_get_to_kwargsstridedrE   tostrdetachopsatenaliasclone	transpose
contiguoussetattrassertFalseis_contiguousassertNotEqualcopy_)r   	lp_tensorlp_tensor_for_copyall_tensor_data_namestensor_data_nameall_tensor_attribute_namestensor_attribute_namerH   tensor_attributesnametensor_data_dict
outer_sizeouter_stridereconstructed_original_devicelp_tensor_clonetensorlp_tensor_ts                      r   _test_default_impls_helper0TestTorchAOBaseTensor._test_default_impls_helper;   s    ) ; ; @ @ B9:;;$-$H$H 97C)001AB %I &/%E%E%J%J%L"9?@@)2)R)R%9<H.556KL *S
 09/K/K/M,7H
7Ht')**7H 	 
 ^^%
 '')Y<<
 !6OOI8M< !6 &@!	9= &@ 	IOO]5H5HIJ););< $$U]]6$B$$EMM&$I $**LL(	))..7LL1	))?; 	N $$&	IINN((3	 $//+ 5OOO-=>I8 !6 &@!)>?	9 &@ !6Y9F%%a+668F%%a+FI8WYAOOQR !6  **, !6OOGK1ABPPRS !6 &@!%:;	9 &@ 	IOOA.q13E3K3KA3Nq3QR%?!*B	9 &@ 	*+ 5OOI8.A !6 &@!*B	9 &@Y
s   T*c                 p    " S S[         5      n[        R                  R                  SS5      n[        R                  R	                  U" UR
                  SS5      5      Ul        UR
                  n[        R                  R                  SS5      R
                  nU" USS5      nU R                  X55        g)zMaking sure some common functions has default implementations, such as
__tensor_unflatten__, __tensor_flatten__, _apply_fn_to_data, __repr__, to
c                   .    \ rS rSrS/rSS/rS rS rSrg)	:TestTorchAOBaseTensor.test_default_impls.<locals>.MyTensor   rU   rV   rE   c                     UR                   nUc  UR                  nSU0n[        R                  R                  " X40 UD6$ NrE   r)   rE   r*   r+   r,   )r-   rU   rV   rE   r)   kwargss         r   r/   BTestTorchAOBaseTensor.test_default_impls.<locals>.MyTensor.__new__   =    >"\\F"F+||::3PPPr   c                     Xl         X l        g r(   )rU   rV   r   rU   rV   rE   s       r   r3   CTestTorchAOBaseTensor.test_default_impls.<locals>.MyTensor.__init__   s    "
 	r   )rV   rU   N	r   r   r   r   rH   rM   r/   r3   r   r   r   r   r5   r|      s     !(	&,h%7"Q!r   r5         rV   N)r   r*   r8   r9   r<   r=   rx   )r   r5   r>   rg   another_tensorrh   s         r   test_default_impls(TestTorchAOBaseTensor.test_default_impls   s    	!( 	! HHOOAq!88%%hqxx&FGHH	A.55%nfdC''	Fr   c                     " S S[         5      n[        R                  R                  SS5      nU" UR                  SS S 5      n[        R                  R                  SS5      nU" UR                  SS S 5      nU R                  X45        [        R                  R                  SS5      nU" UR                  SS [        R                  " UR                  5      5      n[        R                  R                  SS5      nU" UR                  SS [        R                  " UR                  5      5      nU R                  X45        g )Nc                   <    \ rS rSrS/rSS/rS/rS
S jrS
S jrS	r	g)]TestTorchAOBaseTensor.test_default_impls_with_optional_data.<locals>.MyTensorWithOptionalData   rU   rV   rE   
zero_pointNc                     UR                   nUc  UR                  nSU0n[        R                  R                  " X40 UD6$ r   r   )r-   rU   rV   rE   r   r)   r   s          r   r/   eTestTorchAOBaseTensor.test_default_impls_with_optional_data.<locals>.MyTensorWithOptionalData.__new__   r   r   c                 (    Xl         X l        X@l        g r(   )rU   rV   r   )r   rU   rV   rE   r   s        r   r3   fTestTorchAOBaseTensor.test_default_impls_with_optional_data.<locals>.MyTensorWithOptionalData.__init__   s    "
 	",r   )rV   rU   r   r(   )
r   r   r   r   rH   rM   rB   r/   r3   r   r   r   r   MyTensorWithOptionalDatar      s(    !(	&,h%7"*6&Q-r   r   r   r   rV   )r   r*   r8   r9   r=   rx   
zeros_liker   r   r>   rg   rh   s        r   %test_default_impls_with_optional_data;TestTorchAOBaseTensor.test_default_impls_with_optional_data   s    	-'8 	-& HHOOAq!,QXXvtTJ	HHOOAq!5ahhdS''	FHHOOAq!,HHfdE$4$4QXX$>
	 HHOOAq!5HHfdE$4$4QXX$>
 	''	Fr   c                     " S S[         5      n[        R                  R                  SS5      nU" UR                  SS S S9n[        R                  R                  SS5      nU" UR                  SS S S9nU R                  X45        [        R                  R                  SS5      nU" UR                  SS S SS9n[        R                  R                  SS5      nU" UR                  SS S SS9nU R                  X45        g )	Nc                   D    \ rS rSrS/rSS/rS/rS/rSS jr SS	 jr	S
r
g)]TestTorchAOBaseTensor.test_default_impls_with_optional_attr.<locals>.MyTensorWithOptionalDatai  rU   rV   rE   r   optional_attrNc                     UR                   nUc  UR                  nSU0n[        R                  R                  " X40 UD6$ r   r   )r-   rU   rV   rE   r   r   r)   r   s           r   r/   eTestTorchAOBaseTensor.test_default_impls_with_optional_attr.<locals>.MyTensorWithOptionalData.__new__  r   r   c                 4    Xl         X l        X@l        XPl        g r(   )rU   rV   r   r   )r   rU   rV   rE   r   r   s         r   r3   fTestTorchAOBaseTensor.test_default_impls_with_optional_attr.<locals>.MyTensorWithOptionalData.__init__  s     #
 	",%2"r   )rV   r   rU   r   )NN)r   r   r   r   rH   rM   rB   rC   r/   r3   r   r   r   r   r   r     s8    !(	&,h%7"*6&/>.?+Q KO3r   r   r   r   rV   )r   value)r   r   )r   r*   r8   r9   r=   rx   r   s        r   %test_default_impls_with_optional_attr;TestTorchAOBaseTensor.test_default_impls_with_optional_attr   s    	3'8 	3. HHOOAq!,QXXvtPTU	HHOOAq!5HHfdt
 	''	FHHOOAq!,HHfdt7
	 HHOOAq!5HHfdt7
 	''	Fr   c                 P  ^ SS0m " S S[         5      nUR                  nUR                  nU" [        R                  R
                  R                  R                  /5      U" [        R                  /5      U4S j5       5       n[        R                  R                  SS5      n[        R                  R                  U" UR                  R                  5       SS	5      5      Ul        [        R                  " S
S5      n[        R                  " XeR                  UR                   5        U R#                  TS   SS5        U" [        R                  " SS
5      5      n[        R                  R
                  R                  R                  U5        U R#                  TS   SS5        g	)zYEnsure a function decorated with both @_implements and @_implements_torch_function works.callsr   c                   v    \ rS rSrS/rSS/rS	S\R                  S\4S jjr	S	S\R                  S\4S jjr
Srg)
STestTorchAOBaseTensor.test_implements_and_torch_function_together.<locals>.MyTensori.  rU   rV   rE   Nc                     0 nUc  UR                   nX4S'   UR                  US'   [        R                  R                  " XR
                  40 UD6nXl        X%l        U$ )NrE   dtype)rE   r   r*   r+   r,   r)   rU   rV   )r-   rU   rV   rE   r   rs         r   r/   [TestTorchAOBaseTensor.test_implements_and_torch_function_together.<locals>.MyTensor.__new__2  sV    >"\\F#)x "'++wLL77[[SFSr   c                     g r(   r   r   s       r   r3   \TestTorchAOBaseTensor.test_implements_and_torch_function_together.<locals>.MyTensor.__init__=      r   r   )rV   N)r   r   r   r   rH   rM   r*   r+   rZ   r/   r3   r   r   r   r   r5   r   .  sH    !(	&,h%7"	ELL 	 	ell #  r   r5   c                     > TS==   S-  ss'   g Nr   rG   r   functypesargsr   counters       r   fake_linearVTestTorchAOBaseTensor.test_implements_and_torch_function_together.<locals>.fake_linearC  s     G!r   r   r   rV   N   rG   z.Expected fake_linear to be called via F.linearz4Expected fake_linear to be called via aten.t.default)r   
implementsimplements_torch_functionr*   r\   r]   tdefaultFlinearr8   r9   r<   r=   r[   randnbiasr   )	r   r5   r   r   r   r>   xmtr   s	           @r   +test_implements_and_torch_function_togetherATestTorchAOBaseTensor.test_implements_and_torch_function_together*  sD   A,	( 	$ ((
$,$F$F!	UYY^^%%--.	/	"AHH:	.	" 
/ 
0	" HHOOAq!88%%hqxx/@&$&OPKK1 	
HHaff%Ga!Q	

 ekk!Q'(		  $Ga!W	
r   c                 (  ^ SS0m " S S[         5      nUR                  [        R                  R                  R
                  R                  /5      U4S j5       n " S SU5      nU" [        R                  " SS	5      S
5      nU" [        R                  " SS	5      S5      n[        R                  R                  R
                  R                  XE/S5        U R                  TS   S5        UR                  [        R                  R                  R                  R                  /5      S 5       nU R                  [        5         [        R                  R                  R                  R                  U5        S S S 5        g ! , (       d  f       g = f)Nparentr   c                   ,    \ rS rSrS/rS/rS rS rSrg)6TestTorchAOBaseTensor.test_subclassing.<locals>.Parenti\  rU   rV   c                 p    [         R                  R                  XR                  5      nXl        X#l        U$ r(   r*   r+   r,   r)   rU   rV   r-   rU   rV   r   s       r   r/   >TestTorchAOBaseTensor.test_subclassing.<locals>.Parent.__new__`  )    LL77[[Ir   c                     g r(   r   r   rU   rV   s      r   r3   ?TestTorchAOBaseTensor.test_subclassing.<locals>.Parent.__init__f  r   r   r   Nr   r   r   r   Parentr   \      !(	&,X"r   r   c                     > TS==   S-  ss'   g Nr   rG   r   r   r   r   r   counterss       r   
parent_cat:TestTorchAOBaseTensor.test_subclassing.<locals>.parent_cati      X!#r   c                        \ rS rSrS/rS/rSrg)5TestTorchAOBaseTensor.test_subclassing.<locals>.Childim  rU   rV   r   Nr   r   r   r   rH   rM   r   r   r   r   Childr   m      !(	&,X"r   r   r   r   abrG   c                     g r(   r   )r   r   r   r   s       r   parent_relu;TestTorchAOBaseTensor.test_subclassing.<locals>.parent_reluy  s    r   )r   r   r*   r\   r]   catr   r   r   reluassertRaisesRuntimeError)r   r   r   r   t1t2r   r   s          @r   test_subclassing&TestTorchAOBaseTensor.test_subclassingY  s.   a=	& 	 
		EIINN..667	8	$ 
9	$	.F 	.
 5;;q!$c*5;;q!$c*		""B8Q/(+Q/ 
		EIINN//778	9	 
:	 |,IINN''+ -,,s   4F
Fc                   ^ SS0m " S S[         5      nUR                  [        R                  R                  R
                  R                  /5      U4S j5       n " S SU5      nU" [        R                  " SS	5      S
5      nU" [        R                  " SS	5      S5      n[        R                  R                  R
                  R                  XE/S5        U R                  TS   S5        g )Nr   r   c                   ,    \ rS rSrS/rS/rS rS rSrg)CTestTorchAOBaseTensor.test_subclassing_with_real_op.<locals>.Parenti  rU   rV   c                 p    [         R                  R                  XR                  5      nXl        X#l        U$ r(   r   r   s       r   r/   KTestTorchAOBaseTensor.test_subclassing_with_real_op.<locals>.Parent.__new__  r   r   c                     g r(   r   r   s      r   r3   LTestTorchAOBaseTensor.test_subclassing_with_real_op.<locals>.Parent.__init__  r   r   r   Nr   r   r   r   r   r     r   r   r   c                     > TS==   S-  ss'   g r   r   r   s       r   r   GTestTorchAOBaseTensor.test_subclassing_with_real_op.<locals>.parent_cat  s    G!r   c                        \ rS rSrS/rS/rSrg)BTestTorchAOBaseTensor.test_subclassing_with_real_op.<locals>.Childi  rU   rV   r   Nr   r   r   r   r   r     r   r   r   r   r   r   r   rG   	r   r   r*   r\   r]   r   r   r   r   )r   r   r   r   r   r   r   s         @r   test_subclassing_with_real_op3TestTorchAOBaseTensor.test_subclassing_with_real_op  s    A,	& 	 
		EIINN..667	8	" 
9	"	.F 	. 5;;q!$c*5;;q!$c*		""B8Q/)1-r   c                   ^	 SSS.m	 " S S[         5      nUR                  [        R                  R                  R
                  R                  /5      U	4S j5       n " S SU5      nUR                  [        R                  R                  R
                  R                  /5      U	4S j5       nU" [        R                  " S	S
5      S5      nU" [        R                  " S	S
5      S5      n[        R                  R                  R
                  R                  XV/S5        U R                  T	S   S5        U R                  T	S   S5        U" [        R                  " S	S
5      S5      nU" [        R                  " S	S
5      S5      n[        R                  R                  R
                  R                  Xx/S5        U R                  T	S   S5        U R                  T	S   S5        g )Nr   )r   childc                   ,    \ rS rSrS/rS/rS rS rSrg)7TestTorchAOBaseTensor.test_op_overwrite.<locals>.Parenti  rU   rV   c                 p    [         R                  R                  XR                  5      nXl        X#l        U$ r(   r   r   s       r   r/   ?TestTorchAOBaseTensor.test_op_overwrite.<locals>.Parent.__new__  r   r   c                     g r(   r   r   s      r   r3   @TestTorchAOBaseTensor.test_op_overwrite.<locals>.Parent.__init__  r   r   r   Nr   r   r   r   r   r     r   r   r   c                     > TS==   S-  ss'   g r   r   r   s       r   r   ;TestTorchAOBaseTensor.test_op_overwrite.<locals>.parent_cat  r   r   c                        \ rS rSrS/rS/rSrg)6TestTorchAOBaseTensor.test_op_overwrite.<locals>.Childi  rU   rV   r   Nr   r   r   r   r   r    r   r   r   c                     > TS==   S-  ss'   g )Nr   rG   r   r   s       r   	child_cat:TestTorchAOBaseTensor.test_op_overwrite.<locals>.child_cat  s    W"r   r   r   r   r   r   rG   r   r   )
r   r   r   r   r	  p1p2c1c2r   s
            @r   test_op_overwrite'TestTorchAOBaseTensor.test_op_overwrite  s   !,	& 	 
		EIINN..667	8	$ 
9	$	.F 	. 
		599>>--556	7	# 
8	# EKK1%s+EKK1%s+		""B8Q/(+Q/'*A. 5;;q!$c*5;;q!$c*		""B8Q/(+Q/'*A.r   c                 r  ^ SSS.m " S S[         5      nUR                  [        R                  R                  R
                  R                  /5      U4S j5       n " S S[         5      nUR                  [        R                  R                  R
                  R                  /5      U4S j5       n " S	 S
X5      nU" [        R                  " S5      S5      n[        R                  R                  R
                  R                  U5        U R                  TS   S5        U R                  TS   S5        g )Nr   )ABc                   ,    \ rS rSrS/rS/rS rS rSrg):TestTorchAOBaseTensor.test_multiple_inheritance.<locals>.Ai  r   r   c                 p    [         R                  R                  XR                  5      nXl        X#l        U$ r(   r*   r+   r,   r)   r   r   r-   r   r   r   s       r   r/   BTestTorchAOBaseTensor.test_multiple_inheritance.<locals>.A.__new__  )    LL77WWEr   c                     g r(   r   r   r   r   s      r   r3   CTestTorchAOBaseTensor.test_multiple_inheritance.<locals>.A.__init__  r   r   r   Nr   r   r   r   r  r        !$&)U"r   r  c                     > TS==   S-  ss'   g Nr  rG   r   r   s       r   a_neg>TestTorchAOBaseTensor.test_multiple_inheritance.<locals>.a_neg      SMQMr   c                   ,    \ rS rSrS/rS/rS rS rSrg):TestTorchAOBaseTensor.test_multiple_inheritance.<locals>.Bi  r   r   c                 p    [         R                  R                  XR                  5      nXl        X#l        U$ r(   r  r  s       r   r/   BTestTorchAOBaseTensor.test_multiple_inheritance.<locals>.B.__new__  r  r   c                     g r(   r   r  s      r   r3   CTestTorchAOBaseTensor.test_multiple_inheritance.<locals>.B.__init__  r   r   r   Nr   r   r   r   r  r%    r  r   r  c                     > TS==   S-  ss'   g Nr  rG   r   r   s       r   b_neg>TestTorchAOBaseTensor.test_multiple_inheritance.<locals>.b_neg  r#  r   c                        \ rS rSrS/rS/rSrg):TestTorchAOBaseTensor.test_multiple_inheritance.<locals>.Ci  r   r   r   Nr   r   r   r   Cr/        !$&)U"r   r0  r   r   rG   	r   r   r*   r\   r]   negr   r   r   )r   r  r!  r  r,  r0  r   r   s          @r   test_multiple_inheritance/TestTorchAOBaseTensor.test_multiple_inheritance  s    #	! 	 
uyy~~))112	3	 
4		! 	 
uyy~~))112	3	 
4		+ 	+ ekk!nc"		""1%#*#*r   c                 h  ^
 SSSS.m
 " S S[         5      nUR                  [        R                  R                  R
                  R                  /5      U
4S j5       n " S S[         5      nUR                  [        R                  R                  R
                  R                  /5      U
4S j5       n " S	 S
X5      nUR                  [        R                  R                  R
                  R                  /5      U
4S j5       nU" [        R                  " S5      S5      n[        R                  R                  R
                  R                  U5        U R                  T
S   S5        U R                  T
S   S5        U R                  T
S
   S5        U" [        R                  " S5      S5      n[        R                  R                  R
                  R                  U5        U R                  T
S   S5        U R                  T
S   S5        U R                  T
S
   S5        U" [        R                  " S5      S5      n	[        R                  R                  R
                  R                  U	5        U R                  T
S   S5        U R                  T
S   S5        U R                  T
S
   S5        g )Nr   )r  r  r0  c                   ,    \ rS rSrS/rS/rS rS rSrg)NTestTorchAOBaseTensor.test_multiple_inheritance_with_child_override.<locals>.Ai  r   r   c                 p    [         R                  R                  XR                  5      nXl        X#l        U$ r(   r  r  s       r   r/   VTestTorchAOBaseTensor.test_multiple_inheritance_with_child_override.<locals>.A.__new__  r  r   c                     g r(   r   r  s      r   r3   WTestTorchAOBaseTensor.test_multiple_inheritance_with_child_override.<locals>.A.__init__  r   r   r   Nr   r   r   r   r  r8    r  r   r  c                     > TS==   S-  ss'   g r   r   r   s       r   r!  RTestTorchAOBaseTensor.test_multiple_inheritance_with_child_override.<locals>.a_neg  r#  r   c                   ,    \ rS rSrS/rS/rS rS rSrg)NTestTorchAOBaseTensor.test_multiple_inheritance_with_child_override.<locals>.Bi  r   r   c                 p    [         R                  R                  XR                  5      nXl        X#l        U$ r(   r  r  s       r   r/   VTestTorchAOBaseTensor.test_multiple_inheritance_with_child_override.<locals>.B.__new__  r  r   c                     g r(   r   r  s      r   r3   WTestTorchAOBaseTensor.test_multiple_inheritance_with_child_override.<locals>.B.__init__  r   r   r   Nr   r   r   r   r  r@    r  r   r  c                     > TS==   S-  ss'   g r+  r   r   s       r   r,  RTestTorchAOBaseTensor.test_multiple_inheritance_with_child_override.<locals>.b_neg  r#  r   c                        \ rS rSrS/rS/rSrg)NTestTorchAOBaseTensor.test_multiple_inheritance_with_child_override.<locals>.Ci   r   r   r   Nr   r   r   r   r0  rH     r1  r   r0  c                     > TS==   S-  ss'   g )Nr0  rG   r   r   s       r   c_negRTestTorchAOBaseTensor.test_multiple_inheritance_with_child_override.<locals>.c_neg$  r#  r   r   r   rG   r2  )r   r  r!  r  r,  r0  rJ  r   r   cr   s             @r   -test_multiple_inheritance_with_child_overrideCTestTorchAOBaseTensor.test_multiple_inheritance_with_child_override  s   +	! 	 
uyy~~))112	3	 
4		! 	 
uyy~~))112	3	 
4		+ 	+ 
uyy~~))112	3	 
4	 ekk!nc"		""1%#*#*#* ekk!nc"		""1%#*#*#* ekk!nc"		""1%#*#*#*r   r   N)r   r   r   r   r?   rx   r   r   r   r   r   r   r   r  r4  rM  r   r   r   r   r!   r!   (   s~    >$B G G: "G "GH (G (GT-
^&,P.>*/X-+^C+r   r!   __main__)unittestunittest.mockr   r*   torch.nn.functionalr8   
functionalr   torchao.testing.utilsr   torchao.utilsr   r   TestCaser   r!   r   mainr   r   r   <module>rX     s[         1 Cx(( 0V+H-- V+r zMMO r   