aboutsummaryrefslogtreecommitdiff
path: root/tests/unit/computations/test_parsers.py
blob: f05f7668adc1d34aec74ed39471e151e9af2a210 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
"""Test cases for procedures defined in computations.parsers"""
import unittest
import os

import pytest

from gn3.computations.parsers import parse_genofile


class TestParsers(unittest.TestCase):
    """Test cases for some various parsers"""

    @pytest.mark.unit_test
    def test_parse_genofile_without_existing_file(self):
        """Assert that an error is raised if the genotype file is absent"""
        self.assertRaises(FileNotFoundError, parse_genofile,
                          "/non-existent-file")

    @pytest.mark.unit_test
    def test_parse_genofile_with_existing_file(self):
        """Test that a genotype file is parsed correctly"""
        samples = ["bxd1", "bxd2"]
        genotypes = [
            {"chr": "1", "locus": "rs31443144",
             "cm": "1.50", "mb": "3.010274",
             "values": [-1, -1],
             "dicvalues": {'bxd1': -1, 'bxd2': -1}},
            {"chr": "2", "locus": "rs27644551",
             "cm": "93.26", "mb": "173.542999",
             "values": [1, 1],
             "dicvalues": {'bxd1': 1, 'bxd2': 1}},
            {"chr": "3", "locus": "rs31187985",
             "cm": "17.12", "mb": "41.921845",
             "values": [1, 1],
             "dicvalues": {'bxd1': 1, 'bxd2': 1}},
            {"chr": "4", "locus": "rs30254612",
             "cm": "2.15", "mb": "3.718812",
             "values": [-1, 1],
             "dicvalues": {'bxd1': -1, 'bxd2': 1}},
            {"chr": "5", "locus": "UNCHS047057",
             "cm": "3.10", "mb": "4.199559",
             "values": [-1, -1],
             "dicvalues": {'bxd1': -1, 'bxd2': -1}},
            {"chr": "X", "locus": "ChrXp_no_data",
             "cm": "1.40", "mb": "3.231738",
             "values": [1, -1],
             "dicvalues": {'bxd1': 1, 'bxd2': -1}},
            {"chr": "X", "locus": "Affy_17539964",
             "cm": "1.40", "mb": "7.947581",
             "values": [1, -1],
             "dicvalues": {'bxd1': 1, 'bxd2': -1}},
        ]
        test_genotype_file = os.path.abspath(os.path.join(
            os.path.dirname(__file__),
            "../test_data/genotype.txt"
        ))
        self.assertEqual(parse_genofile(
            test_genotype_file), (samples, genotypes))