def test_conversion_8(self): for i in range(0, 10): V, E = randomGNP(20, 0.2) G = Graph(V, E) T, w = tdlib.PP_MD(G) self.assertTrue(tdlib.is_valid_treedecomposition(G, T)) O = tdlib.treedec_to_ordering(T) T, w = tdlib.ordering_to_treedec(G, O) self.assertEqual(tdlib.is_valid_treedecomposition(G, T), True)
def test_PP_FI_TM_8(self): for n in range(0, 13): for i in range(0, 10): V, E = randomGNP(n, 0.2) G = Graph(V, E) T, w = tdlib.PP_FI_TM(G) self.assertEqual(tdlib.is_valid_treedecomposition(G, T), True)
def test_MSVS_8(self): for i in range(0, 10): V, E = randomGNP(20, 0.2) G = Graph(V, E) T, w = tdlib.trivial_decomposition(G) T, w = tdlib.MSVS(G, T) self.assertEqual(tdlib.is_valid_treedecomposition(G, T), True)
def test_FI(self): print("---FI---") for i in range(0, COUNT+1): base.print_graph_name(PREFIX, i) G = Graph(eval(PREFIX+".V_"+str(i)), eval(PREFIX+".E_"+str(i))) T, w = tdlib.fillIn_decomp(G) self.assertEqual(tdlib.is_valid_treedecomposition(G, T), True)
def test_PP_FI_7(self): G = Graph(V_Grid_5_5, E_Grid_5_5) T, w = tdlib.PP_FI(G) print(str(T.vertices())) print(str(T.edges())) self.assertEqual(tdlib.is_valid_treedecomposition(G, T), True) self.assertEqual(w, 5)
def test_exact_decomposition_cutset_8(self): for n in range(0, 13): for i in range(0, 10): V, E = randomGNP(n, 0.2) G = Graph(V, E) T, w = tdlib.exact_decomposition_cutset(G) self.assertEqual(tdlib.is_valid_treedecomposition(G, T), True)
def test_conversion_0(self): for V, E in cornercases: G = Graph(V, E) T, w = tdlib.PP_MD(G) O = tdlib.treedec_to_ordering(T) T, w = tdlib.ordering_to_treedec(G, O) self.assertEqual(tdlib.is_valid_treedecomposition(G, T), True)
def test_seperator_algorithm(self): print("---seperator_algorithm---") for i in range(0, COUNT+1): G = Graph(eval(PREFIX+".V_"+str(i)), eval(PREFIX+".E_"+str(i))) base.print_graph_name(PREFIX, i) T, w = tdlib.seperator_algorithm(G) self.assertEqual(tdlib.is_valid_treedecomposition(G, T), True)
def test_PP_FI_TM(self): print("---PP_FI_TM---") for i in range(0, COUNT+1): G = Graph(eval(PREFIX+".V_"+str(i)), eval(PREFIX+".E_"+str(i))) base.print_graph_name(PREFIX, i) T, w = tdlib.PP_FI_TM(G) self.assertEqual(tdlib.is_valid_treedecomposition(G, T), True)
def test_boost_MD(self): print("---boost::MD---") for i in range(0, COUNT+1): G = Graph(eval(PREFIX+".V_"+str(i)), eval(PREFIX+".E_"+str(i))) base.print_graph_name(PREFIX, i) T, w = tdlib.boost_minDegree_decomp(G) self.assertEqual(tdlib.is_valid_treedecomposition(G, T), True)
def test_PP(self): print("---PP---") for i in range(0, COUNT+1): G = Graph(eval(PREFIX+".V_"+str(i)), eval(PREFIX+".E_"+str(i))) base.print_graph_name(PREFIX, i) G_, B, lb = tdlib.preprocessing(G) if G.vertices() is []: self.assertEqual(tdlib.is_valid_treedecomposition(G, T), True)
def test_minimalChordal_trivial(self): print("---minimalChordal_trivial---") for i in range(0, COUNT+1): G = Graph(eval(PREFIX+".V_"+str(i)), eval(PREFIX+".E_"+str(i))) base.print_graph_name(PREFIX, i) T1, w1 = tdlib.trivial_decomposition(G) T2, w2 = tdlib.minimalChordal_decomp(G, T1) self.assertEqual(tdlib.is_valid_treedecomposition(G, T2), True)
def test_PP_FI_TM_4(self): G = Graph(V_Petersen_double, E_Petersen_double) T, w = tdlib.PP_FI_TM(G) self.assertEqual(tdlib.is_valid_treedecomposition(G, T), True) self.assertEqual(w >= 4 and w <= 5, True) #c++11 issuse
def test_boost_minDegree_decomp_7(self): G = Graph(V_Grid_5_5, E_Grid_5_5) T, w = tdlib.boost_minDegree_decomp(G) self.assertEqual(tdlib.is_valid_treedecomposition(G, T), True) self.assertEqual(w, 7)
def test_boost_minDegree_decomp_5(self): G = Graph(V_Wagner, E_Wagner) T, w = tdlib.boost_minDegree_decomp(G) self.assertEqual(tdlib.is_valid_treedecomposition(G, T), True) self.assertEqual(w, 5)
def test_boost_minDegree_decomp_decomp_0(self): for V, E in cornercases: G = Graph(V, E) T, w = tdlib.boost_minDegree_decomp(G) self.assertEqual(tdlib.is_valid_treedecomposition(G, T), True)
def test_exact_decomposition_cutset_7(self): G = Graph(V_Grid_5_5, E_Grid_5_5) T, w = tdlib.exact_decomposition_cutset(G) self.assertEqual(tdlib.is_valid_treedecomposition(G, T), True) self.assertEqual(w, 5)
def test_exact_decomposition_cutset_5(self): G = Graph(V_Wagner, E_Wagner) T, w = tdlib.exact_decomposition_cutset(G) self.assertEqual(tdlib.is_valid_treedecomposition(G, T), True) self.assertEqual(w, 4)
def test_exact_decomposition_cutset_4(self): G = Graph(V_Petersen_double, E_Petersen_double) T, w = tdlib.exact_decomposition_cutset(G) self.assertEqual(tdlib.is_valid_treedecomposition(G, T), True) self.assertEqual(w, 4)
def test_exact_decomposition_cutset_1(self): G = Graph(V_P6, E_P6) T, w = tdlib.exact_decomposition_cutset(G) self.assertEqual(tdlib.is_valid_treedecomposition(G, T), True) self.assertEqual(w, 1)
def test_PP_FI_TM_6(self): G = Graph(V_Pappus, E_Pappus) T, w = tdlib.PP_FI_TM(G) self.assertEqual(tdlib.is_valid_treedecomposition(G, T), True) self.assertEqual(w, 6)
def test_PP_FI_TM_5(self): G = Graph(V_Wagner, E_Wagner) T, w = tdlib.PP_FI_TM(G) self.assertEqual(tdlib.is_valid_treedecomposition(G, T), True) self.assertEqual(w, 4)
def test_boost_minDegree_decomp(self): G = Graph(V_RandomGNM_250_1000, E_RandomGNM_250_1000) T, w = tdlib.boost_minDegree_decomp(G) self.assertEqual(tdlib.is_valid_treedecomposition(G, T), True) self.assertEqual(w, 157)
def test_PP_FI_1(self): G = Graph(V_P6, E_P6) T, w = tdlib.PP_FI(G) self.assertEqual(tdlib.is_valid_treedecomposition(G, T), True) self.assertEqual(w, 1)
def test_boost_minDegree_decomp_4(self): G = Graph(V_Petersen_double, E_Petersen_double) T, w = tdlib.boost_minDegree_decomp(G) self.assertEqual(tdlib.is_valid_treedecomposition(G, T), True) self.assertEqual(w, 5)
def test_exact_decomposition_dynamic_0(self): for V, E in cornercases: G = Graph(V, E) T, w = tdlib.exact_decomposition_dynamic(G) self.assertEqual(tdlib.is_valid_treedecomposition(G, T), True)
def test_boost_minDegree_decomp_6(self): G = Graph(V_Pappus, E_Pappus) T, w = tdlib.boost_minDegree_decomp(G) self.assertEqual(tdlib.is_valid_treedecomposition(G, T), True) self.assertEqual(w, 7)
def test_exact_decomposition_dynamic_2(self): G = Graph(V_K5, E_K5) T, tw = tdlib.exact_decomposition_dynamic(G) self.assertEqual(tdlib.is_valid_treedecomposition(G, T), True) self.assertEqual(tw, 4)
def test_boost_minDegree_decomp_8(self): for i in range(0, 10): V, E = randomGNP(20, 0.2) G = Graph(V, E) T, w = tdlib.boost_minDegree_decomp(G) self.assertEqual(tdlib.is_valid_treedecomposition(G, T), True)
def test_PP_FI_TM_0(self): for V, E in cornercases: G = Graph(V, E) T, w = tdlib.PP_FI_TM(G) self.assertEqual(tdlib.is_valid_treedecomposition(G, T), True)