summaryrefslogtreecommitdiffstats
path: root/tests/ChunkData/ArraytoCoord.cpp
diff options
context:
space:
mode:
authorTiger Wang <ziwei.tiger@outlook.com>2021-03-05 14:03:55 +0100
committerGitHub <noreply@github.com>2021-03-05 14:03:55 +0100
commit868cd94ee9a5a0638c014a4cc42224f01ff234c8 (patch)
treecd23dc866f77de5b0b3e89a5eafeeb2ef24ffbdd /tests/ChunkData/ArraytoCoord.cpp
parentfixed the crash on generating in the SinglePiceStructuresGen (#5136) (diff)
downloadcuberite-868cd94ee9a5a0638c014a4cc42224f01ff234c8.tar
cuberite-868cd94ee9a5a0638c014a4cc42224f01ff234c8.tar.gz
cuberite-868cd94ee9a5a0638c014a4cc42224f01ff234c8.tar.bz2
cuberite-868cd94ee9a5a0638c014a4cc42224f01ff234c8.tar.lz
cuberite-868cd94ee9a5a0638c014a4cc42224f01ff234c8.tar.xz
cuberite-868cd94ee9a5a0638c014a4cc42224f01ff234c8.tar.zst
cuberite-868cd94ee9a5a0638c014a4cc42224f01ff234c8.zip
Diffstat (limited to '')
-rw-r--r--tests/ChunkData/ArraytoCoord.cpp99
1 files changed, 49 insertions, 50 deletions
diff --git a/tests/ChunkData/ArraytoCoord.cpp b/tests/ChunkData/ArraytoCoord.cpp
index 1fdaf3365..89fd8f731 100644
--- a/tests/ChunkData/ArraytoCoord.cpp
+++ b/tests/ChunkData/ArraytoCoord.cpp
@@ -8,100 +8,99 @@
/** Performs the entire ArrayToCoords test. */
static void test()
{
-
- class cMockAllocationPool
- : public cAllocationPool<cChunkData::sChunkSection>
- {
- virtual cChunkData::sChunkSection * Allocate() override
- {
- return new cChunkData::sChunkSection();
- }
-
- virtual void Free(cChunkData::sChunkSection * a_Ptr) override
- {
- delete a_Ptr;
- }
-
- virtual bool DoIsEqual(const cAllocationPool<cChunkData::sChunkSection> &) const noexcept override
- {
- return false;
- }
- } Pool;
{
-
- // Test first segment
- cChunkData buffer(Pool);
+ // Test first segment (blocks)
+ ChunkBlockData buffer;
BLOCKTYPE SrcBlockBuffer[16 * 16 * 256];
memset(SrcBlockBuffer, 0x00, sizeof(SrcBlockBuffer));
SrcBlockBuffer[7 + (4 * 16) + (5 * 16 * 16)] = 0xcd;
- buffer.SetBlockTypes(SrcBlockBuffer);
- TEST_EQUAL(buffer.GetBlock({ 7, 5, 4 }), 0xcd);
NIBBLETYPE SrcNibbleBuffer[16 * 16 * 256 / 2];
memset(SrcNibbleBuffer, 0x00, sizeof(SrcNibbleBuffer));
SrcNibbleBuffer[(6 + (1 * 16) + (2 * 16 * 16)) / 2] = 0xe;
- buffer.SetMetas(SrcNibbleBuffer);
+
+ buffer.SetAll(SrcBlockBuffer, SrcNibbleBuffer);
+
+ TEST_EQUAL(buffer.GetBlock({ 7, 5, 4 }), 0xcd);
TEST_EQUAL(buffer.GetMeta({ 6, 2, 1 }), 0xe);
+ }
- memset(SrcNibbleBuffer, 0x00, sizeof(SrcNibbleBuffer));
- SrcNibbleBuffer[(6 + (1 * 16) + (2 * 16 * 16)) / 2] = 0xe;
- buffer.SetBlockLight(SrcNibbleBuffer);
- TEST_EQUAL(buffer.GetBlockLight({ 6, 2, 1 }), 0xe);
+ {
+ // Test first segment (lights)
+ ChunkLightData buffer;
+ NIBBLETYPE SrcNibbleBuffer[16 * 16 * 256 / 2];
memset(SrcNibbleBuffer, 0x00, sizeof(SrcNibbleBuffer));
SrcNibbleBuffer[(6 + (1 * 16) + (2 * 16 * 16)) / 2] = 0xe;
- buffer.SetSkyLight(SrcNibbleBuffer);
+
+ buffer.SetAll(SrcNibbleBuffer, SrcNibbleBuffer);
+
+ TEST_EQUAL(buffer.GetBlockLight({ 6, 2, 1 }), 0xe);
TEST_EQUAL(buffer.GetSkyLight({ 6, 2, 1 }), 0xe);
}
{
- // test following segment
- cChunkData buffer(Pool);
+ // test following segment (blocks)
+ ChunkBlockData buffer;
BLOCKTYPE SrcBlockBuffer[16 * 16 * 256];
memset(SrcBlockBuffer, 0x00, sizeof(SrcBlockBuffer));
SrcBlockBuffer[7 + (4 * 16) + (24 * 16 * 16)] = 0xcd;
- buffer.SetBlockTypes(SrcBlockBuffer);
- TEST_EQUAL(buffer.GetBlock({ 7, 24, 4 }), 0xcd);
NIBBLETYPE SrcNibbleBuffer[16 * 16 * 256 / 2];
memset(SrcNibbleBuffer, 0x00, sizeof(SrcNibbleBuffer));
SrcNibbleBuffer[(6 + (1 * 16) + (24 * 16 * 16)) / 2] = 0xe;
- buffer.SetMetas(SrcNibbleBuffer);
+
+ buffer.SetAll(SrcBlockBuffer, SrcNibbleBuffer);
+
+ TEST_EQUAL(buffer.GetBlock({ 7, 24, 4 }), 0xcd);
TEST_EQUAL(buffer.GetMeta({ 6, 24, 1 }), 0xe);
+ }
- memset(SrcNibbleBuffer, 0x00, sizeof(SrcNibbleBuffer));
- SrcNibbleBuffer[(6 + 1 * 16 + 24 * 16 * 16) / 2] = 0xe;
- buffer.SetBlockLight(SrcNibbleBuffer);
- TEST_EQUAL(buffer.GetBlockLight({ 6, 24, 1 }), 0xe);
+ {
+ // test following segment (lights)
+ ChunkLightData buffer;
- memset(SrcNibbleBuffer, 0xff, sizeof(SrcNibbleBuffer));
+ NIBBLETYPE SrcNibbleBuffer[16 * 16 * 256 / 2];
+ memset(SrcNibbleBuffer, 0x00, sizeof(SrcNibbleBuffer));
SrcNibbleBuffer[(6 + (1 * 16) + (24 * 16 * 16)) / 2] = 0xe;
- buffer.SetSkyLight(SrcNibbleBuffer);
+
+ buffer.SetAll(SrcNibbleBuffer, SrcNibbleBuffer);
+
+ TEST_EQUAL(buffer.GetBlockLight({ 6, 24, 1 }), 0xe);
TEST_EQUAL(buffer.GetSkyLight({ 6, 24, 1 }), 0xe);
}
{
- // test zeros
- cChunkData buffer(Pool);
+ // test zeros (blocks)
+ ChunkBlockData buffer;
BLOCKTYPE SrcBlockBuffer[16 * 16 * 256];
memset(SrcBlockBuffer, 0x00, sizeof(SrcBlockBuffer));
- buffer.SetBlockTypes(SrcBlockBuffer);
- TEST_EQUAL(buffer.GetBlock({ 7, 24, 4 }), 0x00);
NIBBLETYPE SrcNibbleBuffer[16 * 16 * 256 / 2];
memset(SrcNibbleBuffer, 0x00, sizeof(SrcNibbleBuffer));
- buffer.SetMetas(SrcNibbleBuffer);
+
+ buffer.SetAll(SrcBlockBuffer, SrcNibbleBuffer);
+
+ TEST_EQUAL(buffer.GetBlock({ 7, 24, 4 }), 0x00);
TEST_EQUAL(buffer.GetMeta({ 6, 24, 1 }), 0x0);
+ }
+
+ {
+ // test zeros (lights)
+ ChunkLightData buffer;
+ NIBBLETYPE SrcNibbleBuffer[16 * 16 * 256 / 2];
memset(SrcNibbleBuffer, 0x00, sizeof(SrcNibbleBuffer));
- buffer.SetBlockLight(SrcNibbleBuffer);
- TEST_EQUAL(buffer.GetBlockLight({ 6, 24, 1 }), 0x0);
- memset(SrcNibbleBuffer, 0xff, sizeof(SrcNibbleBuffer));
- buffer.SetSkyLight(SrcNibbleBuffer);
+ NIBBLETYPE SrcNibbleBuffer2[16 * 16 * 256 / 2];
+ memset(SrcNibbleBuffer2, 0xff, sizeof(SrcNibbleBuffer2));
+
+ buffer.SetAll(SrcNibbleBuffer, SrcNibbleBuffer2);
+
+ TEST_EQUAL(buffer.GetBlockLight({ 6, 24, 1 }), 0x0);
TEST_EQUAL(buffer.GetSkyLight({ 6, 24, 1 }), 0xf);
}
}