示例#1
0
 def test_set_previous(self):
     node = Node("Hola")
     node2 = Node("Mundo")
     node.set_previous(node2)
     self.assertEqual(node.get_value(), "Hola")
     self.assertIsNone(node.get_key())
     self.assertIsNone(node.get_next())
     self.assertEqual(node.get_previous(), node2)
示例#2
0
 def test_string(self):
     node = Node("Hola")
     self.assertEqual(node.get_value(), "Hola")
     self.assertEqual(node.__repr__(), "Hola")
     self.assertIsNone(node.get_key())
     self.assertIsNone(node.get_next())
     self.assertIsNone(node.get_previous())
示例#3
0
    def test_insert_node_at_front(self):
        for item in self.__items:
            node = Node(item)
            self.__dll.insert_node_at_front(node)
        elements = list()
        for item in self.__dll:
            elements.append(item)

        self.assertEqual(self.__dll.size(), 4)
        self.assertEqual(elements, [4,3,2,1])
示例#4
0
 def set(self, key, value):
     if key is not None and self.__verify_capacity():
         # if the problem_1 is at capacity remove the oldest item
         if self.size() == self.capacity():
             node = self.__dll.remove_last_element()
             self.__hm.remove(node.get_key())
         node = self.__hm.get(key)
         # Node is on the map
         if node is not None:
             node.set_value(value)
             self.__dll.remove_node(node)
         # Node is not on the map
         else:
             node = Node(value)
             node.set_key(key)
             self.__hm.put(key, node)
         self.__dll.insert_node_at_front(node)
         return True
     return False
示例#5
0
    def test_remove_multiple_values(self):
        for item in self.__items:
            self.__dll.insert(item)

        self.__dll.remove(4)
        self.__dll.remove(1)
        self.__dll.remove(2)
        self.__dll.remove(3)
        self.assertEqual(self.__dll.size(), 0)

        self.__dll.insert_node(Node(9))
        self.__dll.insert_node_at_front(Node(8))
        self.__dll.insert_at_front(7)
        elements = list()
        for item in self.__dll:
            elements.append(item)

        self.assertEqual(self.__dll.size(), 3)
        self.assertEqual(elements, [7,8,9])
        print(self.__dll)
示例#6
0
    def test_remove_tail_node(self):
        nodes = list()
        for item in self.__items:
            node = Node(item)
            self.__dll.insert_node(node)
            nodes.append(node)
        self.__dll.remove_node(nodes[3])
        elements = list()
        for item in self.__dll:
            elements.append(item)

        self.assertEqual(self.__dll.size(), 3)
        self.assertEqual(elements, [1,2,3])
示例#7
0
    def test_remove_multiple_nodes(self):
        nodes = list()
        for item in self.__items:
            node = Node(item)
            self.__dll.insert_node(node)
            nodes.append(node)
        self.__dll.remove_node(nodes[1])
        self.__dll.remove_node(nodes[0])
        self.__dll.remove_node(nodes[3])
        self.__dll.remove_node(nodes[2])
        self.assertEqual(self.__dll.size(), 0)

        self.__dll.insert(5)
        self.__dll.insert_at_front(4)
        self.__dll.insert_at_front(3)
        elements = list()
        for item in self.__dll:
            elements.append(item)

        self.assertEqual(self.__dll.size(), 3)
        self.assertEqual(elements, [3,4,5])
示例#8
0
 def test_new_node(self):
     node = Node("Hola")
     self.assertEqual(node.get_value(), "Hola")
     self.assertIsNone(node.get_key())
     self.assertIsNone(node.get_next())
     self.assertIsNone(node.get_previous())
示例#9
0
 def test_not_equal(self):
     node = Node("Hola")
     node2 = Node("Hola1")
     self.assertEqual(node.get_value(), "Hola")
     self.assertEqual(node2.get_value(), "Hola1")
     self.assertNotEqual(node, node2)
     self.assertNotEqual(node.__hash__(), node2.__hash__())
     self.assertIsNone(node.get_key())
     self.assertIsNone(node.get_next())
     self.assertIsNone(node.get_previous())
示例#10
0
 def insert(self, value):
     if value is None:
         return
     node = Node(value)
     return self.insert_node(node)
示例#11
0
 def insert_at_front(self, value):
     if value is None:
         return False
     node = Node(value)
     return self.insert_node_at_front(node)