Skip to content

Commit

Permalink
refactor test to use dataclass instead of tuples
Browse files Browse the repository at this point in the history
  • Loading branch information
C-K-Loan committed Nov 5, 2023
1 parent 8d99491 commit 8653992
Showing 1 changed file with 42 additions and 19 deletions.
61 changes: 42 additions & 19 deletions tests/base_model_test.py
Original file line number Diff line number Diff line change
@@ -1,27 +1,50 @@
from dataclasses import dataclass
from typing import Optional, List

import pytest

from tests.test_utils import model_and_output_levels_test

models_to_test = [
("chunk", 'en', 'chunker'
, 'generic', None, 'open_source'),
("ngram", 'en', 'chunker', 'generic', None, 'open_source'),
("zh.segment_words", 'zh', 'tokenizer', 'generic', None, 'open_source'),
("zh.tokenize", 'zh', 'tokenizer', 'generic', None, 'open_source'),
("tokenize", 'en', 'tokenizer', 'generic', None, 'open_source'),
("en.assert.biobert", 'en', 'assertion', 'medical', None, 'healthcare'),
("en.assert.biobert", 'en', 'assertion', 'medical', None, 'healthcare'),
("relation.drug_drug_interaction", 'en', 'relation', 'medical',
['chunk', 'tokens', 'embeddings', 'document', 'relation'],
'healthcare'),
("pdf2table", 'en', 'table_extractor', 'PPT_table', None, 'ocr'),
("ppt2table", 'en', 'table_extractor', 'PDF_table', None, 'ocr'),
("doc2table", 'en', 'table_extractor', 'DOC_table', None, 'ocr'),

@dataclass
class NluTest:
nlu_ref: str
lang: str
test_group: str
input_data_type: str
library: str
output_levels: Optional[List[str]] = None


models_to_test = [
NluTest(nlu_ref="chunk", lang='en', test_group='chunker', input_data_type='generic', library='open_source'),
NluTest(nlu_ref="ngram", lang='en', test_group='chunker', input_data_type='generic', library='open_source'),
NluTest(nlu_ref="zh.segment_words", lang='zh', test_group='tokenizer', input_data_type='generic',
library='open_source'),
NluTest(nlu_ref="zh.tokenize", lang='zh', test_group='tokenizer', input_data_type='generic',
library='open_source'),
NluTest(nlu_ref="tokenize", lang='en', test_group='tokenizer', input_data_type='generic',
library='open_source'),
NluTest(nlu_ref="en.assert.biobert", lang='en', test_group='assertion', input_data_type='medical',
library='healthcare'),
NluTest(nlu_ref="relation.drug_drug_interaction", lang='en', test_group='relation', input_data_type='medical',
output_levels=['chunk', 'tokens', 'embeddings', 'document', 'relation'], library='healthcare'),
NluTest(nlu_ref="pdf2table", lang='en', test_group='table_extractor', input_data_type='PPT_table',
library='ocr'),
NluTest(nlu_ref="ppt2table", lang='en', test_group='table_extractor', input_data_type='PDF_table',
library='ocr'),
NluTest(nlu_ref="doc2table", lang='en', test_group='table_extractor', input_data_type='DOC_table',
library='ocr'),
]


@pytest.mark.parametrize("nlu_ref, lang, test_group, input_data_type, output_levels, library", models_to_test)
def test_model(nlu_ref, lang, test_group, input_data_type, output_levels, library):
model_and_output_levels_test(nlu_ref=nlu_ref, lang=lang, test_group=test_group, output_levels=output_levels,
input_data_type=input_data_type, library=library)
@pytest.mark.parametrize("model_to_test", models_to_test)
def test_model(model_to_test: NluTest):
model_and_output_levels_test(
nlu_ref=model_to_test.nlu_ref,
lang=model_to_test.lang,
test_group=model_to_test.test_group,
output_levels=model_to_test.output_levels,
input_data_type=model_to_test.input_data_type,
library=model_to_test.library
)

0 comments on commit 8653992

Please sign in to comment.