示例#1
0
 def test_OrderedList_office_hours(self):
     orderlst = OrderedList()
     orderlst.add(5)
     orderlst.add(3)
     orderlst.add(6)
     orderlst.add(2)
     self.assertEqual(orderlst.pop(), 6)
     self.assertEqual(orderlst.pop(0), 2)
示例#2
0
 def test_pop(self):
     lst = OrderedList()
     self.assertRaises(IndexError, lst.pop)
     lst.add(1)
     lst.add(3)
     lst.add(2)
     self.assertRaises(IndexError, lst.pop, 3)
     self.assertEqual(lst.pop(1), 2)
     self.assertEqual(lst.pop(0), 1)
     lst.add(4)
     self.assertEqual(lst.pop(), 4)
     self.assertEqual(lst.pop(), 3)
示例#3
0
文件: lab4_test.py 项目: rihuaa/lab4
 def test_4(self):
     ordered_list = OrderedList()
     self.assertEqual(ordered_list.is_empty(), True)
     ordered_list.add(2)
     ordered_list.add(1)
     ordered_list.add(3)
     self.assertEqual(ordered_list.head.val, 1)
     self.assertEqual(ordered_list.tail.val, 3)
     self.assertRaises(ValueError, ordered_list.remove, 4)
     self.assertEqual(ordered_list.remove(2), 1)
     self.assertEqual(ordered_list.pop(0), 1)
     self.assertEqual(ordered_list.pop(), 3)
示例#4
0
文件: lab4_test.py 项目: rihuaa/lab4
 def test_8(self):
     ordered_list = OrderedList()
     ordered_list.add(1)
     ordered_list.add(2)
     ordered_list.add(5)
     ordered_list.add(3)
     self.assertEqual(ordered_list.head.val, 1)
     self.assertEqual(ordered_list.tail.val, 5)
     self.assertEqual(ordered_list.pop(), 5)
     self.assertEqual(ordered_list.pop(1), 2)
     self.assertEqual(ordered_list.pop(), 3)
     self.assertRaises(IndexError, ordered_list.pop, 1)
     self.assertEqual(ordered_list.index(1), 0)
     self.assertEqual(ordered_list.pop(), 1)
     self.assertRaises(IndexError, ordered_list.pop)
示例#5
0
 def test_OrderedList(self):
     ordered_list = OrderedList()
     self.assertEqual(ordered_list.is_empty(), True)
     ordered_list.add(2)
     ordered_list.add(1)
     ordered_list.add(3)
     self.assertEqual(ordered_list.size(), 3)
     self.assertEqual(ordered_list.index(2), 1)
     self.assertEqual(ordered_list.index(4), -1)
     self.assertEqual(ordered_list.search_forward(3), True)
     self.assertEqual(ordered_list.search_backward(3), True)
     self.assertEqual(ordered_list.remove(4), -1)
     self.assertEqual(ordered_list.remove(2), 1)
     self.assertEqual(ordered_list.pop(0), 1)
     self.assertEqual(ordered_list.pop(), 3)
示例#6
0
def create_huff_tree(char_freq):
    '''Create a Huffman tree for characters with non-zero frequency
    Returns the root node of the Huffman tree'''
    ol = OrderedList()
    for i in range(255):
        if char_freq[i] != 0:
            ol.add(HuffmanNode(i, char_freq[i]))
    while ol.size() > 1:
        a = ol.pop(0)
        b = ol.pop(0)
        if a.char < b.char:
            char = a.char
        else:
            char = b.char
        new = HuffmanNode(char, a.freq + b.freq)
        new.left = a
        new.right = b
        ol.add(new)
    return ol.pop(0)
