def test_combine_codelists(): list_1 = codelist(["A", "B", "C"], system="ctv3") list_2 = codelist(["X", "Y", "Z"], system="ctv3") combined = combine_codelists(list_1, list_2) expected = codelist(["A", "B", "C", "X", "Y", "Z"], system="ctv3") assert combined == expected assert combined.system == expected.system
def test_combine_codelists_with_categories(): list_1 = codelist([("A", "foo"), ("B", "bar")], system="icd10") list_2 = codelist([("X", "foo"), ("Y", "bar")], system="icd10") combined = combine_codelists(list_1, list_2) expected = codelist([("A", "foo"), ("B", "bar"), ("X", "foo"), ("Y", "bar")], system="icd10") assert combined == expected assert combined.system == expected.system
def test_filter_codes_by_category(): codes = codelist([("1", "A"), ("2", "B"), ("3", "A"), ("4", "C")], "ctv3") filtered = filter_codes_by_category(codes, include=["B", "C"]) assert filtered.system == codes.system assert filtered == [("2", "B"), ("4", "C")]
def test_combine_codelists_raises_error_on_inconsistent_categorisation(): list_1 = codelist([("A", "foo"), ("B", "bar")], system="icd10") list_2 = codelist([("X", "foo"), ("B", "foo")], system="icd10") with pytest.raises(ValueError): combine_codelists(list_1, list_2)
def test_combine_codelists_raises_error_for_mixed_systems(): list_1 = codelist(["A", "B", "C"], system="ctv3") list_2 = codelist(["X", "Y", "Z"], system="icd10") with pytest.raises(ValueError): combine_codelists(list_1, list_2)