def test_align_err_gap(): noise = "abcd" signal = "xd" it = find_gaps(signal, noise) walk_asserts(it, noise, { "ab": Kind.gap, "c": Kind.error, "d": Kind.signal, })
def test_align_err(): noise = "abcd" signal = "axcd" it = find_gaps(signal, noise) walk_asserts(it, noise, { "a": Kind.signal, "b": Kind.error, "cd": Kind.signal, })
def test_fix_a(): noise = "abcd" signal = "abcx" orig_it = find_gaps(signal, noise) fixed_it = remove_transpositions(deepcopy(orig_it)) for i, _ in enumerate(signal[:-1]): related_at(i, orig_it, fixed_it, lambda o, f: o.data.signal == f.data.noise, "==") related_at(i + 1, orig_it, fixed_it, lambda o, f: o.data.signal != f.data.noise, "!=") related_at(i + 1, orig_it, fixed_it, lambda o, f: o.data.data == f.data.noise, "==")
def test_align(): noise = "abcdefghijklmnopqrstuvwxyz" signal = "bcdefklmnopqvwxyz" it = find_gaps(signal, noise) walk_asserts( it, noise, { "a": Kind.gap, "bcdef": Kind.signal, "ghij": Kind.gap, "klmnopq": Kind.signal, "rstu": Kind.gap, "vwxyz": Kind.signal })
def test_align_ambig(): noise = "ab" signal = "x" it = find_gaps(signal, noise) if it[0].pop().data.kind is Kind.gap: walk_asserts(it, noise, { "a": Kind.gap, "b": Kind.error, }) else: walk_asserts(it, noise, { "a": Kind.error, "b": Kind.gap, })
def test_nofix(): noise = "abcd" signal = "abcd" orig_it = find_gaps(signal, noise) fixed_it = remove_transpositions(orig_it) assert orig_it == fixed_it