1212 exclude_subject_prefixes ,
1313 exclude_triples ,
1414 keep_object_prefixes ,
15- keep_prefixes ,
15+ keep_prefixes_both ,
16+ keep_prefixes_either ,
1617 keep_references_both ,
1718 keep_references_either ,
1819 keep_subject_prefixes ,
1920 keep_triples_by_hash ,
2021)
2122from curies .vocabulary import exact_match , subclass_of
2223
24+ p1 , p2 , p3 = "DOID" , "mesh" , "umls"
2325c1 , c2 , c3 , c4 = "DOID:0050577" , "mesh:C562966" , "umls:C4551571" , "DOID:225"
2426r1 , r2 , r3 , r4 = (Reference .from_curie (c ) for c in [c1 , c2 , c3 , c4 ])
2527m1 = Triple .from_curies (c1 , exact_match .curie , c2 )
@@ -51,18 +53,21 @@ def assert_triple_lists(self, expected: list[Triple], actual: Iterable[Triple])
5153
5254 def test_exclude_object_prefixes (self ) -> None :
5355 """Test excluding object prefixes."""
56+ self .assert_triple_lists ([m1 ], exclude_object_prefixes (M123 , "umls" ))
5457 self .assert_triple_lists ([m1 ], exclude_object_prefixes (M123 , {"umls" }))
5558 self .assert_triple_lists ([m2 , m3 ], exclude_object_prefixes (M123 , {"mesh" }))
5659 self .assert_triple_lists (M123 , exclude_object_prefixes (M123 , {"DOID" }))
5760
5861 def test_exclude_prefixes (self ) -> None :
5962 """Test excluding prefixes."""
63+ self .assert_triple_lists ([m1 ], exclude_prefixes (M123 , "umls" ))
6064 self .assert_triple_lists ([m1 ], exclude_prefixes (M123 , {"umls" }))
6165 self .assert_triple_lists ([m2 ], exclude_prefixes (M123 , {"DOID" }))
6266 self .assert_triple_lists ([m3 ], exclude_prefixes (M123 , {"mesh" }))
6367
6468 def test_exclude_subject_prefixes (self ) -> None :
6569 """Test excluding subject prefixes."""
70+ self .assert_triple_lists ([m2 ], exclude_subject_prefixes (M123 , "DOID" ))
6671 self .assert_triple_lists ([m2 ], exclude_subject_prefixes (M123 , {"DOID" }))
6772 self .assert_triple_lists (M123 , exclude_subject_prefixes (M123 , {"umls" }))
6873 self .assert_triple_lists ([m1 , m3 ], exclude_subject_prefixes (M123 , {"mesh" }))
@@ -78,18 +83,33 @@ def test_exclude_triples(self) -> None:
7883
7984 def test_keep_object_prefixes (self ) -> None :
8085 """Test keeping object prefixes."""
86+ self .assert_triple_lists ([m2 , m3 ], keep_object_prefixes (M123 , "umls" ))
8187 self .assert_triple_lists ([m2 , m3 ], keep_object_prefixes (M123 , {"umls" }))
8288
83- def test_keep_prefixes (self ) -> None :
89+ def test_keep_prefixes_both (self ) -> None :
8490 """Test keeping prefixes."""
85- self .assert_triple_lists ([], keep_prefixes (M123 , {"NOPE" , "also nope" }))
86- self .assert_triple_lists ([m1 ], keep_prefixes (M123 , {"DOID" , "mesh" }))
87- self .assert_triple_lists ([m1 ], keep_prefixes (M123 , {"DOID" , "umls" }))
88- self .assert_triple_lists ([m1 ], keep_prefixes (M123 , {"mesh" , "umls" }))
89- self .assert_triple_lists (M123 , keep_prefixes (M123 , {"DOID" , "umls" , "mesh" }))
91+ with self .assertRaises (ValueError ):
92+ keep_prefixes_both (M123 , {"DOID" })
93+ self .assert_triple_lists ([], keep_prefixes_both (M123 , {"NOPE" , "also nope" }))
94+ self .assert_triple_lists ([m1 ], keep_prefixes_both (M123 , {"DOID" , "mesh" }))
95+ self .assert_triple_lists ([m3 ], keep_prefixes_both (M123 , {"DOID" , "umls" }))
96+ self .assert_triple_lists ([m2 ], keep_prefixes_both (M123 , {"mesh" , "umls" }))
97+ self .assert_triple_lists (M123 , keep_prefixes_both (M123 , {"DOID" , "umls" , "mesh" }))
98+
99+ def test_keep_prefixes_either (self ) -> None :
100+ """Test keeping prefixes."""
101+ self .assert_triple_lists ([], keep_prefixes_either (M123 , {"NOPE" , "also nope" }))
102+ self .assert_triple_lists ([m1 , m2 ], keep_prefixes_either (M123 , "mesh" ))
103+ self .assert_triple_lists ([m1 , m3 ], keep_prefixes_either (M123 , "DOID" ))
104+ self .assert_triple_lists ([m2 , m3 ], keep_prefixes_either (M123 , "umls" ))
105+ self .assert_triple_lists ([m1 , m2 , m3 ], keep_prefixes_either (M123 , {"DOID" , "mesh" }))
106+ self .assert_triple_lists ([m1 , m2 , m3 ], keep_prefixes_either (M123 , {"DOID" , "umls" }))
107+ self .assert_triple_lists ([m1 , m2 , m3 ], keep_prefixes_either (M123 , {"mesh" , "umls" }))
108+ self .assert_triple_lists (M123 , keep_prefixes_either (M123 , {"DOID" , "umls" , "mesh" }))
90109
91110 def test_keep_subject_prefixes (self ) -> None :
92111 """Test keeping subject prefixes."""
112+ self .assert_triple_lists ([m1 , m3 ], keep_subject_prefixes (M123 , "DOID" ))
93113 self .assert_triple_lists ([m1 , m3 ], keep_subject_prefixes (M123 , {"DOID" }))
94114
95115 def test_keep_triple_by_hash (self ) -> None :
@@ -106,6 +126,7 @@ def test_keep_triple_by_hash(self) -> None:
106126
107127 def test_keep_references_either (self ) -> None :
108128 """Test keeping references."""
129+ self .assert_triple_lists ([m1 , m3 ], keep_references_either (M123 , r1 ))
109130 self .assert_triple_lists ([m1 , m3 ], keep_references_either (M123 , [r1 ]))
110131 self .assert_triple_lists ([m1 , m2 ], keep_references_either (M123 , [r2 ]))
111132 self .assert_triple_lists ([m2 , m3 ], keep_references_either (M123 , [r3 ]))
@@ -115,13 +136,16 @@ def test_keep_references_either(self) -> None:
115136
116137 def test_keep_references_both (self ) -> None :
117138 """Test keeping references."""
139+ with self .assertRaises (ValueError ):
140+ keep_references_both (M123 , [r1 ])
118141 self .assert_triple_lists ([m1 ], keep_references_both (M123 , [r1 , r2 ]))
119142 self .assert_triple_lists ([m2 ], keep_references_both (M123 , [r2 , r3 ]))
120143 self .assert_triple_lists ([m3 ], keep_references_both (M123 , [r1 , r3 ]))
121144 self .assert_triple_lists (M123 , keep_references_both (M123 , [r1 , r2 , r3 ]))
122145
123146 def test_exclude_references (self ) -> None :
124147 """Test exclude references."""
148+ self .assert_triple_lists ([m2 ], exclude_references (M123 , r1 ))
125149 self .assert_triple_lists ([m2 ], exclude_references (M123 , [r1 ]))
126150 self .assert_triple_lists ([m3 ], exclude_references (M123 , [r2 ]))
127151 self .assert_triple_lists ([m1 ], exclude_references (M123 , [r3 ]))
0 commit comments