コード例 #1
0
ファイル: mutableTest.py プロジェクト: duanshoujian/lab1
    def test_monoid_identity(self, a):
        lst = UnrolledLinkedList(Node())
        lst.from_list(a)
        res = UnrolledLinkedList(Node())
        lst_mconcat = UnrolledLinkedList(Node())
        lst_mconcat.mconcat(lst, res.empty())
        self.assertEqual(lst_mconcat.to_list(), a)

        lst_mconcat = UnrolledLinkedList(Node())
        lst_mconcat.mconcat(res.empty(), lst)
        self.assertEqual(lst_mconcat.to_list(), a)
コード例 #2
0
    def test_immutability(self, a, b, c):
        lst1 = UnrolledLinkedList(5).from_list(a)
        lst2 = UnrolledLinkedList(5).from_list(b)
        lst3 = UnrolledLinkedList(5).from_list(c)

        concat_lst1_lst2_none = lst1.mconcat(lst2.mconcat(None)).to_list()
        concat_lst1_none_lst2 = lst1.mconcat(None).mconcat(lst2).to_list()
        self.assertEqual(concat_lst1_lst2_none, concat_lst1_none_lst2)

        concat1 = lst1.mconcat(lst2.mconcat(lst3)).to_list()
        concat2 = lst1.mconcat(lst2).mconcat(lst3).to_list()
        self.assertEqual(concat1, concat2)
コード例 #3
0
ファイル: mutableTest.py プロジェクト: duanshoujian/lab1
    def test_monoid_associativity(self, a, b, c):
        ULlsta = UnrolledLinkedList(Node())
        ULlstb = UnrolledLinkedList(Node())
        ULlstc = UnrolledLinkedList(Node())
        ULlsta.from_list(a)
        ULlstb.from_list(b)
        ULlstc.from_list(c)

        ULlst_test1 = UnrolledLinkedList(Node())
        ULlst_testb = UnrolledLinkedList(Node())
        ULlst_testb.mconcat(ULlsta, ULlstb)
        ULlst_test1.mconcat(ULlst_testb, ULlstc)

        ULlsta = UnrolledLinkedList(Node())
        ULlstb = UnrolledLinkedList(Node())
        ULlstc = UnrolledLinkedList(Node())
        ULlsta.from_list(a)
        ULlstb.from_list(b)
        ULlstc.from_list(c)

        ULlst_test2 = UnrolledLinkedList(Node())
        ULlst_testb = UnrolledLinkedList(Node())
        ULlst_testb.mconcat(ULlstb, ULlstc)
        ULlst_test2.mconcat(ULlsta, ULlst_testb)

        ULlst1 = ULlst_test1.to_list()
        ULlst2 = ULlst_test2.to_list()
        self.assertEqual(ULlst1, ULlst2)
コード例 #4
0
 def test_mconcat(self):
     lst1 = UnrolledLinkedList(5).add(1).add(2).add(3)
     lst2 = UnrolledLinkedList(5).add(4).add(5).add(6).add(7)
     concat = lst1.mconcat(lst2)
     lst3 = UnrolledLinkedList(5).add(1).add(2).add(3).add(4).add(5).add(
         6).add(7)
     self.assertEqual(concat.to_list(), lst3.to_list())
コード例 #5
0
 def test_monoid_identity(self, lst1):
     a = UnrolledLinkedList(5).from_list(lst1)
     b = UnrolledLinkedList(5).from_list([1, 2, 3, 4, 5, 0])
     self.assertEqual(a.mconcat(None), a)
     self.assertEqual(a.mconcat(b).to_list(), lst1 + [1, 2, 3, 4, 5, 0])