コード例 #1
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)
コード例 #2
0
ファイル: mutableTest.py プロジェクト: duanshoujian/lab1
 def test_add_to_head(self):
     lst = UnrolledLinkedList(Node())
     self.assertEqual(lst.to_list(), [])
     lst.add_to_head(1)
     self.assertEqual(lst.to_list(), [1])
     lst.add_to_head('a')
     self.assertEqual(lst.to_list(), ['a', 1])
コード例 #3
0
ファイル: mutableTest.py プロジェクト: duanshoujian/lab1
 def test_to_list(self):
     self.assertEqual(UnrolledLinkedList(Node()).to_list(), [])
     lst = UnrolledLinkedList(Node())
     lst.insert(0, 'a')
     self.assertEqual(lst.to_list(), ['a'])
     lst.insert(1, 2)
     self.assertEqual(lst.to_list(), ['a', 2])
コード例 #4
0
ファイル: mutableTest.py プロジェクト: duanshoujian/lab1
    def test_map(self):
        lst = UnrolledLinkedList(Node())
        lst.map(str)
        self.assertEqual(lst.to_list(), [])

        lst1 = UnrolledLinkedList(Node())
        lst1.from_list([1, 2, 3])
        lst1.map(str)
        self.assertEqual(lst1.to_list(), ["1", "2", "3"])
コード例 #5
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)
コード例 #6
0
    def test_map(self):
        lst = UnrolledLinkedList(5)
        lst.map(str)
        self.assertEqual(lst.to_list(), [])

        lst = UnrolledLinkedList(5)
        lst.from_list([1, 2, 3])
        lst.map(str)
        self.assertEqual(lst.to_list(), ['1', '2', '3'])

        lst = UnrolledLinkedList(5)
        lst.from_list([1, 2, 3])
        lst.map(lambda x: x + 1)
        self.assertEqual(lst.to_list(), [2, 3, 4])
コード例 #7
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())
コード例 #8
0
ファイル: mutableTest.py プロジェクト: duanshoujian/lab1
    def test_iter(self):
        x = [1, 2, 3]
        lst = UnrolledLinkedList(Node())
        lst.from_list(x)
        tmp = []
        i = 0
        for e in lst.head.elements:
            i += 1
            if i > len(x):
                break
            tmp.append(e)
        self.assertEqual(x, tmp)
        self.assertEqual(lst.to_list(), tmp)

        i = iter(UnrolledLinkedList())
        self.assertRaises(StopIteration, lambda: next(i))
コード例 #9
0
ファイル: mutableTest.py プロジェクト: duanshoujian/lab1
 def test_from_list_to_list_equality(self, a):
     lst = UnrolledLinkedList(Node())
     lst.from_list(a)
     b = lst.to_list()
     self.assertEqual(a, b)
コード例 #10
0
ファイル: mutableTest.py プロジェクト: duanshoujian/lab1
 def test_add_to_tail(self):
     lst = UnrolledLinkedList(Node())
     self.assertEqual(lst.to_list(), [])
     lst.add_to_tail(1)
     self.assertEqual(lst.to_list(), [1])
コード例 #11
0
ファイル: mutableTest.py プロジェクト: duanshoujian/lab1
 def test_from_list(self):
     test_data = [[], ['a'], ['a', 'b']]
     for i in test_data:
         lst = UnrolledLinkedList(Node())
         lst.from_list(i)
         self.assertEqual(lst.to_list(), i)
コード例 #12
0
 def test_reverse2(self, a):
     x = UnrolledLinkedList(5).from_list(a).reverse()
     self.assertEqual(x.to_list(), a[::-1])
コード例 #13
0
 def test_from_list2(self, a):
     lst1 = UnrolledLinkedList(5)
     lst2 = UnrolledLinkedList(5)
     for item in a:
         lst2.add(item)
     self.assertEqual(lst1.from_list(a).to_list(), lst2.to_list())
コード例 #14
0
 def test_from_list(self):
     test_data = [[], [1, 2], [1, 2, 3, 4, 5, 6, 7]]
     for e in test_data:
         lst = UnrolledLinkedList(5).from_list(e)
         self.assertEqual(lst.to_list(), e)
コード例 #15
0
 def test_to_list2(self, a):
     lst = UnrolledLinkedList(5)
     for item in a:
         lst.add(item)
     self.assertEqual(lst.to_list(), a)