def test_parallel_many_events(self): event_group = EventGroupParallel([ EventGroupParallel([Event('a'), Event('b')]), # Event('c'), Event('d'), Event('e'), Event('f'), Event('g'), # Event('h'), # Event('i'), Event('j'), Event('k'), Event('l'), Event('m'), Event('n'), EventGroupParallel([Event('o'), Event('p'), Event('q')]) ]) alignment_cached = BestAlignmentCached() result, model_result = alignment_cached.get_best_alignment( event_group, [ 'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n' ], dict()) char_list = events_to_char_list(model_result) print(events_to_char_list(model_result)) self.assertEqual(-10, result) self.assertCountEqual([x for x in 'abcdefghijklmn'], char_list)
def test_nw_with_wrapper_parallel(self): event_group = EventGroupParallel(string_to_events('pqacezxys')) alignment_cached = BestAlignmentCached() result, model_result = alignment_cached.get_best_alignment( event_group, ['z', 'x', 'k', 'l', 'm', 'n', 'o', 'z', 'x'], dict()) print(events_to_char_list(model_result)) self.assertEqual(-14, result) self.assertCountEqual([x for x in ['z', 'x']], events_to_char_list(model_result)) self.assertEqual(['z', 'x'], events_to_char_list(model_result))
def test_nw_with_wrapper(self): event_group = EventGroup(string_to_events('pqacezxys')) alignment_cached = BestAlignmentCached() result, model_result = alignment_cached.get_best_alignment( event_group, ['z', 'x', 'a', 'b', 'c', 'd', 'e', 'z', 'x'], dict()) print(events_to_char_list(model_result)) self.assertEqual(-8, result) self.assertCountEqual([x for x in ['a', 'c', 'e', 'z', 'x']], events_to_char_list(model_result)) self.assertEqual(['a', 'c', 'e', 'z', 'x'], events_to_char_list(model_result))
def test_nw_with_wrapper_parallel_inside_7(self): event_group = EventGroupParallel( [EventGroupParallel(string_to_events('tp')), Event('q')]) alignment_cached = BestAlignmentCached() result, model_result = alignment_cached.get_best_alignment( event_group, ['q'], dict()) char_list = events_to_char_list(model_result) print(events_to_char_list(model_result)) self.assertEqual(-2, result) self.assertCountEqual([x for x in ['q']], char_list) self.assertEqual(['q'], events_to_char_list(model_result))
def test_nw_with_wrapper_parallel_inside(self): event_group = EventGroupParallel( [Event('t'), EventGroupParallel(string_to_events('spqacezxy'))]) alignment_cached = BestAlignmentCached() result, model_result = alignment_cached.get_best_alignment( event_group, ['z', 'x', 'a', 'b', 'c', 'd', 'e', 'z', 't'], dict()) char_list = events_to_char_list(model_result) print(events_to_char_list(model_result)) self.assertEqual(-7, result) self.assertCountEqual([x for x in ['z', 'x', 'a', 'c', 'e', 't']], char_list) self.assertEqual(['z', 'x', 'a', 'c', 'e', 't'], events_to_char_list(model_result))
def test_additional3(self): event_group = EventGroup([ EventGroupParallel([Event('c'), Event('f')]), EventGroupParallel([Event('a'), Event('b')]), Event('c') ]) alignment_cached = BestAlignmentCached() result, model_result = alignment_cached.get_best_alignment( event_group, ['b', 'c', 'd'], dict()) char_list = events_to_char_list(model_result) print(events_to_char_list(model_result)) self.assertEqual(-4, result) self.assertCountEqual([x for x in ['b', 'c']], char_list) self.assertEqual(['b', 'c'], events_to_char_list(model_result))
def test_nw_with_wrapper_model_bigger(self): event_group_events = [] for x in 'pqacezxysabc': event_group_events.append(Event(x)) event_group = EventGroup(event_group_events) alignment_cached = BestAlignmentCached() result, model_result = alignment_cached.get_best_alignment( event_group, ['z', 'x', 'a', 'b', 'c', 'd', 'e', 'z', 'x'], dict()) print(events_to_char_list(model_result)) self.assertEqual(-11, result) self.assertCountEqual([x for x in ['a', 'c', 'e', 'z', 'x']], events_to_char_list(model_result)) self.assertEqual(['a', 'c', 'e', 'z', 'x'], events_to_char_list(model_result))
def test_all_events_in_model(self): # when your algorithm is smarter than you event_group = EventGroupParallel([ Event('a'), Event('f'), EventGroupParallel(string_to_events('bec')), Event('d') ]) alignment_cached = BestAlignmentCached() result, model_result = alignment_cached.get_best_alignment( event_group, ['a', 'b', 'c', 'd', 'e', 'f'], dict()) char_list = events_to_char_list(model_result) print(events_to_char_list(model_result)) self.assertEqual(-2, result) self.assertCountEqual([x for x in ['a', 'b', 'c', 'e', 'f']], char_list)
def test_legend(self): event_group = EventGroup([ Event('a'), EventGroupParallel([Event('c'), Event('d')]), Event('e'), Event('h') ]) alignment_cached = BestAlignmentCached() result, model_result = alignment_cached.get_best_alignment( event_group, ['a', 'c', 'd', 'e', 'h'], dict()) char_list = events_to_char_list(model_result) print(events_to_char_list(model_result)) self.assertEqual(0, result) self.assertCountEqual([x for x in ['a', 'c', 'd', 'e', 'h']], char_list) self.assertEqual(['a', 'c', 'd', 'e', 'h'], events_to_char_list(model_result))