def test_indirect_matrices_shape_with_missing_sources(self): dataset_name = "SAMPLE_WARC" dataset_builder = DatasetBuilder(dataset_name) dataset_builder.build() top = dataset_builder.artifacts[0] middle = dataset_builder.artifacts[1] bottom = dataset_builder.artifacts[2] expected_top_middle_shape = (len(top), len(middle)) expected_middle_bottom_shape = (len(middle), len(bottom)) expected_top_bottom_shape = (len(top), len(bottom)) assert_shapes_equal( dataset_builder.trace_matrix_map["0-1"].matrix, expected_top_middle_shape ) assert_shapes_equal( dataset_builder.trace_matrix_map["0-2"].matrix, expected_top_bottom_shape ) assert_shapes_equal( dataset_builder.trace_matrix_map["1-2"].matrix, expected_middle_bottom_shape, ) self.assertEqual( dataset_builder.trace_matrix_map["1-2"].matrix.shape, expected_middle_bottom_shape, )
def test_creating_missing_matrices(self): """ For MockDataset, removes trace matrix 0-2 from structure definition and checks that builder is able to construct one using transitive traces from the other matrices. :return: """ dataset_builder = DatasetBuilder("MockDataset") dataset_builder.structure_definition["traces"]["0-2"] = None dataset_builder.build() trace_matrix_builder = dataset_builder.trace_matrix_builder graph = trace_matrix_builder.create_trace_matrix_dependency_graph() self.assertEqual( 3, len(trace_matrix_builder.trace_matrix_map.get_trace_ids())) self.assertIsNotNone(trace_matrix_builder.trace_matrix_map["0-2"]) self.assertIsNotNone( trace_matrix_builder.trace_matrix_map["0-2"].matrix) self.assertEqual( 1, trace_matrix_builder.trace_matrix_map["0-2"].matrix[0, 0]) self.assertEqual( 2, trace_matrix_builder.trace_matrix_map["0-2"].matrix.sum( axis=1).sum()) self.assertEqual(3, len(graph.es))
def test_create_transitive_trace_matrices_with_warc(self): dataset_builder = DatasetBuilder("SAMPLE_WARC") dataset_builder.build() trace_matrix_creator = dataset_builder.trace_matrix_builder graph = (dataset_builder.trace_matrix_builder. create_trace_matrix_dependency_graph()) self.assertIsNotNone(trace_matrix_creator.trace_matrix_map["1-2"]) self.assertEqual(3, len(graph.es))
def run(self) -> Table: with create_loading_bar( EXPERIMENT_NAME, DATASET_COLUMN_ORDER, len(DATASET_COLUMN_ORDER) ) as d_iterable: for dataset_name in d_iterable: builder = DatasetBuilder(dataset_name) builder.build() builder.export() print(f"{dataset_name} exported.") return Table()
def test_export_dataset(self): """ Tests that after MockDataset is exported all required folders have been updated. :return: """ # Setup dataset_name = "MockDataset" dataset_builder = DatasetBuilder(dataset_name) dataset_builder.build() # Work dataset_builder.export() folders = ["Artifacts", "Oracles"] for folder_rel_path in folders: path_to_folder = os.path.join( PATH_TO_SAMPLE_DATASETS, dataset_name, folder_rel_path ) check_folder_has_updated(path_to_folder)
def test_normalize_original_matrices(self): db = DatasetBuilder("MockDataset") db.build() self.assertEqual(1, db.trace_matrix_builder["0-2"].matrix[0][2])
from api.datasets.builder.dataset_builder import DatasetBuilder from api.datasets.dataset import Dataset from api.tracer import Tracer DATASET_NAME = "IllustrativeExample" TOP_TECHNIQUE_NAME = "(. (VSM NT) (0 1))" BOTTOM_TECHNIQUE_NAME = "(. (VSM NT) (1 2))" DIRECT_TECHNIQUE_NAME = "(. (VSM NT) (0 2))" TECHNIQUE_NAME = "(x (MAX INDEPENDENT) ((. (VSM NT) (0 1)) (. (VSM NT) (1 2))))" REBUILD = False if __name__ == "__main__": if REBUILD: dataset_builder = DatasetBuilder(DATASET_NAME) dataset_builder.build() dataset_builder.export() dataset = Dataset(DATASET_NAME) tracer = Tracer() top_technique_data = tracer.get_technique_data(DATASET_NAME, TOP_TECHNIQUE_NAME) bottom_technique_data = tracer.get_technique_data(DATASET_NAME, BOTTOM_TECHNIQUE_NAME) direct_technique_data = tracer.get_technique_data(DATASET_NAME, DIRECT_TECHNIQUE_NAME) top_score = top_technique_data.similarity_matrix[0][0] bottom_score = bottom_technique_data.similarity_matrix[0][0] transitive_score = top_score * bottom_score direct_score = direct_technique_data.similarity_matrix[0][0]