--- a +++ b/tests/pipelines/ner/test_tnm.py @@ -0,0 +1,37 @@ +from edsnlp.utils.examples import parse_example + +examples = [ + "TNM: <ent norm=aTxN1M0>aTxN1M0</ent>", + "TNM: <ent norm=pTxN1M0>p Tx N1M 0</ent>", + "TNM: <ent norm='pTxN1M0 (UICC 2020)'>p Tx N1M 0 (UICC 20)</ent>", + "TNM: <ent norm='aTxN1M0 (UICC 1968)'>aTxN1M0 (UICC 68)</ent>", + "TNM: <ent norm=aTxN1R2>aTxN1 R2</ent>", + "TNM: <ent norm='pT2cN0R0 (TNM 2010)'>pT2c N0 R0 (TNM 2010)</ent>", + "TNM: <ent norm=aTxN1M0>aTx / N1 / M0</ent>", + "TNM: <ent norm=pT2N1mi>pT2 N1mi</ent>", + "TNM: <ent norm=pT1mN1M0>pT1(m)N1 M0</ent>", + "TNM: <ent norm=pT1bN0sn>pT1bN0(sn)</ent>", + "TNM: <ent norm=pT1N1M0>pT1 pN1 M0</ent>\n \n ", + "TNM: <ent norm=aTxN1M0>aTxN1M0</ent> ", + "TNM: <ent norm=cT3N0M0>cT3N0M0</ent> \n \n", + "TNM: PT", + "TNM: p T \n", + "TNM: a T \n", + "TNM: <ent norm=p>pT</ent> \n \n0", +] + + +def test_scores(blank_nlp): + blank_nlp.add_pipe("eds.tnm") + + for example in examples: + text, entities = parse_example(example=example) + + doc = blank_nlp(text) + + assert len(entities) == len(doc.ents) + + for entity, ent in zip(entities, doc.ents): + norm = entity.modifiers[0].value + assert ent.text == text[entity.start_char : entity.end_char] + assert norm == ent._.value.norm()