a ze/@sddlZddlmZddlZGdddZGdddZddejejfd dejej fd dej ej fd dej ej fd dejejfd dejejfdZGdddejZGdddejZGdddejZGdddejZGdddejZedkr edS)N)supportc@sTeZdZddZddZddZddZd d Zd d Zd dZ ddZ ddZ dS)NumbercCs ||_dSNx)selfrrE/opt/bitninja-python-dojo/embedded/lib/python3.9/test/test_richcmp.py__init__ szNumber.__init__cCs |j|kSrrrotherrrr __lt__ sz Number.__lt__cCs |j|kSrrr rrr __le__sz Number.__le__cCs |j|kSrrr rrr __eq__sz Number.__eq__cCs |j|kSrrr rrr __ne__sz Number.__ne__cCs |j|kSrrr rrr __gt__sz Number.__gt__cCs |j|kSrrr rrr __ge__sz Number.__ge__cCstddS)Nz%Number.__cmp__() should not be calledrZ TestFailedr rrr __cmp__szNumber.__cmp__cCs d|jfS)Nz Number(%r)rrrrr __repr__"szNumber.__repr__N) __name__ __module__ __qualname__r r rrrrrrrrrrr rsrc@seZdZddZddZddZddZd Zd d Zd d Z ddZ ddZ ddZ ddZ ddZddZddZddZd S)VectorcCs ||_dSrdata)rrrrr r 'szVector.__init__cCs t|jSr)lenrrrrr __len__*szVector.__len__cCs |j|Srr)rirrr __getitem__-szVector.__getitem__cCs||j|<dSrr)rrvrrr __setitem__0szVector.__setitem__NcCs tddS)Nz*Vectors cannot be used in Boolean contexts) TypeErrorrrrr __bool__5szVector.__bool__cCstddS)Nz%Vector.__cmp__() should not be calledrr rrr r8szVector.__cmp__cCs d|jfS)Nz Vector(%r)rrrrr r;szVector.__repr__cCs tddt|j||DS)NcSsg|]\}}||kqSrr.0abrrr ?z!Vector.__lt__..rzipr _Vector__castr rrr r >sz Vector.__lt__cCs tddt|j||DS)NcSsg|]\}}||kqSrrr%rrr r)Br*z!Vector.__le__..r+r rrr rAsz Vector.__le__cCs tddt|j||DS)NcSsg|]\}}||kqSrrr%rrr r)Er*z!Vector.__eq__..r+r rrr rDsz Vector.__eq__cCs tddt|j||DS)NcSsg|]\}}||kqSrrr%rrr r)Hr*z!Vector.__ne__..r+r rrr rGsz Vector.__ne__cCs tddt|j||DS)NcSsg|]\}}||kqSrrr%rrr r)Kr*z!Vector.__gt__..r+r rrr rJsz Vector.__gt__cCs tddt|j||DS)NcSsg|]\}}||kqSrrr%rrr r)Nr*z!Vector.__ge__..r+r rrr rMsz Vector.__ge__cCs.t|tr|j}t|jt|kr*td|S)Nz*Cannot compare vectors of different length) isinstancerrr ValueErrorr rrr __castPs  z Vector.__cast)rrrr rr r"__hash__r$rrr rrrrrr-rrrr r%srcCs||kSrrr'r(rrr Xr*r3cCs||kSrrr2rrr r3Yr*cCs||kSrrr2rrr r3Zr*cCs||kSrrr2rrr r3[r*cCs||kSrrr2rrr r3\r*cCs||kSrrr2rrr r3]r*)ltleeqnegtgec@s$eZdZddZddZddZdS) VectorTestcGs&t|D]}|j||g|RqdSr)opmap assertRaises)rerroropnameargsoprrr checkfailbs zVectorTest.checkfailcCsXt|D]J}|||}|t|t|tt|D]}|||||uq6qdSr)r; assertEqualrrange assertTrue)rr>r'r(expresr@realresrrrr checkequalfs   zVectorTest.checkequalc Cs&ttd}ttd}tD]}|t|||qttd}ddg}|t|ft||ft|t|fg}|D]\}}|d||gd|d||gd|d||gd |d ||gd |d ||gd |d||gdtD]$}|D]}|t t |||qqqrdS)Nr4)TTFFFr5)TTTFFr6)FFTFFr7)TTFTTr8)FFFTTr9)FFTTT) rrCr;rAr/listrGvaluesr<r#bool)rr'r(r>r?opsr@rrr test_mixedos"    &  zVectorTest.test_mixedN)rrrrArGrOrrrr r:`s r:c@s$eZdZddZddZddZdS) NumberTestc CstdD]}tdD]}ttfD]t}ttfD]f}||krDtkrJq,nq,||}||}tD].}|D]$}|||} |||} || | qjqbq,q qqdS)NrI)rCintrr;rLrB) rr'r(typeatypebtatbrNr@Z realoutcomeZ testoutcomerrr test_basics       zNumberTest.test_basicc CsbttfD]T}ttfD]F}||}||}t|D](} | ||} t| d| } || |uq0qqdS)Nr)rQrr;getattrrD) rr>r'r(rErRrSrTrUr@rFrrr checkvalues     zNumberTest.checkvaluecCs$|dddd|dddd|dddd|dddd|dddd|d ddd|ddd d|ddd d|ddd d|ddd d|ddd d|d dd d|dd dd|dd dd|dd dd|dd dd|dd dd|d d dddS) Nr4rFr5Tr6r7r8r9)rXrrrr test_valuess$zNumberTest.test_valuesN)rrrrVrXrZrrrr rPs rPc@s2eZdZddZddZejddZddZd S) MiscTestcsRGfddd}|}|}||kd||kd||kddS)NcsHeZdZddZddZddZfddZfd d Zfd d Zd S)z&MiscTest.test_misbehavin..MisbcSsdSNrrZself_r rrr r r*z-MiscTest.test_misbehavin..Misb.__lt__cSsdSr\rr]rrr rr*z-MiscTest.test_misbehavin..Misb.__gt__cSsdSr\rr]rrr rr*z-MiscTest.test_misbehavin..Misb.__eq__csddSNzThis shouldn't happenZfailr]rrr rr*z-MiscTest.test_misbehavin..Misb.__le__csddSr^r_r]rrr rr*z-MiscTest.test_misbehavin..Misb.__ge__csddSr^r_r]rrr rr*z-MiscTest.test_misbehavin..Misb.__ne__N) rrrr rrrrrrrrr Misbs   r`r)rB)rr`r'r(rrr test_misbehavins zMiscTest.test_misbehavincsVddl}GdddtGfddd}dd}||jfD]}|||q.ExcNrrrrrrr ExcsrccseZdZfddZdS)zMiscTest.test_not..BadcsdSrrrrcrr r$sz'MiscTest.test_not..Bad.__bool__N)rrrr$rrdrr BadsrecSs | dSrr)Zbadrrr doszMiscTest.test_not..do)operator Exceptionnot_r<)rrgrerffuncrrdr test_nots zMiscTest.test_notcCs~ddlm}|}|}|||||ttj|||ttj|||ttj|||ttj |||ttj |||ttj |||d| ||k | ||k|ttj|||ttj |||ttj |||ttj |||d|ttj|||ttj||| dd| dd| ||k | ||k| ||kdS)Nr)UserList ) collectionsrlappendr<RecursionErrorrgr6r7r4r5r8r9rDinsert)rrlr'r(rrr test_recursions4       zMiscTest.test_recursioncsGddddddfdddfddd fd dd fd dd fdddfdddfdddfdddfdddffdddffdddffdddfg }t|D]p\}}|j|dJ|t|d|d Wdn1s0YWdq1s0YqdS)!Nc@s eZdZdS)z-MiscTest.test_exception_message..SpamNrbrrrr SpamsrucSsddkSN*rrrrr r3r*z1MiscTest.test_exception_message..z'<' .* of 'int' and 'NoneType'cSsddkSrvrrrrr r3r*z'<' .* of 'NoneType' and 'int'cSsddkSrvrrrrr r3r*z'>' .* of 'int' and 'NoneType'cSsddkS)Nfoorrrrr r3r*z'<' .* of 'str' and 'NoneType'cSsddkS)Nrxirrrrr r3 r*z'>=' .* of 'str' and 'int'cSsddkSrvrrrrr r3 r*z'<=' .* of 'int' and 'NoneType'cSsddkSrvrrrrr r3 r*z'>=' .* of 'int' and 'NoneType'cSsdgkSrvrrrrr r3 r*z'<' .* of 'int' and 'list'cSsdgkS)Nrrrrrr r3 r*z'>' .* of 'tuple' and 'list'cSsddkSrrrrrr r3r*z$'>=' .* of 'NoneType' and 'NoneType'cs dkSrvrrrurr r3r*z'<' .* of 'Spam' and 'int'cs dkSrvrrryrr r3r*z'<' .* of 'int' and 'Spam'cs kSrrrryrr r3r*z'<=' .* of 'Spam' and 'Spam')testrYr) enumerateZsubTestZassertRaisesRegexr#)rZtestsrrzrryr test_exception_messages&          zMiscTest.test_exception_messageN) rrrrarkrZ no_tracingrtr|rrrr r[s  r[c@seZdZddZdS)DictTestc Csddl}i}tdD] }|dd||dd<qt|}||i}|D]\}}|||<qT|}|d||<||||||||||||kdD]"} t | D]} | t | ||qqdS)Nr2dy?g?)r4r5r8r9) randomrC randrangerKitemsshufflecopyrBrDr;r<r#) rrZimag1arrZimag1bkr!Zimag2r>r@rrr test_dictss$          zDictTest.test_dictsN)rrrrrrrr r}sr}c@s$eZdZddZddZddZdS)ListTestcCsdg}|||kd|||kd|||kd|||kd|||kd|||kdddg}|||kd|||kd|||kd|||kd|||kd|||kddS)NrwFT)assertIs)rryrrr test_coverage4szListTest.test_coveragecsTGdddtGfddd}|g}|g}tdD]}||||q:dS)Nc@s eZdZdS)z#ListTest.test_badentry..ExcNrbrrrr rcHsrccseZdZfddZdS)z#ListTest.test_badentry..BadcsdSrrr rdrr rKsz*ListTest.test_badentry..Bad.__eq__N)rrrrrrdrr reJsrer6)rhr;r<)rrerrr@rrdr test_badentryEs  zListTest.test_badentrycCsBGddd}|g}|g}tdD]}||||dq&dS)Nc@seZdZddZdS)z%ListTest.test_goodentry..GoodcSsdS)NTrr rrr r Xsz,ListTest.test_goodentry..Good.__lt__N)rrrr rrrr GoodWsrr4T)r;r)rrrrr@rrr test_goodentryTs  zListTest.test_goodentryN)rrrrrrrrrr r2sr__main__)Zunittestrzrrgrrr4r r5rr6rr7rr8rr9rr;ZTestCaser:rPr[r}rrmainrrrr s$ 3 *5Z0