class TestChunkBlocks(unittest.TestCase): def setUp(self): self.c = Chunk(0, 0) def test_trivial(self): pass def test_destroy(self): """ Test block destruction. """ self.c.set_block((0, 0, 0), 1) self.c.set_metadata((0, 0, 0), 1) self.c.destroy((0, 0, 0)) self.assertEqual(self.c.get_block((0, 0, 0)), 0) self.assertEqual(self.c.get_metadata((0, 0, 0)), 0) def test_sed(self): """ ``sed()`` should work. """ self.c.set_block((1, 1, 1), 1) self.c.set_block((2, 2, 2), 2) self.c.set_block((3, 3, 3), 3) self.c.sed(1, 3) self.assertEqual(self.c.get_block((1, 1, 1)), 3) self.assertEqual(self.c.get_block((2, 2, 2)), 2) self.assertEqual(self.c.get_block((3, 3, 3)), 3) def test_set_block_heightmap(self): """ Heightmaps work. """ self.c.populated = True self.c.set_block((0, 20, 0), 1) self.assertEqual(self.c.heightmap[0], 20) def test_set_block_heightmap_underneath(self): """ A block placed underneath the highest block will not alter the heightmap. """ self.c.populated = True self.c.set_block((0, 20, 0), 1) self.assertEqual(self.c.heightmap[0], 20) self.c.set_block((0, 10, 0), 1) self.assertEqual(self.c.heightmap[0], 20) def test_set_block_heightmap_destroyed(self): """ Upon destruction of the highest block, the heightmap will point at the next-highest block. """ self.c.populated = True self.c.set_block((0, 30, 0), 1) self.c.set_block((0, 10, 0), 1) self.c.destroy((0, 30, 0)) self.assertEqual(self.c.heightmap[0], 10)