a zeN@shdZddlZddlmZedZGdddejZGdddeZ Gd d d eZ e d krde dS) z< Test implementation of the PEP 509: dictionary versioning. N)support _testcapic@seZdZeZddZddZddZddZd d Z d d Z d dZ ddZ ddZ ddZddZddZddZddZddZdd Zd!S)"DictVersionTestscCst|_d|_dSN)set seen_versionsdict)selfr J/opt/bitninja-python-dojo/embedded/lib/python3.9/test/test_dict_version.pysetUpszDictVersionTests.setUpcCs(t|}|||j|j|dSr)rdict_get_versionZ assertNotInradd)r mydictversionr r r check_version_uniques z%DictVersionTests.check_version_uniquecOs||i|}|||Sr)r)r rmethodargskwresultr r r check_version_changeds z&DictVersionTests.check_version_changedcOs@t|}|j|||i|}t|}|||d|S)Nzversion changed)rr rrZ assertEqual)r rrrrZversion1rZversion2r r r check_version_dont_changes    z*DictVersionTests.check_version_dont_changecOs|j|i|}|||Sr) type2testr)r rrdr r r new_dict(s zDictVersionTests.new_dictcCs6|}|}|}|jdd}|jddd}dS)Nx)ry)rr)r)r Zempty1Zempty2Zempty3Z nonempty1Z nonempty2r r r test_constructor-s  z!DictVersionTests.test_constructorcCs*|jddd}|||j}||dS)N)ab)rrcopyrr rd2r r r test_copy7szDictVersionTests.test_copycCsT|}|||jdd|||jdd|||jdd|||jdddS)Nrrrr)rr __setitem__r rr r r test_setitem?s zDictVersionTests.test_setitemcCsdt}|}|||jd||||jd||j||j|d|j|d}|||j|dS)Nkeyr))objectrrr&rupdate)r valuerr$r r r test_setitem_same_valueJs z(DictVersionTests.test_setitem_same_valuecCsGddd}|}|}|||k|||k||||}|||jd|||d||||jd|||d||j||j|d||d||j|d}|||j|||d|dS)Nc@seZdZddZdS)z8DictVersionTests.test_setitem_equal..AlwaysEqualcSsdS)NTr )r otherr r r __eq__^sz?DictVersionTests.test_setitem_equal..AlwaysEqual.__eq__N)__name__ __module__ __qualname__r0r r r r AlwaysEqual]sr4r)r*)Z assertTrueZ assertFalseZ assertIsNotrrr&ZassertIsr,)r r4value1value2rr$r r r test_setitem_equal\s   z#DictVersionTests.test_setitem_equalcCs0|}|||jdd|||jdddS)Nr)r5r6)rr setdefaultrr'r r r test_setdefaultysz DictVersionTests.test_setdefaultcCs6|jdd}|||jd|||jt|jddSNr-r*r))rr __delitem__r assertRaisesKeyErrorr'r r r test_delitems   zDictVersionTests.test_delitemcCs6|jdd}|||jd|||jt|jddSr:)rrpoprr<r=r'r r r test_pops   zDictVersionTests.test_popcCs2|jdd}|||j|||jt|jdSNr-r*)rrpopitemrr<r=r'r r r test_popitems   zDictVersionTests.test_popitemcCsL|jdd}|||j|j||jdd|jdd}|||j|dS)Nr-r*z new valuezvalue 3)rrr,rr#r r r test_updates   zDictVersionTests.test_updatecCs,|jdd}|||j|||jdSrA)rrclearrr'r r r test_clears zDictVersionTests.test_clearN)r1r2r3rrr rrrrrr%r(r.r7r9r>r@rCrDrFr r r r r s"        rc@s eZdZdS)DictN)r1r2r3r r r r rGsrGc@seZdZeZdS)DictSubtypeVersionTestsN)r1r2r3rGrr r r r rHsrH__main__) __doc__Zunittesttestr import_modulerZTestCaserrrGrHr1mainr r r r s  +