def test_ssl2ihh_a(): # 2 haplotypes, 1 pair ssl = np.array([3], dtype='i4') gaps = np.array([1, 2, 4], dtype='f8') vidx = 3 min_ehh = 0 expect = (4 * (1 + 1) / 2) + (2 * (1 + 1) / 2) + (1 * (1 + 0) / 2) actual = ssl2ihh(ssl, max(ssl), vidx, gaps, min_ehh) eq(expect, actual)
def test_ssl2ihh_h(): # 3 haplotypes, 3 pairs ssl = np.array([0, 1, 3], dtype='i4') gaps = np.array([1, 2, 4], dtype='f8') vidx = 3 min_ehh = 0.5 expect = 4 * (2 / 3 + 1 / 3) / 2 actual = ssl2ihh(ssl, max(ssl), vidx, gaps, min_ehh) eq(expect, actual)
def test_ssl2ihh_f(): # 2 haplotypes, 1 pair # never falls to min_ehh ssl = np.array([4], dtype='i4') gaps = np.array([1, 2, 4], dtype='f8') vidx = 3 min_ehh = 0 actual = ssl2ihh(ssl, max(ssl), vidx, gaps, min_ehh) assert np.isnan(actual), actual
def test_ssl2ihh_h(): # 3 haplotypes, 3 pairs ssl = np.array([0, 1, 3], dtype='i4') gaps = np.array([1, 2, 4], dtype='f8') vidx = 3 min_ehh = 0.5 expect = 4 * (2/3 + 1/3) / 2 actual = ssl2ihh(ssl, max(ssl), vidx, gaps, min_ehh) eq(expect, actual)
def test_ssl2ihh_g(): # 2 haplotypes, 1 pair # never falls to min_ehh, but include_edges ssl = np.array([4], dtype='i4') gaps = np.array([1, 2, 4], dtype='f8') vidx = 3 min_ehh = 0 expect = (4 + 2 + 1) actual = ssl2ihh(ssl, max(ssl), vidx, gaps, min_ehh, include_edges=True) eq(expect, actual)
def test_ssl2ihh_e(): # 2 haplotypes, 1 pair # no matches beyond current variant ssl = np.array([1], dtype='i4') gaps = np.array([1, 2, 4], dtype='f8') vidx = 3 min_ehh = 0 expect = 4 * (1 + 0) / 2 actual = ssl2ihh(ssl, max(ssl), vidx, gaps, min_ehh) eq(expect, actual)
def test_ssl2ihh_d(): # 3 haplotypes, 3 pairs ssl = np.array([0, 1, 3], dtype='i4') gaps = np.array([1, 2, 4], dtype='f8') vidx = 3 min_ehh = 0 expect = (4 * (2/3 + 1/3) / 2) + (2 * (1/3 + 1/3) / 2) + \ (1 * (1/3 + 0) / 2) actual = ssl2ihh(ssl, max(ssl), vidx, gaps, min_ehh) eq(expect, actual)
def test_ssl2ihh_c(): # 3 haplotypes, 3 pairs ssl = np.array([3, 2, 1], dtype='i4') gaps = np.array([1, 2, 4], dtype='f8') vidx = 3 min_ehh = 0 expect = (4 * (1 + 2/3) / 2) + (2 * (2/3 + 1/3) / 2) + \ (1 * (1/3 + 0) / 2) actual = ssl2ihh(ssl, max(ssl), vidx, gaps, min_ehh) assert expect == actual