def test_remove_middle(self):
     ll = LinkedList()
     ll.append(1)
     ll.append(2)
     ll.append(3)
     ll.remove(1)
     self.assertEqual(3, ll.get(1))
 def test_remove_twice_when_not_empty(self):
     ll = LinkedList()
     ll.append(2)
     ll.append(2)
     ll.remove(0)
     ll.remove(0)
     self.assertEqual(0, ll.len())
 def test_append_on_removed(self):
     ll = LinkedList()
     ll.append(1)
     ll.remove(0)
     ll.append(2)
     # self.assertEqual(ll.get(0), 1)
     self.assertEqual(ll.get(0), 2)
 def test_remove_first_as_list(self):
     ll = LinkedList()
     ll.append(1)
     ll.append(2)
     ll.append(3)
     ll.remove(0)
     self.assertEqual([2, 3], ll.as_list())
 def test_get_middle(self):
     ll = LinkedList()
     ll.append(0)
     ll.append(1)
     ll.append(2)
     ll.append(3)
     ll.append(4)
     self.assertEqual(ll.get(2), 2)
 def test_get_out_bounds(self):
     ll = LinkedList()
     x = 10
     for i in range(x):
         ll.append(i)
     self.assertRaises(IndexError, ll.get, x)
 def test_get(self):
     ll = LinkedList()
     a = 2
     ll.append(a)
     self.assertEqual(ll.get(0), a)
 def test_len(self):
     ll = LinkedList()
     ll.append(1)
     ll.append(1)
     ll.remove(0)
     self.assertEqual(ll.len(), 1)
 def test_append_when_empty(self):
     ll = LinkedList()
     ll.append(1)
     self.assertEqual(ll.get(0), 1)
 def test_remove_when_not_empty(self):
     ll = LinkedList()
     ll.append(2)
     ll.remove(0)
     self.assertRaises(IndexError, ll.get, 0)
 def test_append_when_not_empty(self):
     ll = LinkedList()
     ll.append(1)
     ll.append(2)
     self.assertEqual(ll.get(1), 2)