def main(): logging.basicConfig(format = '%(levelname)s %(message)s') logger = logging.getLogger('redis') logger.parent.setLevel(logging.ERROR) #creating the graph object graph = Directed_graph(r_server, 'uniq', logger, has_root = True) RED = '\033[91m' ORANGE = '\033[93m' GREEN = '\033[92m' #adding some nodes node1 = convert('level_1_1☭') node2 = convert('level_1_2') node3 = convert('☭level_2_1') node4 = convert('level_2_2') node5 = convert('level_3_1') node1_predecessors = [] node1_successors = [node3,node4] node2_predecessors = [] node2_successors = [node3,node4] node3_predecessors = [node1,node2] node3_successors = [node5] node4_predecessors = [node1,node2] node4_successors = [node5] node5_predecessors = [] node5_successors = [] def clean(): graph.remove_node(node1) graph.remove_node(node2) graph.remove_node(node3) graph.remove_node(node4) graph.remove_node(node5) graph.remove_node(graph.root) def print_test(got,expected,node,nature): if got != expected: print(RED + "ERROR: "+ node + " " + nature +" is not as it should be") print(ORANGE +"GOT:") print(got ) print("EXPECTED:") print(expected ) clean() return 1 else: print(GREEN + node + " " + nature +": Ok") attributes = {convert('☭jack'): set([convert('1'),convert('2')]), convert('spare☭'): convert('☭youpi')} # graph.write_on_node(node3, node3_successors, node3_predecessors, attributes) graph.write_on_node(node4, node4_successors, node4_predecessors, attributes) graph.write_on_node(node1, node1_successors, node1_predecessors, attributes) graph.write_on_node(node2, node2_successors, node2_predecessors, attributes) graph.write_on_node(node5, node5_successors, node5_predecessors, attributes) #printing some predecessors or successors name = graph.root got = graph.get_successors(name) expected = set([node1, node2]) if print_test(got, expected, name, "successors") == 1: return 1 got = graph.get_predecessors(name) expected = set([]) if print_test(got, expected, name, "predecessors") == 1: return 1 name = node1 got = graph.get_successors(name) expected = set([node3, node4]) if print_test(got, expected, name, "successors") == 1: return 1 got = graph.get_predecessors(name) expected = set(['RO_@@@_OT']) if print_test(got, expected, name, "predecessors") == 1: return 1 name = node2 got = graph.get_successors(name) expected = set([node3, node4]) if print_test(got, expected, name, "successors") == 1: return 1 got = graph.get_predecessors(name) expected = set(['RO_@@@_OT']) if print_test(got, expected, name, "predecessors") == 1: return 1 name = node3 got = graph.get_successors(name) expected = set([node5]) if print_test(got, expected, name, "successors") == 1: return 1 got = graph.get_predecessors(name) expected = set([node2, node1]) if print_test(got, expected, name, "predecessors") == 1: return 1 name = node4 got = graph.get_successors(name) expected = set([node5]) if print_test(got, expected, name, "successors") == 1: return 1 got = graph.get_predecessors(name) expected = set([node2, node1]) if print_test(got, expected, name, "predecessors") == 1: return 1 name = node5 got = graph.get_successors(name) expected = set([]) if print_test(got, expected, name, "successors") == 1: return 1 got = graph.get_predecessors(name) expected = set([node3, node4]) if print_test(got, expected, name, "predecessors") == 1: return 1 name = node1 got = graph.get_attributs_list(name) expected = {convert('☭jack'), convert('spare☭')} if print_test(got, expected, name, "attributs_list") == 1: return 1 print(GREEN + "printing attributs list after removing node[123]") graph.write_off_node(node1, [node3], [],[convert('☭jack')]) #printing some predecessors or successors name = graph.root got = graph.get_successors(name) expected = set([node1, node2]) if print_test(got, expected, name, "successors") == 1: return 1 got = graph.get_predecessors(name) expected = set([]) if print_test(got, expected, name, "predecessors") == 1: return 1 name = node1 got = graph.get_successors(name) expected = set([node4]) if print_test(got, expected, name, "successors") == 1: return 1 got = graph.get_predecessors(name) expected = set(['RO_@@@_OT']) if print_test(got, expected, name, "predecessors") == 1: return 1 name = node2 got = graph.get_successors(name) expected = set([node3, node4]) if print_test(got, expected, name, "successors") == 1: return 1 got = graph.get_predecessors(name) expected = set(['RO_@@@_OT']) if print_test(got, expected, name, "predecessors") == 1: return 1 name = node3 got = graph.get_successors(name) expected = set([node5]) if print_test(got, expected, name, "successors") == 1: return 1 got = graph.get_predecessors(name) expected = set([node2]) if print_test(got, expected, name, "predecessors") == 1: return 1 name = node4 got = graph.get_successors(name) expected = set([node5]) if print_test(got, expected, name, "successors") == 1: return 1 got = graph.get_predecessors(name) expected = set([node2, node1]) if print_test(got, expected, name, "predecessors") == 1: return 1 name = node5 got = graph.get_successors(name) expected = set([]) if print_test(got, expected, name, "successors") == 1: return 1 got = graph.get_predecessors(name) expected = set([node3, node4]) if print_test(got, expected, name, "predecessors") == 1: return 1 name = node1 got = graph.get_attributs_list(name) expected = {convert('spare☭')} if print_test(got, expected, name, "attributs_list") == 1: return 1 graph.write_off_node(node2, [node3], [],[convert('☭jack')]) #printing some predecessors or successors name = graph.root got = graph.get_successors(name) expected = set([node1, node2, node3]) if print_test(got, expected, name, "successors") == 1: return 1 got = graph.get_predecessors(name) expected = set([]) if print_test(got, expected, name, "predecessors") == 1: return 1 name = node1 got = graph.get_successors(name) expected = set([node4]) if print_test(got, expected, name, "successors") == 1: return 1 got = graph.get_predecessors(name) expected = set(['RO_@@@_OT']) if print_test(got, expected, name, "predecessors") == 1: return 1 name = node2 got = graph.get_successors(name) expected = set([node4]) if print_test(got, expected, name, "successors") == 1: return 1 got = graph.get_predecessors(name) expected = set(['RO_@@@_OT']) if print_test(got, expected, name, "predecessors") == 1: return 1 name = node3 got = graph.get_successors(name) expected = set([node5]) if print_test(got, expected, name, "successors") == 1: return 1 got = graph.get_predecessors(name) expected = set(['RO_@@@_OT']) if print_test(got, expected, name, "predecessors") == 1: return 1 name = node4 got = graph.get_successors(name) expected = set([node5]) if print_test(got, expected, name, "successors") == 1: return 1 got = graph.get_predecessors(name) expected = set([node2, node1]) if print_test(got, expected, name, "predecessors") == 1: return 1 name = node5 got = graph.get_successors(name) expected = set([]) if print_test(got, expected, name, "successors") == 1: return 1 got = graph.get_predecessors(name) expected = set([node3, node4]) if print_test(got, expected, name, "predecessors") == 1: return 1 name = node1 got = graph.get_attributs_list(name) expected = {convert('spare☭')} if print_test(got, expected, name, "attributs_list") == 1: return 1 return 0
print graph.get_successors(u"p2") print graph.get_successors(u"c3") print graph.get_successors(graph.root) print graph.get_predecessors(u"c3") #getting an attributs list print graph.get_attributs_list(u'm2') #getting some attribut print graph.get_attribut(u'm2', u'guido') print graph.get_attribut(u'm1', u'jack') #example of write off (suppression of some elements of a node, like predecessors, successors or attributs) #getting the elements before print graph.get_attributs_list(u'm2') print graph.get_predecessors(u"m2") print graph.get_successors("m2") #removing the elements graph.write_off_node(u"m2", [u"c1"], [u"p2", u"p3"],[u'sape']) #getting the elements after print graph.get_attributs_list(u'm2') print graph.get_predecessors(u"m2") print graph.get_successors(u"m2") #removing a node graph.remove_node(u'm2') print graph.get_predecessors(u"m2") print graph.get_successors(u"m2") print graph.get_successors(graph.root)
def main(): logging.basicConfig(format='%(levelname)s %(message)s') logger = logging.getLogger('redis') logger.parent.setLevel(logging.ERROR) #creating the graph object graph = Directed_graph(r_server, 'uniq', logger, has_root=True) RED = '\033[91m' ORANGE = '\033[93m' GREEN = '\033[92m' #adding some nodes node1 = convert('level_1_1☭') node2 = convert('level_1_2') node3 = convert('☭level_2_1') node4 = convert('level_2_2') node5 = convert('level_3_1') node1_predecessors = [] node1_successors = [node3, node4] node2_predecessors = [] node2_successors = [node3, node4] node3_predecessors = [node1, node2] node3_successors = [node5] node4_predecessors = [node1, node2] node4_successors = [node5] node5_predecessors = [] node5_successors = [] def clean(): graph.remove_node(node1) graph.remove_node(node2) graph.remove_node(node3) graph.remove_node(node4) graph.remove_node(node5) graph.remove_node(graph.root) def print_test(got, expected, node, nature): if got != expected: print(RED + "ERROR: " + node + " " + nature + " is not as it should be") print(ORANGE + "GOT:") print(got) print("EXPECTED:") print(expected) clean() return 1 else: print(GREEN + node + " " + nature + ": Ok") attributes = { convert('☭jack'): set([convert('1'), convert('2')]), convert('spare☭'): convert('☭youpi') } # graph.write_on_node(node3, node3_successors, node3_predecessors, attributes) graph.write_on_node(node4, node4_successors, node4_predecessors, attributes) graph.write_on_node(node1, node1_successors, node1_predecessors, attributes) graph.write_on_node(node2, node2_successors, node2_predecessors, attributes) graph.write_on_node(node5, node5_successors, node5_predecessors, attributes) #printing some predecessors or successors name = graph.root got = graph.get_successors(name) expected = set([node1, node2]) if print_test(got, expected, name, "successors") == 1: return 1 got = graph.get_predecessors(name) expected = set([]) if print_test(got, expected, name, "predecessors") == 1: return 1 name = node1 got = graph.get_successors(name) expected = set([node3, node4]) if print_test(got, expected, name, "successors") == 1: return 1 got = graph.get_predecessors(name) expected = set(['RO_@@@_OT']) if print_test(got, expected, name, "predecessors") == 1: return 1 name = node2 got = graph.get_successors(name) expected = set([node3, node4]) if print_test(got, expected, name, "successors") == 1: return 1 got = graph.get_predecessors(name) expected = set(['RO_@@@_OT']) if print_test(got, expected, name, "predecessors") == 1: return 1 name = node3 got = graph.get_successors(name) expected = set([node5]) if print_test(got, expected, name, "successors") == 1: return 1 got = graph.get_predecessors(name) expected = set([node2, node1]) if print_test(got, expected, name, "predecessors") == 1: return 1 name = node4 got = graph.get_successors(name) expected = set([node5]) if print_test(got, expected, name, "successors") == 1: return 1 got = graph.get_predecessors(name) expected = set([node2, node1]) if print_test(got, expected, name, "predecessors") == 1: return 1 name = node5 got = graph.get_successors(name) expected = set([]) if print_test(got, expected, name, "successors") == 1: return 1 got = graph.get_predecessors(name) expected = set([node3, node4]) if print_test(got, expected, name, "predecessors") == 1: return 1 name = node1 got = graph.get_attributs_list(name) expected = {convert('☭jack'), convert('spare☭')} if print_test(got, expected, name, "attributs_list") == 1: return 1 print(GREEN + "printing attributs list after removing node[123]") graph.write_off_node(node1, [node3], [], [convert('☭jack')]) #printing some predecessors or successors name = graph.root got = graph.get_successors(name) expected = set([node1, node2]) if print_test(got, expected, name, "successors") == 1: return 1 got = graph.get_predecessors(name) expected = set([]) if print_test(got, expected, name, "predecessors") == 1: return 1 name = node1 got = graph.get_successors(name) expected = set([node4]) if print_test(got, expected, name, "successors") == 1: return 1 got = graph.get_predecessors(name) expected = set(['RO_@@@_OT']) if print_test(got, expected, name, "predecessors") == 1: return 1 name = node2 got = graph.get_successors(name) expected = set([node3, node4]) if print_test(got, expected, name, "successors") == 1: return 1 got = graph.get_predecessors(name) expected = set(['RO_@@@_OT']) if print_test(got, expected, name, "predecessors") == 1: return 1 name = node3 got = graph.get_successors(name) expected = set([node5]) if print_test(got, expected, name, "successors") == 1: return 1 got = graph.get_predecessors(name) expected = set([node2]) if print_test(got, expected, name, "predecessors") == 1: return 1 name = node4 got = graph.get_successors(name) expected = set([node5]) if print_test(got, expected, name, "successors") == 1: return 1 got = graph.get_predecessors(name) expected = set([node2, node1]) if print_test(got, expected, name, "predecessors") == 1: return 1 name = node5 got = graph.get_successors(name) expected = set([]) if print_test(got, expected, name, "successors") == 1: return 1 got = graph.get_predecessors(name) expected = set([node3, node4]) if print_test(got, expected, name, "predecessors") == 1: return 1 name = node1 got = graph.get_attributs_list(name) expected = {convert('spare☭')} if print_test(got, expected, name, "attributs_list") == 1: return 1 graph.write_off_node(node2, [node3], [], [convert('☭jack')]) #printing some predecessors or successors name = graph.root got = graph.get_successors(name) expected = set([node1, node2, node3]) if print_test(got, expected, name, "successors") == 1: return 1 got = graph.get_predecessors(name) expected = set([]) if print_test(got, expected, name, "predecessors") == 1: return 1 name = node1 got = graph.get_successors(name) expected = set([node4]) if print_test(got, expected, name, "successors") == 1: return 1 got = graph.get_predecessors(name) expected = set(['RO_@@@_OT']) if print_test(got, expected, name, "predecessors") == 1: return 1 name = node2 got = graph.get_successors(name) expected = set([node4]) if print_test(got, expected, name, "successors") == 1: return 1 got = graph.get_predecessors(name) expected = set(['RO_@@@_OT']) if print_test(got, expected, name, "predecessors") == 1: return 1 name = node3 got = graph.get_successors(name) expected = set([node5]) if print_test(got, expected, name, "successors") == 1: return 1 got = graph.get_predecessors(name) expected = set(['RO_@@@_OT']) if print_test(got, expected, name, "predecessors") == 1: return 1 name = node4 got = graph.get_successors(name) expected = set([node5]) if print_test(got, expected, name, "successors") == 1: return 1 got = graph.get_predecessors(name) expected = set([node2, node1]) if print_test(got, expected, name, "predecessors") == 1: return 1 name = node5 got = graph.get_successors(name) expected = set([]) if print_test(got, expected, name, "successors") == 1: return 1 got = graph.get_predecessors(name) expected = set([node3, node4]) if print_test(got, expected, name, "predecessors") == 1: return 1 name = node1 got = graph.get_attributs_list(name) expected = {convert('spare☭')} if print_test(got, expected, name, "attributs_list") == 1: return 1 return 0
print(graph.get_successors("p2")) print(graph.get_successors("c3")) print(graph.get_successors(graph.root)) print(graph.get_predecessors("c3")) #getting an attributs list print(graph.get_attributs_list('m2')) #getting some attribut print(graph.get_attribut('m2', 'guido')) print(graph.get_attribut('m1', 'jack')) #example of write off (suppression of some elements of a node, like predecessors, successors or attributs) #getting the elements before print(graph.get_attributs_list('m2')) print(graph.get_predecessors("m2")) print(graph.get_successors("m2")) #removing the elements graph.write_off_node("m2", ["c1"], ["p2", "p3"], ['sape']) #getting the elements after print(graph.get_attributs_list('m2')) print(graph.get_predecessors("m2")) print(graph.get_successors("m2")) #removing a node graph.remove_node('m2') print(graph.get_predecessors("m2")) print(graph.get_successors("m2")) print(graph.get_successors(graph.root))
print(graph.get_successors("p2")) print(graph.get_successors("c3")) print(graph.get_successors(graph.root)) print(graph.get_predecessors("c3")) #getting an attributs list print(graph.get_attributs_list('m2')) #getting some attribut print(graph.get_attribut('m2', 'guido')) print(graph.get_attribut('m1', 'jack')) #example of write off (suppression of some elements of a node, like predecessors, successors or attributs) #getting the elements before print(graph.get_attributs_list('m2')) print(graph.get_predecessors("m2")) print(graph.get_successors("m2")) #removing the elements graph.write_off_node("m2", ["c1"], ["p2", "p3"],['sape']) #getting the elements after print(graph.get_attributs_list('m2')) print(graph.get_predecessors("m2")) print(graph.get_successors("m2")) #removing a node graph.remove_node('m2') print(graph.get_predecessors("m2")) print(graph.get_successors("m2")) print(graph.get_successors(graph.root))