def test_create_similarity_matrix_map_for_graph_paths_with_four_levels( self): trace_matrix_creator = TraceMatrixBuilder( trace_matrix_map=self.trace_matrix_map) trace_matrix_creator.set_artifact_levels(self.artifacts) graph_paths = GraphPathMap() graph_paths["0-2"] = [[0, 2], [0, 1, 2], [0, 3, 2]] similarity_matrix_map = trace_matrix_creator.calculate_matrix_for_paths( graph_paths) values = similarity_matrix_map["0-2"] self.assertEqual(1, values[0, 0]) self.assertEqual(1, values[0, 1]) self.assertEqual(1, values[0, 2]) self.assertEqual(0, self.reqs2code.matrix[0, 2])
def test_find_all_paths_three_complete(self): graph: Graph = TraceMatrixBuilder.create_dependency_graph_with_trace_ids( ["0-2", "0-1", "1-2"], 3) paths = get_all_paths(graph, 0, 1) self.assertEqual(2, len(paths)) self.assertEqual([0, 1], paths[0]) self.assertEqual([0, 2, 1], paths[1])
def test_find_all_paths_one(self): graph: Graph = TraceMatrixBuilder.create_dependency_graph_with_trace_ids( [], 1) paths = get_all_paths(graph, 0, 0) self.assertEqual(1, len(paths)) self.assertEqual(1, len(paths[0])) self.assertEqual(0, paths[0][0])
def test_find_all_paths_four_incomplete(self): traces = ["1-2", "0-2", "2-3", "1-0", "0-3", "1-3"] graph: Graph = TraceMatrixBuilder.create_dependency_graph_with_trace_ids( traces, 4) paths = get_all_paths(graph, 1, 2) self.assertEqual(5, len(paths)) self.assertTrue([1, 0, 2] in paths) self.assertTrue([1, 2] in paths) self.assertTrue([1, 3, 2] in paths) self.assertTrue([1, 0, 3, 2] in paths) self.assertTrue([1, 3, 0, 2] in paths)
def test_create_trace_matrix_graph(self): graph: Graph = TraceMatrixBuilder.create_dependency_graph_with_trace_ids( ["0-1", "1-2"], 3) self.assertFalse(graph.are_connected(0, 2)) self.assertTrue(graph.are_connected(0, 1)) self.assertTrue(graph.are_connected(1, 2)) self.assertEqual(3, len(graph.vs)) path = graph.get_shortest_paths(0, 2) self.assertEqual(1, len(path)) self.assertEqual([0, 1, 2], path[0])
def test_get_trace_path_map_to_missing_links(self): traces = ["1-4", "4-0", "0-2", "2-3"] graph = TraceMatrixBuilder.create_dependency_graph_with_trace_ids( traces, 5) missing_paths = get_paths_to_complete_graph(traces, graph, 5) self.assertEqual(6, len(missing_paths.get_trace_ids())) self.assertTrue("0-1" in missing_paths) self.assertTrue("1-2" in missing_paths) self.assertTrue("1-3" in missing_paths) self.assertTrue("3-4" in missing_paths) self.assertTrue("2-4" in missing_paths) self.assertTrue("0-3" in missing_paths)
def __init__( self, dataset_name: str, ): super().__init__() self.path_to_dataset = get_path_to_dataset(dataset_name) self.structure_definition = DatasetStructureDefinition( dataset_name=dataset_name) self.artifact_builder: Optional[ ArtifactLevelBuilder] = ArtifactLevelBuilder( self.structure_definition) self.trace_matrix_builder: Optional[ TraceMatrixBuilder] = TraceMatrixBuilder( structure_definition=self.structure_definition) self.trace_matrix_map: Optional[TraceId2TraceMatrixMap] = None self.artifacts: Optional[ArtifactLevel] = None
def test_find_all_paths_three_incomplete(self): graph: Graph = TraceMatrixBuilder.create_dependency_graph_with_trace_ids( ["0-2"], 3) paths = get_all_paths(graph, 0, 1) self.assertEqual(0, len(paths))
def test_find_all_paths_two_empty(self): graph: Graph = TraceMatrixBuilder.create_dependency_graph_with_trace_ids( [], 2) paths = get_all_paths(graph, 0, 1) self.assertEqual(0, len(paths))
def test_find_all_paths_two_complete(self): graph: Graph = TraceMatrixBuilder.create_dependency_graph_with_trace_ids( ["0-1"], 2) paths = get_all_paths(graph, 0, 1) self.assertEqual(1, len(paths)) self.assertEqual([0, 1], paths[0])
def test_create_trace_matrix_graph_with_backwards_search(self): graph: Graph = TraceMatrixBuilder.create_dependency_graph_with_trace_ids( ["0-1", "0-2"], 3) path = graph.get_shortest_paths(1, 2) self.assertEqual(1, len(path)) self.assertEqual([1, 0, 2], path[0])