def test_dunder_dir(self): d = _CID_Dict(2) assert "Afferent" in dir(d) assert "Vertical" in dir(d) assert "__contains__" in dir(d) assert "trait_names" in dir(d) assert isinstance(dir(d), list)
def test_getattr_match_multiple_codes_raises(self): # Same attribute for multiple codes d = _CID_Dict(12300) msg = (r"'LeftVentricularInternalDiastolicDimensionBSA' " r"has multiple code matches in CID 12300: '80009-4', '80010-2'") with pytest.raises(AttributeError, match=msg): d.LeftVentricularInternalDiastolicDimensionBSA
def test_dir(self): d = _CID_Dict(2) assert isinstance(d.dir(), list) assert "Afferent" in d.dir() assert "Vertical" in d.dir() assert d.dir("xyz") == [] assert "Axial" in d.dir("ia") assert "Superficial" in d.dir("ia") assert "Axial" in d.dir("IA") assert "Superficial" in d.dir("IA")
def test_getattr_ambiguous_attr_raises(self, ambiguous_scheme): attr, cid = ambiguous_scheme msg = f"Multiple schemes found for '{attr}' in CID 6129: SCT, FOO" with pytest.raises(AttributeError, match=msg): getattr(_CID_Dict(cid), attr)
def test_getattr_no_match_raises(self): d = _CID_Dict(2) msg = r"'XYZ' not found in CID 2" with pytest.raises(AttributeError, match=msg): d.XYZ
def test_getattr_match(self): d = _CID_Dict(2) code = d.Afferent assert isinstance(code, Code) assert code.value == "49530007"
def test_repr(self): d = _CID_Dict(2) r = repr(d) assert "CID 2" in r assert "Afferent = Code(value='49530007'" in r assert "Vertical = Code(value='33096000'" in r
def test_str(self): d = _CID_Dict(2) s = str(d) assert "CID 2 (AnatomicModifier)" in s assert "Afferent 49530007 SCT Afferent" in s assert "Vertical 33096000 SCT Vertical" in s
def test_trait_names(self): d = _CID_Dict(2) assert isinstance(d.trait_names(), list) assert "Afferent" in d.trait_names() assert "Vertical" in d.trait_names()
def test_concepts(self): d = _CID_Dict(2) assert "Afferent" in d.concepts code = d.concepts["Afferent"] assert isinstance(code, Code) assert code.value == "49530007"