def test4(showme=1, findallmatches=1): domaingraph, domaincells, morseset, vertexmap, outedges, walldomains, varsaffectedatwall, varnames, threshnames = ( tc.test4() ) extendedmorsegraph, extendedmorsecells = pp.makeExtendedMorseSetDomainGraph( vertexmap, morseset, domaingraph, domaincells ) newoutedges, wallthresh, newwalldomains, booleanoutedges = pp.makeWallGraphFromDomainGraph( len(vertexmap), extendedmorsegraph, extendedmorsecells ) newvarsaffectedatwall = pp.varsAtWalls(threshnames, newwalldomains, wallthresh, varnames) wallinfo = makeWallInfo(newoutedges, newwalldomains, newvarsaffectedatwall) wallinfo = pp.truncateExtendedWallGraph(booleanoutedges, newoutedges, wallinfo) patternnames, patternmaxmin, originalpatterns = fp.parsePatterns() patterns = pp.translatePatterns(varnames, patternnames, patternmaxmin, cyclic=1) match = matchPattern(patterns[0][0], wallinfo, cyclic=1, findallmatches=findallmatches) if showme and findallmatches: print set(match) == set([(4, 0, 2, 5, 4), (4, 0, 1, 3, 6, 5, 4)]) if showme and not findallmatches: print match[0] in [(4, 0, 2, 5, 4), (4, 0, 1, 3, 6, 5, 4)] match = matchPattern(patterns[1][0], wallinfo, cyclic=1, findallmatches=findallmatches) if showme: print "None" in match
def test4(): domaingraph,domaincells,morseset,vertexmap,outedges,walldomains,varsaffectedatwall,varnames,threshnames=tc.test4() extendedmorsegraph,extendedmorsecells=pp.makeExtendedMorseSetDomainGraph(vertexmap,morseset,domaingraph,domaincells) print extendedmorsegraph==[[6,1],[2,4],[5,],[0,],[3,],[4,],[]] print extendedmorsecells==domaincells[3:]+[domaincells[0]] newoutedges,wallthresh,newwalldomains,booleanoutedges=pp.makeWallGraphFromDomainGraph(len(vertexmap),extendedmorsegraph, extendedmorsecells) print newoutedges==[(),(2,3),(4,),(6,),(7,),(0,1),(5,),(6,)] print newwalldomains==[(1,2.5)] +walldomains print wallthresh==[0,1,1,0,0,0,1,1] print pp.varsAtWalls(threshnames,newwalldomains,wallthresh,varnames)==[0]+varsaffectedatwall patternnames=[['X1','X2','X1','X2'],['X1','X1','X2','X2']] patternmaxmin=[['min','min','max','max'],['max','min','min','max']] patterns=translatePatterns(varnames,patternnames,patternmaxmin,cyclic=1) print patterns==[[['md','um','Mu','dM','md']],[['Md','md','um','uM','Md']]] patternnames,patternmaxmin,originalpatterns=fp.parsePatterns() print patternnames==[['X2', 'X1', 'X2', 'X1'], ['X2', 'X2', 'X1', 'X1']] print patternmaxmin==[['max', 'min', 'min', 'max'], ['max', 'min', 'min', 'max']] print translatePatterns(varnames,patternnames,patternmaxmin,cyclic=1)==[[['dM','md','um','Mu','dM']],[['dM','dm','mu','Mu','dM']]]
def blockify(input_bin_str, block_len): return [ input_bin_str[i:i + block_len] for i in range(0, len(input_bin_str), block_len) ] def cbc_decrypt(cipher, input_bin_str, iv, block_len): # Function for decrypting a single block def decrypt_block(cipher, enc_str, iv): return strxor(cipher.decrypt(enc_str), iv) output_str = "" block_list = blockify(input_bin_str, block_len) next_iv = iv for block in block_list: output_str += decrypt_block(cipher, block, next_iv) next_iv = block return output_str if __name__ == "__main__": testcases.test1() testcases.test2() testcases.test3() testcases.test4() testcases.test5a() testcases.test5b()
def test4(): domaingraph, domaincells, morseset, vertexmap, outedges, walldomains, varsaffectedatwall, varnames, threshnames = tc.test4( ) extendedmorsegraph, extendedmorsecells = pp.makeExtendedMorseSetDomainGraph( vertexmap, morseset, domaingraph, domaincells) newoutedges, wallthresh, newwalldomains, booleanoutedges = pp.makeWallGraphFromDomainGraph( len(vertexmap), extendedmorsegraph, extendedmorsecells) newvarsaffectedatwall = pp.varsAtWalls(threshnames, newwalldomains, wallthresh, varnames) wallinfo = wl.makeWallInfo(newoutedges, newwalldomains, newvarsaffectedatwall) wallinfo = pp.truncateExtendedWallGraph(booleanoutedges, newoutedges, wallinfo) print set(wallinfo.keys()) == set([(0, 1), (0, 2), (1, 3), (2, 5), (3, 6), (4, 0), (5, 4), (6, 5)]) print wallinfo[(0, 1)] == [(3, ('ud', ))] print wallinfo[(0, 2)] == [(5, ('um', ))] print wallinfo[(1, 3)] == [(6, ('um', ))] print wallinfo[(2, 5)] == [(4, ('Mu', ))] print wallinfo[(3, 6)] == [(5, ('uu', ))] print set(wallinfo[(4, 0)]) == set([(1, ('md', )), (2, ('md', ))]) print wallinfo[(5, 4)] == [(0, ('dM', ))] print wallinfo[(6, 5)] == [(4, ('Mu', ))]
def test4(): domaingraph, domaincells, morseset, vertexmap, outedges, walldomains, varsaffectedatwall, varnames, threshnames = tc.test4( ) extendedmorsegraph, extendedmorsecells = pp.makeExtendedMorseSetDomainGraph( vertexmap, morseset, domaingraph, domaincells) print extendedmorsegraph == [[6, 1], [2, 4], [ 5, ], [ 0, ], [ 3, ], [ 4, ], []] print extendedmorsecells == domaincells[3:] + [domaincells[0]] newoutedges, wallthresh, newwalldomains, booleanoutedges = pp.makeWallGraphFromDomainGraph( len(vertexmap), extendedmorsegraph, extendedmorsecells) print newoutedges == [(), (2, 3), (4, ), (6, ), (7, ), (0, 1), (5, ), (6, )] print newwalldomains == [(1, 2.5)] + walldomains print wallthresh == [0, 1, 1, 0, 0, 0, 1, 1] print pp.varsAtWalls(threshnames, newwalldomains, wallthresh, varnames) == [0] + varsaffectedatwall patternnames = [['X1', 'X2', 'X1', 'X2'], ['X1', 'X1', 'X2', 'X2']] patternmaxmin = [['min', 'min', 'max', 'max'], ['max', 'min', 'min', 'max']] patterns = translatePatterns(varnames, patternnames, patternmaxmin, cyclic=1) print patterns == [[['md', 'um', 'Mu', 'dM', 'md']], [['Md', 'md', 'um', 'uM', 'Md']]] patternnames, patternmaxmin, originalpatterns = fp.parsePatterns() print patternnames == [['X2', 'X1', 'X2', 'X1'], ['X2', 'X2', 'X1', 'X1']] print patternmaxmin == [['max', 'min', 'min', 'max'], ['max', 'min', 'min', 'max']] print translatePatterns(varnames, patternnames, patternmaxmin, cyclic=1) == [[['dM', 'md', 'um', 'Mu', 'dM']], [['dM', 'dm', 'mu', 'Mu', 'dM']]]
def test4(): domaingraph,domaincells,morseset,vertexmap,outedges,walldomains,varsaffectedatwall,varnames,threshnames=tc.test4() extendedmorsegraph,extendedmorsecells=pp.makeExtendedMorseSetDomainGraph(vertexmap,morseset,domaingraph,domaincells) newoutedges,wallthresh,newwalldomains,booleanoutedges=pp.makeWallGraphFromDomainGraph(len(vertexmap),extendedmorsegraph, extendedmorsecells) newvarsaffectedatwall=pp.varsAtWalls(threshnames,newwalldomains,wallthresh,varnames) wallinfo = wl.makeWallInfo(newoutedges,newwalldomains,newvarsaffectedatwall) wallinfo = pp.truncateExtendedWallGraph(booleanoutedges,newoutedges,wallinfo) print set(wallinfo.keys())==set([(0,1),(0,2),(1,3),(2,5),(3,6),(4,0),(5,4),(6,5)]) print wallinfo[(0,1)]==[(3,('ud',))] print wallinfo[(0,2)]==[(5,('um',))] print wallinfo[(1,3)]==[(6,('um',))] print wallinfo[(2,5)]==[(4,('Mu',))] print wallinfo[(3,6)]==[(5,('uu',))] print set(wallinfo[(4,0)])==set([(1,('md',)),(2,('md',))]) print wallinfo[(5,4)]==[(0,('dM',))] print wallinfo[(6,5)]==[(4,('Mu',))]
def test4(showme=1, findallmatches=1): domaingraph, domaincells, morseset, vertexmap, outedges, walldomains, varsaffectedatwall, varnames, threshnames = tc.test4( ) extendedmorsegraph, extendedmorsecells = pp.makeExtendedMorseSetDomainGraph( vertexmap, morseset, domaingraph, domaincells) newoutedges, wallthresh, newwalldomains, booleanoutedges = pp.makeWallGraphFromDomainGraph( len(vertexmap), extendedmorsegraph, extendedmorsecells) newvarsaffectedatwall = pp.varsAtWalls(threshnames, newwalldomains, wallthresh, varnames) wallinfo = makeWallInfo(newoutedges, newwalldomains, newvarsaffectedatwall) wallinfo = pp.truncateExtendedWallGraph(booleanoutedges, newoutedges, wallinfo) patternnames, patternmaxmin, originalpatterns = fp.parsePatterns() patterns = pp.translatePatterns(varnames, patternnames, patternmaxmin, cyclic=1) match = matchPattern(patterns[0][0], wallinfo, cyclic=1, findallmatches=findallmatches) if showme and findallmatches: print set(match) == set([(4, 0, 2, 5, 4), (4, 0, 1, 3, 6, 5, 4)]) if showme and not findallmatches: print match[0] in [(4, 0, 2, 5, 4), (4, 0, 1, 3, 6, 5, 4)] match = matchPattern(patterns[1][0], wallinfo, cyclic=1, findallmatches=findallmatches) if showme: print 'None' in match