def test_paths(): multigraph = MultiGraph() multigraph.add_nodes_from(range(4)) breakpoint_graph = BreakpointGraph(multigraph) first_color = ['A', 'C'] second_color = ['B', 'D'] topology = (first_color, second_color) breakpoint_graph.add_edge(0, 1, Multicolor(*first_color)) breakpoint_graph.add_edge(2, 3, Multicolor(*first_color)) breakpoint_graph.add_edge(1, 2, Multicolor(*second_color)) breakpoint_graph.add_edge(0, 3, Multicolor(*second_color)) assert (get_size_of_alternating_structures(breakpoint_graph, topology) == 3)
def test_diamond(): multigraph = MultiGraph() multigraph.add_nodes_from(range(4)) breakpoint_graph = BreakpointGraph(multigraph) first_color = ['A', 'C'] second_color = ['B', 'D'] topology = (first_color, second_color) breakpoint_graph.add_edge(0, 1, Multicolor(*[A])) breakpoint_graph.add_edge(2, 3, Multicolor(*[B])) breakpoint_graph.add_edge(1, 2, Multicolor(*[C])) breakpoint_graph.add_edge(0, 3, Multicolor(*[D])) assert (len(find_diamond_patterns(breakpoint_graph)) == 1)
def test_cylinder(): multigraph1 = MultiGraph() multigraph1.add_nodes_from(range(4)) breakpoint_graph1 = BreakpointGraph(multigraph1) double_color = ['A', 'B'] breakpoint_graph1.add_edge(0, 1, Multicolor(*double_color)) breakpoint_graph1.add_edge(2, 3, Multicolor(*double_color)) breakpoint_graph1.add_edge(1, 2, Multicolor('C')) breakpoint_graph1.add_edge(0, 3, Multicolor('D')) assert (len(find_cylinder_patterns(breakpoint_graph1)) == 1) multigraph2 = MultiGraph() multigraph2.add_nodes_from(range(4)) breakpoint_graph2 = BreakpointGraph(multigraph2) double_color = ['A', 'B'] breakpoint_graph2.add_edge(0, 1, Multicolor(*double_color)) breakpoint_graph2.add_edge(2, 3, Multicolor(*double_color)) breakpoint_graph2.add_edge(1, 2, Multicolor('C')) breakpoint_graph2.add_edge(0, 3, Multicolor('C')) assert (len(find_cylinder_patterns(breakpoint_graph2)) == 0)