package electrosphere.client.terrain.cells; import static org.junit.jupiter.api.Assertions.*; import org.joml.Vector3d; import org.joml.Vector3f; import org.joml.Vector3i; import org.junit.jupiter.api.extension.ExtendWith; import electrosphere.client.scene.ClientWorldData; import electrosphere.engine.Globals; import electrosphere.engine.Main; import electrosphere.server.terrain.manager.ServerTerrainChunk; import electrosphere.test.annotations.UnitTest; import electrosphere.test.template.extensions.StateCleanupCheckerExtension; import electrosphere.util.ds.octree.WorldOctTree.FloatingChunkTreeNode; /** * Tests for the client draw cell manager */ @ExtendWith(StateCleanupCheckerExtension.class) public class ClientDrawCellManagerTests { /** * Test creating a manager */ @UnitTest public void testCreation(){ assertDoesNotThrow(() -> { new ClientDrawCellManager(null, 64); }); } @UnitTest public void testJoinCase(){ int worldDiscreteSize = 64; Globals.clientWorldData = new ClientWorldData(new Vector3f(0), new Vector3f(worldDiscreteSize * ServerTerrainChunk.CHUNK_DIMENSION), 0, worldDiscreteSize); ClientDrawCellManager manager = new ClientDrawCellManager(null, 64); Vector3d playerPos = new Vector3d(0,0,0); FloatingChunkTreeNode node = FloatingChunkTreeNode.constructorForTests(manager.chunkTree, 1, new Vector3i(16,0,0), new Vector3i(32,16,16)); node.convertToLeaf(DrawCell.generateTerrainCell(new Vector3i(0,0,0))); assertFalse(manager.shouldSplit(playerPos, node)); //cleanup Main.shutdown(); } }