From 6b2002f236188e3c2571af18642527b156ed60e0 Mon Sep 17 00:00:00 2001 From: Frederick Muriuki Muriithi Date: Thu, 4 Jan 2024 17:08:47 +0300 Subject: Parse cross information from R/qtl2 bundle. --- tests/r_qtl/test_files/test_cross_info_01.zip | Bin 0 -> 597 bytes tests/r_qtl/test_files/test_cross_info_02.zip | Bin 0 -> 778 bytes tests/r_qtl/test_r_qtl2_cross_information.py | 35 ++++++++++++++++++++++++++ 3 files changed, 35 insertions(+) create mode 100644 tests/r_qtl/test_files/test_cross_info_01.zip create mode 100644 tests/r_qtl/test_files/test_cross_info_02.zip create mode 100644 tests/r_qtl/test_r_qtl2_cross_information.py (limited to 'tests/r_qtl') diff --git a/tests/r_qtl/test_files/test_cross_info_01.zip b/tests/r_qtl/test_files/test_cross_info_01.zip new file mode 100644 index 0000000..1211f96 Binary files /dev/null and b/tests/r_qtl/test_files/test_cross_info_01.zip differ diff --git a/tests/r_qtl/test_files/test_cross_info_02.zip b/tests/r_qtl/test_files/test_cross_info_02.zip new file mode 100644 index 0000000..dddd281 Binary files /dev/null and b/tests/r_qtl/test_files/test_cross_info_02.zip differ diff --git a/tests/r_qtl/test_r_qtl2_cross_information.py b/tests/r_qtl/test_r_qtl2_cross_information.py new file mode 100644 index 0000000..f424267 --- /dev/null +++ b/tests/r_qtl/test_r_qtl2_cross_information.py @@ -0,0 +1,35 @@ +"""Test loading of cross information.""" + +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_cross_info_01.zip", + ({"id": "1", "cross_direction": 1}, + {"id": "2", "cross_direction": 1}, + {"id": "3", "cross_direction": 1}, + {"id": "71", "cross_direction": 0}, + {"id": "72", "cross_direction": 0}, + {"id": "146", "cross_direction": 1}, + {"id": "147", "cross_direction": 1}, + {"id": "148", "cross_direction": 1})), + ("tests/r_qtl/test_files/test_cross_info_02.zip", + ({"id": "1", "cross_direction": 1}, + {"id": "2", "cross_direction": 1}, + {"id": "3", "cross_direction": 1}, + {"id": "71", "cross_direction": 0}, + {"id": "72", "cross_direction": 0}, + {"id": "146", "cross_direction": 1}, + {"id": "147", "cross_direction": 1}, + {"id": "148", "cross_direction": 1})))) +def test_parse_cross_info(filepath, expected): + """Test parsing of cross information.""" + with ZipFile(Path(filepath).absolute(), "r") as zfile: + assert tuple(rqtl2.cross_information( + zfile, rqtl2.control_data(zfile))) == expected -- cgit v1.2.3