a zeE@sddlZgdZgZddZdZdZiZeeeeeD]Z eee eeq:e de feZ [[[ [Gdd d ej Zed kredS) N)$addZraddsubZrsubmulZrmulmatmulZrmatmultruedivZrtruedivfloordivZ rfloordivmodZrmoddivmodZrdivmodpowZrpowrshiftZrrshiftlshiftZrlshiftandZrandorZrorxorZrxorcontainsgetitemsetitemdelitemnegposabsinitcsfdd}|S)Ncstj|f|i|SN)callLstappend__name__)argskwargsfC/opt/bitninja-python-dojo/embedded/lib/python3.9/test/test_class.pytrackCsztrackCall..trackr )rr"r rr! trackCallBs r#a @trackCall def __hash__(self, *args): return hash(id(self)) @trackCall def __str__(self, *args): return "AllTests" @trackCall def __repr__(self, *args): return "AllTests" @trackCall def __int__(self, *args): return 1 @trackCall def __index__(self, *args): return 1 @trackCall def __float__(self, *args): return 1.0 @trackCall def __eq__(self, *args): return True @trackCall def __ne__(self, *args): return False @trackCall def __lt__(self, *args): return False @trackCall def __le__(self, *args): return True @trackCall def __gt__(self, *args): return False @trackCall def __ge__(self, *args): return True z-@trackCall def __%s__(self, *args): pass AllTestsc@seZdZddZddZddZddZd d Zd d Zd dZ ddZ ddZ ddZ ddZ ddZddZddZddZdd Zd!d"Zd#d$Zd%S)& ClassTestscCsgtdd<dSr)rselfr r r!setUpszClassTests.setUpcCs*tdd}||kr&|d||fdS)Nz=Expected call list: %s does not match actual call list %s)rfail)r'Zexpected_callsZactualCallListr r r!assertCallStacks  zClassTests.assertCallStackcCst}|d|ffgdS)N__init__)r$r*)r'Zfoor r r!testInitszClassTests.testInitcCsnt}gtdd<|d|d|dffggtdd<d||d|dffggtdd<|d|d|dffggtdd<d||d|dffggtdd<|d|d|dffggtdd<d||d|dffggtdd<|d|d|dffggtdd<d||d |dffggtdd<|d|d |dffggtdd<d||d |dffggtdd<|d|d |dffggtdd<d||d |dffggtdd<|d|d|dffggtdd<d||d|dffggtdd<t|d|d|dffggtdd<td||d|dffggtdd<|d|d|dffggtdd<d||d|dffggtdd<|d?|d|dffggtdd<d|?|d|dffggtdd<|d>|d|dffggtdd<d|>|d|dffggtdd<|d@|d|dffggtdd<d|@|d|dffggtdd<|dB|d|dffggtdd<d|B|d|dffggtdd<|dA|d|dffggtdd<d|A|d|dffgdS)N__add____radd____sub____rsub____mul____rmul__ __matmul__ __rmatmul__ __truediv__ __rtruediv__ __floordiv__ __rfloordiv____mod____rmod__ __divmod__ __rdivmod____pow____rpow__ __rshift__ __rrshift__ __lshift__ __rlshift____and____rand____or____ror____xor____rxor__)r$rr*r r'testmer r r! testBinaryOpss                              zClassTests.testBinaryOpsc Cst}Gddd}zd|v|dWnty>Yn0gtdd<d|v|d|dffggtdd<|d|d|dffggtdd<d|d<|d|ddffggtdd<|d=|d|dffggtdd<|dd |d|tdd ffggtdd<d |dd <|d|tdd d ffggtdd<|dd =|d|tdd ffggtdd<|d d d |d|td d d ffggtdd<d|d d d <|d|td d d dffggtdd<|d d d =|d|td d d ffggtdd<|dd dddddf|d|tdd dttdddddfffggtdd<d|dd dddddf<|d|tdd dttdddddfdffggtdd<|dd dddddf=|d|tdd dttdddddfffgdS)Nc@s eZdZdS)z,ClassTests.testListAndDictOps..EmptyNr __module__ __qualname__r r r r!EmptyrPr-z$failed, should have raised TypeError __contains__ __getitem__ __setitem__ __delitem__*z The Answeri zA lot.dZStrange)r$r) TypeErrorrr*sliceEllipsis)r'rKrPr r r!testListAndDictOpss                          zClassTests.testListAndDictOpscCst}gtdd<| |d|ffggtdd<| |d|ffggtdd<t||d|ffggtdd<t||d|ffggtdd<t||d|ffggtdd<t||d|ffggtdd<t||d|ffgdS)N__neg____pos____abs____int__ __float__ __index__)r$rr*rintfloatocthexrJr r r! testUnaryOpsXs,       zClassTests.testUnaryOpscCst}gtdd<t||d|ffggtdd<t||d|ffggtdd<t||d|ffggtdd<|dk|d|dffggtdd<|dk|d|dffggtdd<|dk|d|dffggtdd<|dk|d|dffggtdd<d|k|dd|ffggtdd<d|k|dd|ffggtdd<d|k|dd|ffggtdd<d|k|dd|ffgdS) N__hash____repr____str__r-__eq____lt____gt____ne__)r$rhashr*reprstrrJr r r!testMiscrsD           zClassTests.testMisccCsGdddt}|}gtdd<|j|d|dffggtdd<d|_|d|ddffggtdd<|`|d|d ffgdS) Nc@s0eZdZeddZeddZeddZdS)z/ClassTests.testGetSetAndDel..ExtraTestscWsdS)NZSomeValr r'rr r r! __getattr__sz;ClassTests.testGetSetAndDel..ExtraTests.__getattr__cWsdSrr rur r r! __setattr__sz;ClassTests.testGetSetAndDel..ExtraTests.__setattr__cWsdSrr rur r r! __delattr__sz;ClassTests.testGetSetAndDel..ExtraTests.__delattr__N)rrNrOr#rvrwrxr r r r! ExtraTestss   ryrvspamzspam, spam, spam and hamrweggsrxcardinal)r$rrzr*r{r|)r'ryrKr r r!testGetSetAndDels      zClassTests.testGetSetAndDelcs@gGfddd}|}~ddl}||dgdS)NcseZdZfddZdS)z#ClassTests.testDel..DelTestcsddS)Ncrab people, crab people)rr&xr r!__del__sz+ClassTests.testDel..DelTest.__del__N)rrNrOrr rr r!DelTestsrrr~)gcZcollect assertEqual)r'rrKrr rr!testDelszClassTests.testDelc CsHGddd}dd}ttttttttt|f D]}| t ||q.dS)Nc@s0eZdZddZeZeZeZeZeZeZ eZ dS)z4ClassTests.testBadTypeReturned..BadTypeClasscSsdSrr r&r r r!rbsz.BadTypeClass.__int__N) rrNrOrbrc __complex__rlrk __bytes____bool__rdr r r r! BadTypeClasssrcSsg|Srr rr r r!indexsz-ClassTests.testBadTypeReturned..index) rfcomplexrsrrbytesbinrgrhbool assertRaisesr[)r'rrrr r r!testBadTypeReturneds zClassTests.testBadTypeReturnedcCs:Gddd}t|Gddd}|tt|dS)Nc@s eZdZdS)z$ClassTests.testHashStuff..C0NrMr r r r!C0src@seZdZddZdS)z$ClassTests.testHashStuff..C2cSsdS)Nr-r r'otherr r r!rmrQz+ClassTests.testHashStuff..C2.__eq__N)rrNrOrmr r r r!C2sr)rqrr[)r'rrr r r! testHashStuffs zClassTests.testHashStuffcCsHGddd}||_|}z |Wnty8Yn 0|ddS)Nc@s eZdZdS)z%ClassTests.testSFBug532646..ANrMr r r r!AsrzFailed to raise RecursionError)__call__RecursionErrorr))r'rar r r!testSFBug532646s  zClassTests.testSFBug532646c sddGfddd}z |jWn>tyd}z&t|dkrP|d|WYd}~n d}~00Gfddd}||kGfd d d }z |WntyYn 0|d dS) NcSs tddS)Nbooh)AttributeErrorr&r r r!rszBClassTests.testForExceptionsRaisedInInstanceGetattr2..boohcseZdZeZdS)z?ClassTests.testForExceptionsRaisedInInstanceGetattr2..AN)rrNrOpropertyrr rr r!rsrrz(attribute error for A().a got masked: %scseZdZeZdS)z?ClassTests.testForExceptionsRaisedInInstanceGetattr2..EN)rrNrOrrmr rr r!E srcseZdZeZdS)z?ClassTests.testForExceptionsRaisedInInstanceGetattr2..IN)rrNrOrr+r rr r!Isrz)attribute error for I.__init__ got masked)rrrsr))r'rrrrr rr!)testForExceptionsRaisedInInstanceGetattr2s  $   z4ClassTests.testForExceptionsRaisedInInstanceGetattr2cCs|t||kWdn1s(0Y|t||kWdn1sZ0Y|t||kWdn1s0Y|t||kWdn1s0YdSr)rr[)r'rbr r r!assertNotOrderables & & & zClassTests.assertNotOrderablecCsvGddd}Gddd|}|d}|d}||j|jk||j|jk||j|jk||j|jk||j|jk||j|jk||j|j|t|jt|j||j|jk||j|jk||j|jk||j|jk||j|jk||j|jk||j|j|t|jt|j|t|jdA}t|jdS)Nc@s4eZdZddZddZddZddZd d Zd S) z1ClassTests.testHashComparisonOfMethods..AcSs ||_dSrr)r'rr r r!r+&sz:ClassTests.testHashComparisonOfMethods..A.__init__cSsdSrr r&r r r!r(sz3ClassTests.testHashComparisonOfMethods..A.fcSsdSrr r&r r r!g*sz3ClassTests.testHashComparisonOfMethods..A.gcSsdS)NTr rr r r!rm,sz8ClassTests.testHashComparisonOfMethods..A.__eq__cSstdSr)r[r&r r r!rj.sz:ClassTests.testHashComparisonOfMethods..A.__hash__N)rrNrOr+rrrmrjr r r r!r%s rc@s eZdZdS)z1ClassTests.testHashComparisonOfMethods..BNrMr r r r!B0srr-)Z assertTruerZ assertFalserrrrq)r'rrZa1Za2rr r r!testHashComparisonOfMethods#s, z&ClassTests.testHashComparisonOfMethodscCsGddd}dd}tdd}||dt|||||dd tdd}||d|||t|||t|dWdn1s0YdS) Nc@s eZdZdS)z2ClassTests.testSetattrWrapperNameIntern..ANrMr r r r!rMsrcSsdS)Nsummar rr r r!rPsz4ClassTests.testSetattrWrapperNameIntern..adds__add__asciir.r-r)rsZ assertIsNottyperwrrxrr[)r'rrnameZname2r r r!testSetattrWrapperNameInternKs       z'ClassTests.testSetattrWrapperNameInterncCsJGddd}|tt|ddWdn1s<0YdS)Nc@s eZdZdS)z.ClassTests.testSetattrNonStringName..ANrMr r r r!r`srx)rr[rrw)r'rr r r!testSetattrNonStringName_s z#ClassTests.testSetattrNonStringNamecCsrGddd}d}|td|dWdn1s<0Y|td||dWdn1st0Y|t||dWdn1s0Y|tdt|dWdn1s0Y|t|t|dWdn1s 0YGddd}d}|t||dWdn1sh0Y|t|||dWdn1s0Y|t|t|dWdn1s0YGd d d }d }|t||dWdn1s(0Y|t|t|dWdn1sd0YdS) Nc@s eZdZdS)z2ClassTests.testConstructorErrorMessages..CNrMr r r r!CjsrzHC.__init__\(\) takes exactly one argument \(the instance to initialize\)zC\(\) takes no argumentsrVcs(eZdZfddZfddZZS)z2ClassTests.testConstructorErrorMessages..Dcstj|g|Ri|dSr)super__new__)clsrr __class__r r!rsz:ClassTests.testConstructorErrorMessages..D.__new__cstj|i|dSrrr+r'rrrr r!r+sz;ClassTests.testConstructorErrorMessages..D.__init__)rrNrOrr+ __classcell__r r rr!Ds rzIobject.__new__\(\) takes exactly one argument \(the type to instantiate\)cseZdZfddZZS)z2ClassTests.testConstructorErrorMessages..Ecstj|i|dSrrrrr r!r+sz;ClassTests.testConstructorErrorMessages..E.__init__)rrNrOr+rr r rr!rsrzMobject.__init__\(\) takes exactly one argument \(the instance to initialize\))ZassertRaisesRegexr[rr+object)r'rZ error_msgrrr r r!testConstructorErrorMessagesfs4&***.(,,,z'ClassTests.testConstructorErrorMessagesN)rrNrOr(r*r,rLr^rirtr}rrrrrrrrrrr r r r!r%s$wI0  (r%__main__)ZunittestZ testmethsrr#Z statictestsZmethod_templatedexecglobalsmethodrrr$ZTestCaser%rmainr r r r!s$;4