Ejemplo n.º 1
0
def _run_tests(args):
    logging.info(f"loading entity labels...")
    entity_labels = EntityLabelFileParser.create_from_file(args.entity_labels)

    logging.info(f"loading task categories...")
    categories = TaskCategoryFileParser.create_categories_from_file(
        args.test_set_config, entity_labels)

    logging.info(f"loading task configurations...")
    task_configurations = TaskConfigurationFileParser.create_configurations_from_file(
        args.test_set_config)

    logging.info(f"loading entity linkings...")
    entity_linkings = EntityLinkingFileParser.create_from_file(
        args.entity_mapping)

    logging.info(f"loading embeddings...")
    embeddings = EmbeddingFileParser.create_from_file(args.embeddings)

    test_configuration = TestConfiguration(embeddings, entity_linkings,
                                           entity_labels, categories,
                                           task_configurations)

    logging.info(f"starting test execution...")
    test_executor = TestExecutor(test_configuration)
    test_category_results = list(test_executor.run())

    logging.info(f"storing results...")

    logging.info(f"Result size: {len(test_category_results)}")
    args.test_results.parent.mkdir(parents=True, exist_ok=True)
    with bz2.BZ2File(str(args.test_results.absolute()), "w") as output_stream:
        pickle.dump(test_category_results, output_stream)
    def test_create_configurations_from_file_invalid_task_type(self):
        file = self._random_test_file()
        with open(file, "w+") as file_output:
            print("""
            configuration:
                task_configurations:
                    - task_configuration:
                        type: analogy
                        enabled: true
                    - task_configuration:
                        type: invalidTaskType
                        enabled: false""",
                  file=file_output)

        with pytest.raises(KeyError):
            TaskConfigurationFileParser.create_configurations_from_file(file)
    def test_create_configurations_from_file_invalid_boolean_value(self):
        file = self._random_test_file()
        with open(file, "w+") as file_output:
            print("""
            configuration:
                task_configurations:
                    - task_configuration:
                        type: analogy
                        enabled: true
                    - task_configuration:
                        type: cosine_neighborhood
                        enabled: invalidBool""",
                  file=file_output)

        with pytest.raises(KeyError):
            TaskConfigurationFileParser.create_configurations_from_file(file)
 def _create_test_configuration(self):
     task_configs = TaskConfigurationFileParser.create_configurations_from_file(
         Path(self.resource_directory, "configuration.yaml"))
     entity_linking = EntityLinkingFileParser.create_from_file(
         Path(self.resource_directory, "linking.csv"))
     embedding = EmbeddingFileParser.create_from_file(
         Path(self.resource_directory, "embedding"))
     entity_labels = EntityLabels()
     return TestConfiguration(embedding, entity_linking, entity_labels, [],
                              task_configs)
    def test_create_configurations_from_file_empty_configurations(self):
        file = self._random_test_file()
        with open(file, "w+") as file_output:
            print("""
            configuration:
                task_configurations:""",
                  file=file_output)

        task_configurations = TaskConfigurationFileParser.create_configurations_from_file(file)
        assert len(task_configurations) == 0
    def test_create_configurations_from_file(self):
        file = self._random_test_file()
        with open(file, "w+") as file_output:
            print("""
            configuration:
                task_configurations:
                    - task_configuration:
                        type: analogy
                        enabled: true
                    - task_configuration:
                        type: cosine_neighborhood
                        enabled: false""",
                  file=file_output)

        task_configurations = TaskConfigurationFileParser.create_configurations_from_file(file)
        assert len(task_configurations) == 2

        config = task_configurations[0]
        assert config.task_type == TaskType.ANALOGY
        assert config.enabled

        config = task_configurations[1]
        assert config.task_type == TaskType.COSINE_NEIGHBORHOOD
        assert not config.enabled