|
9 | 9 | import pandas as pd |
10 | 10 |
|
11 | 11 | from semra import Mapping, MappingSet, ReasonedEvidence, Reference, SimpleEvidence |
12 | | -from semra.io import from_jsonl, from_pyobo, from_sssom_df, write_jsonl |
| 12 | +from semra.io import ( |
| 13 | + from_digraph, |
| 14 | + from_jsonl, |
| 15 | + from_multidigraph, |
| 16 | + from_pyobo, |
| 17 | + from_sssom_df, |
| 18 | + to_digraph, |
| 19 | + to_multidigraph, |
| 20 | + write_jsonl, |
| 21 | +) |
13 | 22 | from semra.rules import ( |
14 | 23 | BEN_ORCID, |
15 | 24 | CHAIN_MAPPING, |
@@ -44,7 +53,7 @@ def test_from_pyobo(self) -> None: |
44 | 53 | self.assertEqual("mesh", mapping.o.prefix) |
45 | 54 |
|
46 | 55 |
|
47 | | -class TestIO(unittest.TestCase): |
| 56 | +class TestSSSOM(unittest.TestCase): |
48 | 57 | """Tests for I/O functions.""" |
49 | 58 |
|
50 | 59 | def test_from_sssom_df(self) -> None: |
@@ -173,8 +182,12 @@ def test_from_sssom_df_with_license(self) -> None: |
173 | 182 | ) |
174 | 183 | self.assertEqual(expected_mappings, actual_mappings) |
175 | 184 |
|
176 | | - def test_jsonl(self) -> None: |
177 | | - """Test JSONL I/O.""" |
| 185 | + |
| 186 | +class TestIO(unittest.TestCase): |
| 187 | + """Test I/O funcitons.""" |
| 188 | + |
| 189 | + def setUp(self) -> None: |
| 190 | + """Set up the test case.""" |
178 | 191 | r1 = Reference.from_curie("mesh:C406527", name="R 115866") |
179 | 192 | r2 = Reference.from_curie("chebi:101854", name="talarozole") |
180 | 193 | r3 = Reference.from_curie("chembl.compound:CHEMBL459505", name="TALAROZOLE") |
@@ -214,13 +227,25 @@ def test_jsonl(self) -> None: |
214 | 227 | m3_e1 = ReasonedEvidence(justification=CHAIN_MAPPING, mappings=[m1, m2]) |
215 | 228 | m3 = Mapping.from_triple(t3, evidence=[m3_e1]) |
216 | 229 |
|
217 | | - mappings = [m1, m2, m3] |
| 230 | + self.mappings = [m1, m2, m3] |
218 | 231 |
|
| 232 | + def test_jsonl(self) -> None: |
| 233 | + """Test JSONL I/O.""" |
219 | 234 | with tempfile.TemporaryDirectory() as directory_: |
220 | 235 | for path in [ |
221 | 236 | Path(directory_).joinpath("test.jsonl"), |
222 | 237 | Path(directory_).joinpath("test.jsonl.gz"), |
223 | 238 | ]: |
224 | | - write_jsonl(mappings, path) |
| 239 | + write_jsonl(self.mappings, path) |
225 | 240 | new_mappings = from_jsonl(path, show_progress=False) |
226 | | - self.assertEqual(mappings, new_mappings) |
| 241 | + self.assertEqual(self.mappings, new_mappings) |
| 242 | + |
| 243 | + def test_digraph(self) -> None: |
| 244 | + """Test I/O to a directed graph.""" |
| 245 | + self.assertEqual(sorted(self.mappings), sorted(from_digraph(to_digraph(self.mappings)))) |
| 246 | + |
| 247 | + def test_multidigraph(self) -> None: |
| 248 | + """Test I/O with multi-directed graph.""" |
| 249 | + self.assertEqual( |
| 250 | + sorted(self.mappings), sorted(from_multidigraph(to_multidigraph(self.mappings))) |
| 251 | + ) |
0 commit comments