def test_compute_ref_index_table(self): refIDs = [5,1,1,1,1,1,1,1,1,1,2,2,2,2,2] tbl = CS.computeRefIndexTable(array(refIDs)) utbl = [ 5, 0, 1, 1, 1, 10, 2, 10, 15 ] assert_equal(sum(tbl.ravel() == utbl), len(utbl))
def test_get_overlapping_ranges(self): for i in [100, 500]: for j in [.1, 1, 5, 10]: for k in range(0, 10): ar = generate_positions(i, j) idx = CS.computeIndicesDP(ar[:,0], ar[:,1]) aArray = hstack((ar, idx)) s = random.randint(0, i, 1) e = int(1 + random.exponential(30, 1)) x = RQ.getOverlappingRanges(aArray[:,0], aArray[:,1], aArray[:,2], aArray[:,3], s, s + e + 1) y = brute_force_search(aArray[:,0], aArray[:,1], aArray[:,2], aArray[:,3], s, s + e) assert(all(sort(x) == sort(y)))
def test_get_overlapping_ranges(self): for i in [100, 500]: for j in [.1, 1, 5, 10]: for k in range(0, 10): ar = generate_positions(i, j) idx = CS.computeIndicesDP(ar[:, 0], ar[:, 1]) aArray = hstack((ar, idx)) s = random.randint(0, i, 1) e = int(1 + random.exponential(30, 1)) x = RQ.getOverlappingRanges(aArray[:, 0], aArray[:, 1], aArray[:, 2], aArray[:, 3], s, s + e + 1) y = brute_force_search(aArray[:, 0], aArray[:, 1], aArray[:, 2], aArray[:, 3], s, s + e) assert (all(sort(x) == sort(y)))
def test_compute_ref_index_table(self): refIDs = [5, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2] tbl = CS.computeRefIndexTable(array(refIDs)) utbl = [5, 0, 1, 1, 1, 10, 2, 10, 15] assert_equal(sum(tbl.ravel() == utbl), len(utbl))
def test_number_within_range(self): for j in range(0, 100): a = sort(random.randint(0, 100, 100)) s, e = sort(random.randint(0, 100, 2)) assert_equal(CS.numberWithinRange(s, e, a), brute_force_number_in_range(s, e, a))
def test___init__(self): cmpH5_format = CS.CmpH5Format(h.File(data.getCmpH5(), "r")) assert_equal(cmpH5_format.ALN_INFO, 'AlnInfo')
def compare_implementations(size, coverage=1): NN = size * coverage ar = generate_positions(size, coverage) res = CS.computeIndices(ar[:, 0], ar[:, 1]) resDP = CS.computeIndicesDP(ar[:, 0], ar[:, 1]) assert (sum(res[:, 0:2] == resDP[:, 0:2]) == NN * 2)
def test_number_within_range(self): for j in range(0, 100): a = sort(random.randint(0, 100, 100)) s,e = sort(random.randint(0, 100, 2)) assert_equal(CS.numberWithinRange(s,e,a), brute_force_number_in_range(s,e,a))
def compare_implementations(size, coverage = 1): NN = size * coverage ar = generate_positions(size, coverage) res = CS.computeIndices(ar[:,0], ar[:,1]) resDP = CS.computeIndicesDP(ar[:,0], ar[:,1]) assert(sum(res[:,0:2] == resDP[:,0:2]) == NN*2)