diff options
author | Frederick Muriuki Muriithi | 2024-02-05 06:08:19 +0300 |
---|---|---|
committer | Frederick Muriuki Muriithi | 2024-02-05 06:08:19 +0300 |
commit | 635cf832f4717da6e8e7ef273a675a4ceea42ed0 (patch) | |
tree | a62c9b0e5cc7132fa5cf373ea52982f957f05b94 /tests/r_qtl | |
parent | 650938cbdac6d5f0e779275082577543ab1c0e47 (diff) | |
download | gn-uploader-635cf832f4717da6e8e7ef273a675a4ceea42ed0.tar.gz |
Retrieve list of all files, and list of missing files
Add QC a function to list all files listed in the control file, and
another to list only the files missing from the bundle.
Diffstat (limited to 'tests/r_qtl')
-rw-r--r-- | tests/r_qtl/test_files/allfilesmissing_listmembers.zip | bin | 0 -> 429 bytes | |||
-rw-r--r-- | tests/r_qtl/test_files/allfilesmissing_mixedmembers.zip | bin | 0 -> 413 bytes | |||
-rw-r--r-- | tests/r_qtl/test_files/allfilesmissing_stringmembers.zip | bin | 0 -> 370 bytes | |||
-rw-r--r-- | tests/r_qtl/test_files/somefilesmissing_mixedmembers.zip | bin | 0 -> 1913 bytes | |||
-rw-r--r-- | tests/r_qtl/test_r_qtl2_qc.py | 87 |
5 files changed, 87 insertions, 0 deletions
diff --git a/tests/r_qtl/test_files/allfilesmissing_listmembers.zip b/tests/r_qtl/test_files/allfilesmissing_listmembers.zip Binary files differnew file mode 100644 index 0000000..8cdbe07 --- /dev/null +++ b/tests/r_qtl/test_files/allfilesmissing_listmembers.zip diff --git a/tests/r_qtl/test_files/allfilesmissing_mixedmembers.zip b/tests/r_qtl/test_files/allfilesmissing_mixedmembers.zip Binary files differnew file mode 100644 index 0000000..9278440 --- /dev/null +++ b/tests/r_qtl/test_files/allfilesmissing_mixedmembers.zip diff --git a/tests/r_qtl/test_files/allfilesmissing_stringmembers.zip b/tests/r_qtl/test_files/allfilesmissing_stringmembers.zip Binary files differnew file mode 100644 index 0000000..2b356ec --- /dev/null +++ b/tests/r_qtl/test_files/allfilesmissing_stringmembers.zip diff --git a/tests/r_qtl/test_files/somefilesmissing_mixedmembers.zip b/tests/r_qtl/test_files/somefilesmissing_mixedmembers.zip Binary files differnew file mode 100644 index 0000000..b9320fc --- /dev/null +++ b/tests/r_qtl/test_files/somefilesmissing_mixedmembers.zip diff --git a/tests/r_qtl/test_r_qtl2_qc.py b/tests/r_qtl/test_r_qtl2_qc.py new file mode 100644 index 0000000..5fcccf5 --- /dev/null +++ b/tests/r_qtl/test_r_qtl2_qc.py @@ -0,0 +1,87 @@ +"""Test that the QC functions work as expected""" +from pathlib import Path + +import pytest +from zipfile import ZipFile + +from r_qtl import r_qtl2 as rqtl2 +from r_qtl import r_qtl2_qc as qc + +###### DO NOT COMMIT THIS ###### +from quality_control.debug import __pk__ +###### END: DO NOT COMMIT THIS ###### + +@pytest.mark.unit_test +@pytest.mark.parametrize( + "filepath,expected", + (("tests/r_qtl/test_files/empty_control_file_yaml.zip", + tuple()), + ("tests/r_qtl/test_files/empty_control_file_json.zip", + tuple()), + ("tests/r_qtl/test_files/allfilesmissing_stringmembers.zip", + ("geno.csv", "fgeno.csv", "pheno.csv", "covar.csv", "phenocovar.csv", + "gmap.csv", "pmap.csv", "phenose.csv", "sex.csv", "crossinfo.csv")), + ("tests/r_qtl/test_files/allfilesmissing_listmembers.zip", + ("geno01.csv", "geno02.csv", "fgeno01.csv", "fgeno02.csv", "fgeno03.csv", + "pheno01.csv", "pheno02.csv", "covar01.csv", "covar02.csv", + "phenocovar01.csv", "phenocovar02.csv", "phenocovar03.csv", + "phenocovar04.csv", "gmap01.csv", "gmap02.csv", "pmap01.csv", "pmap02.csv", + "phenose01.csv", "phenose02.csv", "sex01.csv", "sex02.csv", "sex03.csv", + "crossinfo01.csv", "crossinfo02.csv")), + ("tests/r_qtl/test_files/allfilesmissing_mixedmembers.zip", + ("geno01.csv", "geno02.csv", "fgeno01.csv", "fgeno02.csv", "fgeno03.csv", + "pheno01.csv", "pheno02.csv", "covar.csv", "phenocovar.csv", + "gmap01.csv", "gmap02.csv", "pmap01.csv", "pmap02.csv", "phenose01.csv", + "phenose02.csv", "sex01.csv", "sex02.csv", "sex03.csv", + "crossinfo.csv")), + ("tests/r_qtl/test_files/somefilesmissing_mixedmembers.zip", + ("geno01.csv", "geno02.csv", "fgeno01.csv", "fgeno02.csv", "fgeno03.csv", + "pheno01.csv", "pheno02.csv", "covar.csv", "phenocovar.csv", + "gmap01.csv", "gmap02.csv", "pmap01.csv", "pmap02.csv", "phenose01.csv", + "phenose02.csv", "sex01.csv", "sex02.csv", "sex03.csv", + "crossinfo.csv")))) +def test_bundle_files_list(filepath, expected): + """ + GIVEN: R/qtl2 bundle with a control file listing files + WHEN: `bundle_files_list` is called on the bundle + THEN: verify that ALL files listed in the control file are returned. + """ + with ZipFile(Path(filepath).absolute(), "r") as zfile: + assert qc.bundle_files_list( + zfile, rqtl2.control_data(zfile)) == expected + +@pytest.mark.unit_test +@pytest.mark.parametrize( + "filepath,expected", + (("tests/r_qtl/test_files/empty_control_file_yaml.zip", + tuple()), + ("tests/r_qtl/test_files/empty_control_file_json.zip", + tuple()), + ("tests/r_qtl/test_files/allfilesmissing_stringmembers.zip", + ("geno.csv", "fgeno.csv", "pheno.csv", "covar.csv", "phenocovar.csv", + "gmap.csv", "pmap.csv", "phenose.csv", "sex.csv", "crossinfo.csv")), + ("tests/r_qtl/test_files/allfilesmissing_listmembers.zip", + ("geno01.csv", "geno02.csv", "fgeno01.csv", "fgeno02.csv", "fgeno03.csv", + "pheno01.csv", "pheno02.csv", "covar01.csv", "covar02.csv", + "phenocovar01.csv", "phenocovar02.csv", "phenocovar03.csv", + "phenocovar04.csv", "gmap01.csv", "gmap02.csv", "pmap01.csv", "pmap02.csv", + "phenose01.csv", "phenose02.csv", "sex01.csv", "sex02.csv", "sex03.csv", + "crossinfo01.csv", "crossinfo02.csv")), + ("tests/r_qtl/test_files/allfilesmissing_mixedmembers.zip", + ("geno01.csv", "geno02.csv", "fgeno01.csv", "fgeno02.csv", "fgeno03.csv", + "pheno01.csv", "pheno02.csv", "covar.csv", "phenocovar.csv", + "gmap01.csv", "gmap02.csv", "pmap01.csv", "pmap02.csv", "phenose01.csv", + "phenose02.csv", "sex01.csv", "sex02.csv", "sex03.csv", + "crossinfo.csv")), + ("tests/r_qtl/test_files/somefilesmissing_mixedmembers.zip", + ("fgeno01.csv", "covar.csv", "gmap01.csv", "gmap02.csv", "pmap01.csv", + "pmap02.csv", "phenose02.csv", "sex03.csv", "crossinfo.csv")))) +def test_missing_files(filepath, expected): + """ + GIVEN: R/qtl2 bundle with a control file listing files + WHEN: `missing_files` is called on the bundle + THEN: verify that ALL files listed in the control file, that do not actually + exist in the bundle are returned. + """ + with ZipFile(Path(filepath).absolute(), "r") as zfile: + assert qc.missing_files(zfile) == expected |