class BasicTests(TestCase): def setUp(self): self.o = Octree(((0.0, 1.0), (0.0, 1.0), (0.0, 1.0))) self.o.insert((0.33, 0.66, 0.99), "Point one") self.o.insert((0.12, 0.34, 0.56), "Point two") self.o.insert((0.98, 0.76, 0.54), "Point three") def test_size(self): self.assertEqual(len(self.o), 3) def test_thinking_outside_box(self): with self.assertRaises(KeyError): self.o.insert((2.35, 0.87, 0.56), "> maxx") with self.assertRaises(KeyError): self.o.insert((-0.43, 0.87, 0.56), "< minx") with self.assertRaises(KeyError): self.o.insert((0.35, 1.94, 0.56), "> maxy") with self.assertRaises(KeyError): self.o.insert((0.35, -0.51, 0.56), "< miny") with self.assertRaises(KeyError): self.o.insert((0.35, 0.87, 1.04), "> maxz") with self.assertRaises(KeyError): self.o.insert((0.35, 0.87, -0.35), "< minz") def test_update_insert(self): with self.assertRaises(KeyError): self.o.insert((0.33, 0.66, 0.99), "Point one, renewed") self.o.update((0.33, 0.66, 0.99), "Point one, renewed") self.assertEqual(len(self.o), 3) self.o.insert((0.98, 0.23, 0.15), "Point four") self.assertEqual(len(self.o), 4)