a zeh ã@stddlmZddlZddlmZGdd„dƒZGdd„deƒZGdd „d eƒZGd d „d ejƒZ e d krpe  ¡dS) é)ÚdequeN)ÚNEVER_EQc@seZdZdd„ZdS)Úbase_setcCs ||_dS©N©Úel©Úselfr©r úF/opt/bitninja-python-dojo/embedded/lib/python3.9/test/test_contains.pyÚ__init__szbase_set.__init__N)Ú__name__Ú __module__Ú __qualname__r r r r r rsrc@seZdZdd„ZdS)ÚmysetcCs |j|kSrrrr r r Ú __contains__ szmyset.__contains__N©r rrrr r r r r src@seZdZdd„ZdS)ÚseqcCs |jg|Srr)r Únr r r Ú __getitem__szseq.__getitem__N)r rrrr r r r rsrc@s,eZdZdd„Zdd„Zdd„Zdd„Zd S) Ú TestContainscs´tdƒ‰tdƒ}tdƒ}| d|¡| d|¡| d|¡| d|¡| t‡fdd„¡| t‡fdd„¡| dd¡| dd¡| d d ¡| d d¡| td d„¡dS) NércsdˆvS©Nrr r ©Úar r Úóz0TestContains.test_common_tests..csdˆvSrr r rr r rrÚcÚabcÚdÚcSsddvS)Nrr r r r r r%r)rrrÚassertInÚ assertNotInÚ assertRaisesÚ TypeError)r Úbrr rr Útest_common_testss        zTestContains.test_common_testscCsŽtdƒ}|D]}| ||¡q | d|¡| ||¡t|ƒ}|D]}| ||¡qB| d|¡| ||¡Gdd„dƒ}| |ƒ|j¡dS)Né éc@s$eZdZdZeedƒƒZdd„ZdS)z:TestContains.test_builtin_sequence_types..Deviant1z²Behaves strangely when compared This class is designed to make sure that the contains code works when the list is modified during the check. écSs0|dkr,|j d¡|j d¡|j d¡dS)Né é ér)ÚaListÚremove©r Úotherr r r Ú__eq__<s    zATestContains.test_builtin_sequence_types..Deviant1.__eq__N)r rrÚ__doc__ÚlistÚranger-r1r r r r ÚDeviant15s r5)r4r!r"Útupler-)r rÚir5r r r Útest_builtin_sequence_types's    z(TestContains.test_builtin_sequence_typescCsptdƒdddtf}tttjtttf}|D]B}||ƒ}|D]}|  ||¡q8|  |||ƒk¡|  ||k¡q(dS)NÚnanrr) Úfloatrr3r6ÚdictÚfromkeysÚsetÚ frozensetrr!Z assertTrue)r ÚvaluesZ constructorsÚ constructorÚ containerÚelemr r r Útest_nonreflexiveEszTestContains.test_nonreflexivecsdGdd„dtƒ}|ƒ}Gdd„d|ƒ}|ƒ‰| d|v¡| dtˆƒv¡| t‡fdd„¡dS)Nc@seZdZdd„ZdS)z4TestContains.test_block_fallback..ByContainscSsdS)NFr r/r r r rUszATestContains.test_block_fallback..ByContains.__contains__Nrr r r r Ú ByContainsTsrDc@seZdZdZdd„ZdZdS)z7TestContains.test_block_fallback..BlockContainsaÄIs not a container This class is a perfectly good iterable (as tested by list(bc)), as well as inheriting from a perfectly good container, but __contains__ = None prevents the usual fallback to iteration in the container protocol. That is, normally, 0 in bc would fall back to the equivalent of any(x==0 for x in bc), but here it's blocked from doing so. cssdSrr )r r r r Ú__iter__csz@TestContains.test_block_fallback..BlockContains.__iter__N)r rrr2rErr r r r Ú BlockContainsXs rFrcsdˆvS)Nrr r ©Zbcr r rjrz2TestContains.test_block_fallback..)ÚobjectZ assertFalser3r#r$)r rDrrFr rGr Útest_block_fallbackRsz TestContains.test_block_fallbackN)r rrr&r8rCrIr r r r rs rÚ__main__) Ú collectionsrZunittestZ test.supportrrrrZTestCaserr Úmainr r r r Ús  Z