mς %U²Ic@s`dkZdkZdkZdd„Zedjo(eeƒeeƒeeddƒndS(Nc Csrt|dƒp td‚|idjp|idjp td‚|dj o||i|ƒ}|i|dƒ}|i|dƒi ƒ}|i|ƒ}|i dƒ|i ƒ}||jp td‚nm|iƒ}|idƒ}|idƒi ƒ}|iƒ}|i dƒ|i ƒ}||jp td‚t|dƒp td‚|idj o!|i|ijp td‚n|it|ƒjp td ‚|i dƒ|iƒ} |i ƒ| i ƒjp td ‚|iƒ| iƒjp td ‚|i ƒ|iƒ} }d }x"| D]} |d t| ƒ7}q)W||jp td ‚dG|iGdGHdS(Nt digest_sizesMust have digest_sizeis$digest_size must be None or positivetstringsHashes must matchs"Objects must have digest_size attrsdigest_size must matchs"digest_size must match actual sizesCopied objects must matchts%02xs hexdigest doesn't appear correcttModulesseems to comply with PEP 247(thasattrtmoduletAssertionErrorRtNonetkeytnewtobj1tobj2tdigestth1tobj3tupdateth2tlentcopytobj_copyt hexdigestthd2tbytetordt__name__( RRR R RRR RRRR R((t-/data/zmath/lib/python2.4/test/test_pep247.pytcheck_hash_modules8* ( %!   ##t__main__Rtabc(tmd5tshathmacRRR(RRRR((Rt?s  '