class TestBasicTable(unittest.TestCase): """Basic-coverage tests.""" def setUp(self): self.stmap = SortedTableMap() def test_init(self): self.assertIsInstance(self.stmap, SortedTableMap) def test_len(self): self.assertEqual(len(self.stmap), 0) for i in range(5): self.stmap[i] = i self.assertEqual(len(self.stmap), 5) def test_setitem_getitem(self): test_key = "key" test_value = "value" with self.assertRaises(KeyError): returned = self.stmap[test_key] # not in the table yet self.stmap[test_key] = test_value self.assertEqual(self.stmap[test_key], test_value) # cover the overwrite-existing case in __setitem__: updated_value = "updated value" self.stmap[test_key] = updated_value self.assertEqual(self.stmap[test_key], updated_value) def test_delitem(self): test_key = "key" test_value = "value" # Should raise key error if not in table with self.assertRaises(KeyError): del self.stmap[test_key] self.stmap[test_key] = test_value del self.stmap[test_key] self.assertEqual(len(self.stmap), 0) def test_iter(self): for i in range(5): self.stmap[i] = f"value for key {i}" assert len(self.stmap) == 5 i = 0 for key in self.stmap.keys(): self.assertEqual(key, i) i += 1 def test_reversed(self): for i in range(4, -1, -1): self.stmap[i] = f"value for key {i}" assert len(self.stmap) == 5 i = 4 for key in reversed(self.stmap): self.assertEqual(key, i) i -= 1