aboutsummaryrefslogtreecommitdiff
path: root/tests/r_qtl/test_r_qtl2_pheno.py
diff options
context:
space:
mode:
Diffstat (limited to 'tests/r_qtl/test_r_qtl2_pheno.py')
-rw-r--r--tests/r_qtl/test_r_qtl2_pheno.py33
1 files changed, 33 insertions, 0 deletions
diff --git a/tests/r_qtl/test_r_qtl2_pheno.py b/tests/r_qtl/test_r_qtl2_pheno.py
new file mode 100644
index 0000000..554d9c8
--- /dev/null
+++ b/tests/r_qtl/test_r_qtl2_pheno.py
@@ -0,0 +1,33 @@
+"""Test parsing of pheno files in a R/qtl2 bundle."""
+from pathlib import Path
+
+import pytest
+from zipfile import ZipFile
+
+from r_qtl import r_qtl2 as rqtl2
+
+@pytest.mark.unit_test
+@pytest.mark.parametrize(
+ "filepath,expected",
+ (("tests/r_qtl/test_files/test_pheno.zip",
+ ({"id": "1", "liver": "61.92", "spleen": "153.16"},
+ {"id": "2", "liver": "88.33", "spleen": "178.58"},
+ {"id": "3", "liver": "58", "spleen": "131.91"},
+ {"id": "4", "liver": "78.06", "spleen": "126.13"},
+ {"id": "5", "liver": "65.31", "spleen": "181.05"})),
+ ("tests/r_qtl/test_files/test_pheno_transposed.zip",
+ ({"id": "1", "liver": "61.92", "spleen": "153.16"},
+ {"id": "2", "liver": "88.33", "spleen": "178.58"},
+ {"id": "3", "liver": "58", "spleen": "131.91"},
+ {"id": "4", "liver": "78.06", "spleen": "126.13"},
+ {"id": "5", "liver": "65.31", "spleen": "181.05"}))))
+def test_parse_pheno_files(filepath, expected):
+ """Test parsing of 'pheno' files from the R/qtl2 bundle.
+
+ GIVEN: path to a R/qtl2 bundle
+ WHEN: the 'pheno' file is parsed
+ THEN: verify the parsed data is as expected
+ """
+ with ZipFile(Path(filepath).absolute(), "r") as zfile:
+ assert tuple(
+ rqtl2.phenotype_data(zfile, rqtl2.control_data(zfile))) == expected