def test_when_empty_lns2_provided_then_no_computation_to_perform_and_that_yield_in_empty_tuple( self): LNs1 = fixtures.setup_lns_with_range(1, 5) LNs2 = lns.LNs() LNs1.tail_merge_with(LNs2, lns.LNs()) self.assertEqual( DupsInTwoMergedLNsChecker().find_duplicates(LNs1, LNs2), {})
def test_when_any_duplicate_in_the_first_linked_list_is_not_considered( self): LNs1 = lns.LNs() LNs1.from_list(['v1', 'v1', 'v2', 'v2', 'v2']) LNs2 = lns.LNs() LNs2.from_list(['v9', 'v28']) LNs1.tail_merge_with(LNs2, lns.LNs()) self.assertListEqual( DupsInTwoMergedLNsChecker().find_duplicates(LNs1, LNs2), [])
def test_when_all_duplicates_in_the_second_linked_list_are_considered( self): LNs1 = lns.LNs() LNs1.from_list(['v1', 'v2', 'v9', 'v28']) LNs2 = lns.LNs() LNs2.from_list(['v1', 'v1', 'v2', 'v2', 'v2']) LNs1.tail_merge_with(LNs2, lns.LNs()) self.assertListEqual( DupsInTwoMergedLNsChecker().find_duplicates(LNs1, LNs2), [('v2', 3), ('v1', 2)])
def setUp(self): fxt = fixtures.Fixtures() self.lns1 = fxt.lns_1() self.lns2 = fxt.lns_2() self.lns3 = fxt.lns_3() self.lns19358 = fxt.setup_19358_lns() self.emptyLns = lns.LNs() self.lns11 = fxt.lns_11()
""" Sample client """ """ @public """ from dups import DupsInTwoLNsChecker from definition import lns if __name__ == '__main__': l1 = lns.LNs() l1.from_list(['v1', 'v2', 'v3', 'v4', 'v6']) l1.print_() l2 = lns.LNs() l2.from_list(['v0', 'v5', 'v3', 'v4', 'v5']) print(DupsInTwoLNsChecker().find_duplicates(l1, l2)) """ Evaluate with `python dups_client.py` """
def setup_lns_with_range(from_, to): to += 1 listvs = ['v' + str(n) for n in range(from_, to)] LNs = lns.LNs() LNs.from_list(listvs) return LNs
def setup_1M__elems_lns(self): listvs = self.setup_1M_list() lns1M = lns.LNs() lns1M.from_list(listvs) return lns1M
def lns_11(self): lns11 = lns.LNs() lns11.from_list(['v0', 'v0', 'v2', 'v2', 'v2']) return lns11
def lns_3(self): lns3 = lns.LNs() lns3.from_list(['s0']) return lns3
def lns_2(self): lns2 = lns.LNs() lns2.from_list(['v0', 'v10', 'v9']) return lns2
def setup_19358_lns(self): listvs = self.setup_19358_list() lns19358 = lns.LNs() lns19358.from_list(listvs) return lns19358
def setup_1M_elems_lns_combinator(self): lns1M = lns.LNs() for n in self.setup_1M_list(): lns1M.append(n) return lns1M