aboutsummaryrefslogtreecommitdiff
path: root/tests/unit/db
diff options
context:
space:
mode:
Diffstat (limited to 'tests/unit/db')
-rw-r--r--tests/unit/db/test_genotypes.py38
1 files changed, 37 insertions, 1 deletions
diff --git a/tests/unit/db/test_genotypes.py b/tests/unit/db/test_genotypes.py
index 4fa8a53..ba90191 100644
--- a/tests/unit/db/test_genotypes.py
+++ b/tests/unit/db/test_genotypes.py
@@ -1,11 +1,13 @@
"""Tests gn3.db.genotypes"""
from unittest import TestCase
-from gn3.db.genotypes import parse_genotype_labels, parse_genotype_header
+from gn3.db.genotypes import (
+ parse_genotype_labels, parse_genotype_header, parse_genotype_data_line)
class TestGenotypes(TestCase):
"""Tests for functions in `gn3.db.genotypes`."""
def test_parse_genotype_labels(self):
+ """Test that the genotype labels are parsed correctly."""
self.assertEqual(
parse_genotype_labels([
"@name: test_group\t", "@filler: test_filler ",
@@ -17,6 +19,7 @@ class TestGenotypes(TestCase):
("het", "test_het"), ("unk", "test_unk")))
def test_parse_genotype_header(self):
+ """Test that the genotype header is parsed correctly."""
for header, expected in [
[("Chr\tLocus\tcM\tMb\tBXD1\tBXD2\tBXD5\tBXD6\tBXD8\tBXD9\t"
"BXD11\tBXD12\tBXD13\tBXD14\tBXD15\tBXD16\tBXD18\tBXD19"),
@@ -35,3 +38,36 @@ class TestGenotypes(TestCase):
("nprgy", 13))]]:
with self.subTest(header=header):
self.assertEqual(parse_genotype_header(header), expected)
+
+ def test_parse_genotype_data_line(self):
+ """Test parsing of data lines."""
+ for line, geno_obj, parlist, expected in [
+ ["1\trs31443144\t1.50\t3.010274\tB\tB\tD\tD\tD\tB\tB\tD\tB\tB",
+ {"mat": "test_mat", "pat": "test_pat", "het": "test_het",
+ "unk": "test_unk", "cm_column": 2, "Mbmap": True,
+ "mb_column": 3},
+ tuple(),
+ (("chr", "1"), ("name", "rs31443144"), ("cM", 2.0),
+ ("Mb", 3.0),
+ ("genotype",
+ ("U", "U", "U", "U", "U", "U", "U", "U", "U", "U")))],
+ ["1\trs31443144\t1.50\t3.010274\tB\tB\tD\tD\tD\tB\tB\tD\tB\tB",
+ {"mat": "test_mat", "pat": "test_pat", "het": "test_het",
+ "unk": "test_unk", "cm_column": 2, "Mbmap": True,
+ "mb_column": 3},
+ ("some", "parlist", "content"),
+ (("chr", "1"), ("name", "rs31443144"), ("cM", 2.0),
+ ("Mb", 3.0),
+ ("genotype",
+ (-1, 1, "U", "U", "U", "U", "U", "U", "U", "U")))],
+ ["1\trs31443144\t1.50\t3.010274\tB\tB\tD\tH\tD\tB\tU\tD\tB\tB",
+ {"mat": "B", "pat": "D", "het": "H", "unk": "U",
+ "cm_column": 2, "Mbmap": True, "mb_column": 3},
+ tuple(),
+ (("chr", "1"), ("name", "rs31443144"), ("cM", 2.0),
+ ("Mb", 3.0),
+ ("genotype", (-1, -1, 1, 0, 1, -1, "U", 1, -1, -1)))]]:
+ with self.subTest(line = line):
+ self.assertEqual(
+ parse_genotype_data_line(line, geno_obj, parlist),
+ expected)