Пример #1
0
    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,
        )
Пример #2
0
    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))
Пример #3
0
 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))
Пример #4
0
 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()
Пример #5
0
    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)
Пример #6
0
 def test_normalize_original_matrices(self):
     db = DatasetBuilder("MockDataset")
     db.build()
     self.assertEqual(1, db.trace_matrix_builder["0-2"].matrix[0][2])
Пример #7
0
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]