示例#7
0
 def test_OrderedList_coverage_cases(self):
     ordered_list = OrderedList()
     ordered_list.add(1)
     ordered_list.add(2)
     ordered_list.add(5)
     ordered_list.add(3)
     self.assertEqual(ordered_list.search_forward(4), False)
     self.assertEqual(ordered_list.search_forward(6), False)
     self.assertEqual(ordered_list.search_forward(1), True)
     self.assertEqual(ordered_list.search_backward(4), False)
     self.assertEqual(ordered_list.search_backward(2), True)
     self.assertEqual(ordered_list.search_backward(5), True)
     self.assertEqual(ordered_list.pop(), 5)
     self.assertEqual(ordered_list.pop(1), 2)
     self.assertEqual(ordered_list.pop(), 3)
     self.assertRaises(IndexError, ordered_list.pop, 1)
     self.assertEqual(ordered_list.index(1), 0)
     self.assertEqual(ordered_list.pop(), 1)
     self.assertRaises(IndexError, ordered_list.pop)
 def test_1(self):
     list1 = OrderedList()
     list1.add(1)
     list1.add(2)
     list1.add(3)
     print(list1)
     self.assertEqual(list1.search_forward(3), True)
     self.assertEqual(list1.search_backward(3), True)
     self.assertEqual(list1.search_forward(5), False)
     self.assertEqual(list1.search_backward(-1), False)
     self.assertEqual(list1.size(), 3)
     list2 = OrderedList()
     self.assertEqual(list2.is_empty(), True)
     self.assertEqual(list2.index(3), 2)
     list2.add(1)
     self.assertEqual(list2.pop(), 1)
示例#9
0
class TestOrderedList(unittest.TestCase):
    def setUp(self):
        self.ol = OrderedList()

    def test_str(self):
        self.ol.add(1)
        self.ol.add(2)
        self.ol.add(3)
        self.assertEqual('[1, 2, 3]', self.ol.__str__())

    def test_isEmpty(self):
        self.assertTrue(self.ol.isEmpty())
        self.ol.add(1)
        self.assertFalse(self.ol.isEmpty())

    def test_size(self):
        self.assertEqual(0, self.ol.size())
        self.ol.add(1)
        self.assertEqual(1, self.ol.size())

    def test_index(self):
        self.ol.add(1)
        self.ol.add(2)
        self.assertEqual(0, self.ol.index(1))
        self.assertEqual(1, self.ol.index(2))
        self.assertIsNone(self.ol.index(3))

    def test_search(self):
        self.ol.add(1)
        self.ol.add(4)
        self.ol.add(9)
        self.assertTrue(self.ol.search(1))
        self.assertFalse(self.ol.search(2))
        self.assertFalse(self.ol.search(5))

    def test_add(self):
        self.ol.add(5)
        self.ol.add(3)
        self.ol.add(7)
        self.ol.add(6)
        self.assertEqual(0, self.ol.index(3))
        self.assertEqual(1, self.ol.index(5))
        self.assertEqual(2, self.ol.index(6))
        self.assertEqual(3, self.ol.index(7))

    def test_remove(self):
        # 3->5->6->7
        self.ol.add(5)
        self.ol.add(3)
        self.ol.add(7)
        self.ol.add(6)
        self.assertEqual(6, self.ol.remove(6))
        self.assertEqual(7, self.ol.remove(7))
        self.assertEqual(3, self.ol.remove(3))
        self.assertEqual(0, self.ol.index(5))
        with self.assertRaises(ValueError):
            self.ol.remove(3)

    def test_pop(self):
        # 3->5->6->7
        self.ol.add(5)
        self.ol.add(3)
        self.ol.add(7)
        self.ol.add(6)
        self.assertEqual(7, self.ol.pop())
        self.assertEqual(6, self.ol.pop())
        self.assertEqual(5, self.ol.pop())
        self.assertEqual(3, self.ol.pop())

    def test_pop_pos(self):
        # 3->5->6->7
        self.ol.add(5)
        self.ol.add(3)
        self.ol.add(7)
        self.ol.add(6)
        self.assertEqual(6, self.ol.pop(2))
        self.assertEqual(7, self.ol.pop(2))
        self.assertEqual(3, self.ol.pop(0))
        self.assertEqual(5, self.ol.pop(0))

    def test_slice(self):
        self.assertEqual([], self.ol.slice(0, 5))
        # 1 2 3 4 5
        self.ol.add(1)
        self.ol.add(2)
        self.ol.add(3)
        self.ol.add(4)
        self.ol.add(5)
        self.assertEqual([1, 2], self.ol.slice(0, 2))
        self.assertEqual([3, 4, 5], self.ol.slice(2, 5))