mò %U²Ic@ssdkZdkZdkZdkZdkZdklZlZdkl Z eƒZ dei fd„ƒYZ de fd„ƒYZ de fd„ƒYZd e fd „ƒYZd e fd „ƒYZd „Zd„Zdei fd„ƒYZdei fd„ƒYZdei fd„ƒYZdei fd„ƒYZdei fd„ƒYZdei fd„ƒYZdefd„ƒYZdefd„ƒYZdefd „ƒYZd!efd"„ƒYZd#efd$„ƒYZd%ei fd&„ƒYZd'efd(„ƒYZd)efd*„ƒYZ d+efd,„ƒYZ!d-efd.„ƒYZ"d/efd0„ƒYZ#d1efd2„ƒYZ$d3efd4„ƒYZ%d5ei fd6„ƒYZ&d7e&fd8„ƒYZ'd9e&fd:„ƒYZ(d;e&fd<„ƒYZ)d=e&fd>„ƒYZ*d?e&fd@„ƒYZ+dAei fdB„ƒYZ,dCZ-hdDe-|itdddgƒM_|i|itdgƒƒdS(Niii(RRR*R(R((RRU%scCs/|itdgƒM_|i|itƒdS(Ni(RRR*RR(R((RRV)scCs?|iitdddgƒƒ|i|itdgƒƒdS(Niii(RRtintersection_updateR*R(R((Rttest_intersection_method_call-scCs5|itdƒN_|i|itdgƒƒdS(Niii(ii(RRR*R(R((RRW1scCs5|itdƒN_|i|itdgƒƒdS(Niiii(iiii(RRR*R(R((RRX5scCs>|itdƒN_|i|itddddgƒƒdS(Niiiii(iii(RRR*R(R((RRY9scCsA|itdgƒN_|i|itddddgƒƒdS(Niiii(RRR*R(R((RRZ=scCsH|iitdddgƒƒ|i|itddddgƒƒdS(Niiiii(RRtsymmetric_difference_updateR*R(R((Rttest_sym_difference_method_callAscCs5|itdƒ8_|i|itdgƒƒdS(Niii(ii(RRR*R(R((Rttest_difference_subsetEscCs2|itdƒ8_|i|itgƒƒdS(Niiii(iiii(RRR*R(R((Rttest_difference_supersetIscCs8|itdƒ8_|i|itddgƒƒdS(Niiiii(iii(RRR*R(R((Rttest_difference_overlapMscCs>|itdgƒ8_|i|itdddgƒƒdS(Niiii(RRR*R(R((Rttest_difference_non_overlapQscCsB|iitdddgƒƒ|i|itddgƒƒdS(Niiiii(RRtdifference_updateR*R(R((Rttest_difference_method_callUs(R&R'R+RORPRQRRRcRSRTRURVReRWRXRYRZRgRhRiRjRkRm(((RRas*                    t TestMutatecBs†tZd„Zd„Zd„Zd„Zd„Zd„Zd„Zd„Z d „Z d „Z d „Z d „Z d „Zd„ZRS(NcCs(dddg|_t|iƒ|_dS(NR[R\tc(RRR*R(R((RR+\scCs-|iidƒ|i|itdƒƒdS(NRoR?(RRR4RR*(R((Rttest_add_present`scCs-|iidƒ|i|itdƒƒdS(Ntdtabcd(RRR4RR*(R((Rttest_add_absentdscCsgtƒ}d}x>|iD]3}|i|ƒ|d7}|it|ƒ|ƒqW|i||i ƒdS(Nii( R*ttmpt expected_lenRRRR4RRR(RRtRuR((Rttest_add_until_fullhs    cCs-|iidƒ|i|itdƒƒdS(NR\tac(RRRJRR*(R((Rttest_remove_presentqscCs;y!|iidƒ|idƒWntj onXdS(NRqs7Removing missing element should have raised LookupError(RRRJtfailt LookupError(R((Rttest_remove_absentus cCsZt|iƒ}xD|iD]9}|ii|ƒ|d8}|it|iƒ|ƒqWdS(Ni(RRRRuRRRJR(RRuR((Rttest_remove_until_empty|s   cCs-|iidƒ|i|itdƒƒdS(NRotab(RRRKRR*(R((Rttest_discard_presentƒscCs-|iidƒ|i|itdƒƒdS(NRqR?(RRRKRR*(R((Rttest_discard_absent‡scCs*|iiƒ|it|iƒdƒdS(Ni(RRtclearRR(R((Rt test_clear‹s cCsuh}x"|iod||iiƒ=t issupersets==s!=tcCs#|i}|i}x d D]}||ij}td|dt ƒƒ}|i ||ƒ|t i jo6t|t i |ƒ}||ƒ}|i ||ƒnt i|}td|dt ƒƒ}|i ||ƒ|t i jo6t|t i |ƒ}||ƒ}|i ||ƒqqWdS( Ns!=s==R‹s<=RŒs>=txty(s!=s==R‹s<=RŒs>=(RtleftRtrightRŽR)tcasestexpectedtevaltlocalsRRRˆt case2methodtgetattrtmethodtreversetrcase(RR)R’RRŽRR™R—((Rt test_issubset³s$     (R&R'R•R˜Rš(((RRˆ¥s<tTestSubsetEqualEmptycBs&tZeƒZeƒZdZdZRS(Ns both emptys==s<=s>=(s==s<=s>=(R&R'R*RRtnameR‘(((RR›Ës  tTestSubsetEqualNonEmptycBs8tZeddgƒZeddgƒZdZdZRS(Niis equal pairs==s<=s>=(s==s<=s>=(R&R'R*RRRœR‘(((RRÓstTestSubsetEmptyNonEmptycBs/tZeƒZeddgƒZdZdZRS(Niisone empty, one non-emptys!=R‹s<=(s!=R‹s<=(R&R'R*RRRœR‘(((RRžÛs tTestSubsetPartialcBs5tZedgƒZeddgƒZdZdZRS(Niis&one a non-empty proper subset of others!=R‹s<=(s!=R‹s<=(R&R'R*RRRœR‘(((RRŸãstTestSubsetNonOverlapcBs2tZedgƒZedgƒZdZdZRS(Niisneither empty, neither containss!=(R&R'R*RRRœR‘(((RR ëstTestOnlySetsInBinaryOpscBs†tZd„Zd„Zd„Zd„Zd„Zd„Zd„Zd„Z d „Z d „Z d „Z d „Z d „Zd„ZRS(NcCst|i|i|ijtƒ|i|i|ijtƒ|i|i|ijtƒ|i|i|ijtƒdS(N(RRtotherRtFalseR6(R((Rt test_eq_neõscs´ˆit‡d†ƒˆit‡d†ƒˆit‡d†ƒˆit‡d†ƒˆit‡d†ƒˆit‡d†ƒˆit‡d†ƒˆit‡d†ƒdS( NcsˆiˆijS(N(RRR¢((R(RtýscsˆiˆijS(N(RRR¢((R(RR¥þscsˆiˆijS(N(RRR¢((R(RR¥ÿscsˆiˆijS(N(RRR¢((R(RR¥scsˆiˆijS(N(RR¢R((R(RR¥scsˆiˆijS(N(RR¢R((R(RR¥scsˆiˆijS(N(RR¢R((R(RR¥scsˆiˆijS(N(RR¢R((R(RR¥s(RR:R5(R((RRttest_ge_gt_le_ltüscCs=y|i|iO_Wntj onX|idƒdS(Nsexpected TypeError(RRR¢R5Ry(R((Rttest_union_update_operators cCsA|io|ii|iƒn|it|ii|iƒdS(N(RtotherIsIterableRRbR¢R:R5(R((Rttest_union_updates csmˆit‡d†ƒˆit‡d†ƒˆioˆiiˆiƒnˆitˆiiˆiƒdS(NcsˆiˆiBS(N(RRR¢((R(RR¥scsˆiˆiBS(N(RR¢R((R(RR¥s(RR:R5R¨RtunionR¢(R((RRt test_unions  cCs=y|i|iM_Wntj onX|idƒdS(Nsexpected TypeError(RRR¢R5Ry(R((Rt!test_intersection_update_operators cCsA|io|ii|iƒn|it|ii|iƒdS(N(RR¨RRdR¢R:R5(R((Rttest_intersection_update%s    csmˆit‡d†ƒˆit‡d†ƒˆioˆiiˆiƒnˆitˆiiˆiƒdS(Ncsˆiˆi@S(N(RRR¢((R(RR¥.scsˆiˆi@S(N(RR¢R((R(RR¥/s(RR:R5R¨Rt intersectionR¢(R((RRttest_intersection-s  cCs=y|i|iN_Wntj onX|idƒdS(Nsexpected TypeError(RRR¢R5Ry(R((Rt#test_sym_difference_update_operator5s cCsA|io|ii|iƒn|it|ii|iƒdS(N(RR¨RRfR¢R:R5(R((Rttest_sym_difference_update=s    csmˆit‡d†ƒˆit‡d†ƒˆioˆiiˆiƒnˆitˆiiˆiƒdS(NcsˆiˆiAS(N(RRR¢((R(RR¥FscsˆiˆiAS(N(RR¢R((R(RR¥Gs(RR:R5R¨Rtsymmetric_differenceR¢(R((RRttest_sym_differenceEs  cCs=y|i|i8_Wntj onX|idƒdS(Nsexpected TypeError(RRR¢R5Ry(R((Rttest_difference_update_operatorMs cCsA|io|ii|iƒn|it|ii|iƒdS(N(RR¨RRlR¢R:R5(R((Rttest_difference_updateUs    csmˆit‡d†ƒˆit‡d†ƒˆioˆiiˆiƒnˆitˆiiˆiƒdS(NcsˆiˆiS(N(RRR¢((R(RR¥^scsˆiˆiS(N(RR¢R((R(RR¥_s(RR:R5R¨Rt differenceR¢(R((RRttest_difference]s  (R&R'R¤R¦R§R©R«R¬R­R¯R°R±R³R´RµR·(((RR¡ós            tTestOnlySetsNumericcBstZd„ZRS(NcCs%tdƒ|_d|_t|_dS(Niiii(iii(R*RRR¢R£R¨(R((RR+hs (R&R'R+(((RR¸gstTestOnlySetsDictcBstZd„ZRS(NcCs7tdƒ|_hdd<dd<|_t|_dS(Niiii(iii(R*RRR¢R6R¨(R((RR+ps(R&R'R+(((RR¹ostTestOnlySetsOperatorcBstZd„ZRS(NcCs(tdƒ|_ti|_t|_dS(Niii(iii(R*RRR3R4R¢R£R¨(R((RR+xs (R&R'R+(((RRºwstTestOnlySetsTuplecBstZd„ZRS(NcCs%tdƒ|_d|_t|_dS(Niiiii(iii(iii(R*RRR¢R6R¨(R((RR+€s (R&R'R+(((RR»stTestOnlySetsStringcBstZd„ZRS(NcCs%tdƒ|_d|_t|_dS(NiiiR?(iii(R*RRR¢R6R¨(R((RR+ˆs (R&R'R+(((RR¼‡stTestOnlySetsGeneratorcBstZd„ZRS(NcCs1d„}tdƒ|_|ƒ|_t|_dS(Nccs%xtdddƒD] }|VqWdS(Nii i(R@ti(R¾((Rtgen‘siii(iii(R¿R*RRR¢R6R¨(RR¿((RR+s  (R&R'R+(((RR½stTestOnlySetsofSetscBstZd„ZRS(NcCs7tdƒ|_tdƒtdƒg|_t|_dS(NiiiR}tcd(iii(R*RRRIR¢R6R¨(R((RR+›s(R&R'R+(((RRÀšst TestCopyingcBstZd„Zd„ZRS(NcCs–|iiƒ}t|ƒ}|iƒt|iƒ}|iƒ|it |ƒt |ƒƒx5t t |ƒƒD]!}|i ||||jƒqmWdS(N( RRRR tlisttdup_listtsorttset_listRRtrangeR¾R-(RR¾RÆR RÄ((RR¤scCs–ti|iƒ}t|ƒ}|iƒt|iƒ}|iƒ|i t |ƒt |ƒƒx2t t |ƒƒD]}|i ||||ƒqpWdS(N( RtdeepcopyRRR RÃRÄRÅRÆRRRÇR¾(RR¾RÆR RÄ((Rttest_deep_copy¬s(R&R'RRÉ(((RR¢s tTestCopyingEmptycBstZd„ZRS(NcCstƒ|_dS(N(R*RR(R((RR+¸s(R&R'R+(((RRÊ·stTestCopyingSingletoncBstZd„ZRS(NcCstdgƒ|_dS(Nthello(R*RR(R((RR+¾s(R&R'R+(((RR˽stTestCopyingTriplecBstZd„ZRS(NcCstdddgƒ|_dS(NR1i(R*RRR(R((RR+Äs(R&R'R+(((RRÍÃstTestCopyingTuplecBstZd„ZRS(NcCstdgƒ|_dS(Nii(ii(R*RR(R((RR+Ês(R&R'R+(((RRÎÉstTestCopyingNestedcBstZd„ZRS(NcCstddfgƒ|_dS(Niiii(ii(ii(R*RR(R((RR+Ðs(R&R'R+(((RRÏÏstTestIdentitiescBsGtZd„Zd„Zd„Zd„Zd„Zd„Zd„ZRS(NcCsvtg}tdƒD]}|tidƒq~ƒ|_tg}tdƒD]}|tidƒqM~ƒ|_dS(Ni2id( R*t_[1]R@R¾trandomt randrangeRR[R\(RR¾RÑ((RR+Ös9cCs¼|i|i}}|i|||jƒ|i|||jƒ|i||@|jƒ|i||@|jƒ|i||B|jƒ|i||B|jƒ|i||A||BjƒdS(N(RR[R\R(RR[R\((Rttest_binopsVsSubsetsÚscCsˆ|i|i}}|i||@||@ƒ|i||B||Bƒ|i||A||Aƒ||jo|i||||ƒndS(N(RR[R\RtassertNotEqual(RR[R\((Rttest_commutativityäs  cCs |itƒ}}|i||A|ƒ|i|||ƒ|i||B|ƒ|i||@|ƒ|i||jƒ|i||jƒ|i||jƒdS(N(RR[R*R1RR(RR[R1((Rttest_reflexsive_relationsìscCsï|i|i}}|i||||@B||B||Bƒ|i||@||AB||Bƒ|i|||B||Bƒ|i|||B||Bƒ|i||||@B|ƒ|i||||@B|ƒ|i||||B||AƒdS(N(RR[R\R(RR[R\((Rttest_summationsös( cCsm|i|itƒ}}}|i|||@|ƒ|i|||@|ƒ|i||@||A@|ƒdS(N(RR[R\R*R1R(RR[R\R1((Rttest_exclusionscCs|i|i}}|it|ƒt||ƒt||@ƒƒ|it|ƒt||ƒt||@ƒƒ|it||Aƒt||ƒt||ƒƒ|it||Bƒt||ƒt||@ƒt||ƒƒ|it||Aƒt||@ƒt||BƒƒdS(N(RR[R\RR(RR[R\((Rttest_cardinality_relationss ..2@( R&R'R+RÔRÖR×RØRÙRÚ(((RRÐÕs   sÓ Example from the Library Reference: Doc/lib/libsets.tex >>> from sets import Set as Base # override _repr to get sorted output >>> class Set(Base): ... def _repr(self): ... return Base._repr(self, sorted=True) >>> engineers = Set(['John', 'Jane', 'Jack', 'Janice']) >>> programmers = Set(['Jack', 'Sam', 'Susan', 'Janice']) >>> managers = Set(['Jane', 'Jack', 'Susan', 'Zack']) >>> employees = engineers | programmers | managers # union >>> engineering_management = engineers & managers # intersection >>> fulltime_management = managers - engineers - programmers # difference >>> engineers.add('Marvin') >>> print engineers Set(['Jack', 'Jane', 'Janice', 'John', 'Marvin']) >>> employees.issuperset(engineers) # superset test False >>> employees.union_update(engineers) # update from another set >>> employees.issuperset(engineers) True >>> for group in [engineers, programmers, managers, employees]: ... group.discard('Susan') # unconditionally remove element ... print group ... Set(['Jack', 'Jane', 'Janice', 'John', 'Marvin']) Set(['Jack', 'Janice', 'Sam']) Set(['Jack', 'Jane', 'Zack']) Set(['Jack', 'Jane', 'Janice', 'John', 'Marvin', 'Sam', 'Zack']) t libreftestcCs}dk}dk}titttttt t t t t ttttttttttttttttt|i|ƒƒdS(N( t test_setstdoctestt test_supportt run_unittestRCR9R(R,R0R2RMRaRnR›RRžRŸR R¸R¹RºR»R¼R½RÀRÊRËRÍRÎRÏRÐt DocTestSuite(tverboseRÜRÝ((Rt test_main5s: t__main__Rá(3tunittestR3RR!RÒtsetsR*RIttestRÞRtTestCaseRR(R,R0R2R7R8R9RCRMRaRnRˆR›RRžRŸR R¡R¸R¹RºR»R¼R½RÀRÂRÊRËRÍRÎRÏRÐRÛt__test__RRâR&R6(-RÞRMR,RÛR›RäRÒRŸRÍRÀR8RR3RaRžR¡R2R0RºR7R¹RˆR(RÎRIRâRÊRCR¼RÐRnR9RèR¸RRËR½R*R R»RRÂRR!RÏ((Rt?sR-  J    SVJ&t =! !