From 2df14a04962037b93352c2fc53349af54ab3b14d Mon Sep 17 00:00:00 2001 From: peterbell10 Date: Sun, 4 Feb 2018 22:15:31 +0000 Subject: cChunk and cChunkData: Use vectors for block get and set functions (#4172) * cChunkData: Change interface to use Vector3i * cChunk: Add Vector3i overloads for bounded block get and set functions. --- tests/ChunkData/ArraytoCoord.cpp | 54 ++++++++++++------------- tests/ChunkData/Coordinates.cpp | 86 ++++++++++++++++++++-------------------- tests/ChunkData/Copies.cpp | 58 +++++++++++++-------------- 3 files changed, 99 insertions(+), 99 deletions(-) (limited to 'tests') diff --git a/tests/ChunkData/ArraytoCoord.cpp b/tests/ChunkData/ArraytoCoord.cpp index 19f7ef105..1591bc9a7 100644 --- a/tests/ChunkData/ArraytoCoord.cpp +++ b/tests/ChunkData/ArraytoCoord.cpp @@ -10,19 +10,19 @@ int main(int argc, char** argv) class cMockAllocationPool : public cAllocationPool - { + { virtual cChunkData::sChunkSection * Allocate() { return new cChunkData::sChunkSection(); } - + virtual void Free(cChunkData::sChunkSection * a_Ptr) { delete a_Ptr; } } Pool; { - + // Test first segment cChunkData buffer(Pool); @@ -30,25 +30,25 @@ int main(int argc, char** argv) memset(SrcBlockBuffer, 0x00, sizeof(SrcBlockBuffer)); SrcBlockBuffer[7 + (4 * 16) + (5 * 16 * 16)] = 0xcd; buffer.SetBlockTypes(SrcBlockBuffer); - testassert(buffer.GetBlock(7, 5, 4) == 0xcd); - + testassert(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); - testassert(buffer.GetMeta(6, 2, 1) == 0xe); - + testassert(buffer.GetMeta({ 6, 2, 1 }) == 0xe); + memset(SrcNibbleBuffer, 0x00, sizeof(SrcNibbleBuffer)); SrcNibbleBuffer[(6 + (1 * 16) + (2 * 16 * 16)) / 2] = 0xe; buffer.SetBlockLight(SrcNibbleBuffer); - testassert(buffer.GetBlockLight(6, 2, 1) == 0xe); - + testassert(buffer.GetBlockLight({ 6, 2, 1 }) == 0xe); + memset(SrcNibbleBuffer, 0x00, sizeof(SrcNibbleBuffer)); SrcNibbleBuffer[(6 + (1 * 16) + (2 * 16 * 16)) / 2] = 0xe; buffer.SetSkyLight(SrcNibbleBuffer); - testassert(buffer.GetSkyLight(6, 2, 1) == 0xe); + testassert(buffer.GetSkyLight({ 6, 2, 1 }) == 0xe); } - + { // test following segment cChunkData buffer(Pool); @@ -57,25 +57,25 @@ int main(int argc, char** argv) memset(SrcBlockBuffer, 0x00, sizeof(SrcBlockBuffer)); SrcBlockBuffer[7 + (4 * 16) + (24 * 16 * 16)] = 0xcd; buffer.SetBlockTypes(SrcBlockBuffer); - testassert(buffer.GetBlock(7, 24, 4) == 0xcd); - + testassert(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); - testassert(buffer.GetMeta(6, 24, 1) == 0xe); - + testassert(buffer.GetMeta({ 6, 24, 1 }) == 0xe); + memset(SrcNibbleBuffer, 0x00, sizeof(SrcNibbleBuffer)); SrcNibbleBuffer[(6 + 1 * 16 + 24 * 16 * 16) / 2] = 0xe; buffer.SetBlockLight(SrcNibbleBuffer); - testassert(buffer.GetBlockLight(6, 24, 1) == 0xe); - + testassert(buffer.GetBlockLight({ 6, 24, 1 }) == 0xe); + memset(SrcNibbleBuffer, 0xff, sizeof(SrcNibbleBuffer)); SrcNibbleBuffer[(6 + (1 * 16) + (24 * 16 * 16)) / 2] = 0xe; buffer.SetSkyLight(SrcNibbleBuffer); - testassert(buffer.GetSkyLight(6, 24, 1) == 0xe); + testassert(buffer.GetSkyLight({ 6, 24, 1 }) == 0xe); } - + { // test zeros cChunkData buffer(Pool); @@ -83,22 +83,22 @@ int main(int argc, char** argv) BLOCKTYPE SrcBlockBuffer[16 * 16 * 256]; memset(SrcBlockBuffer, 0x00, sizeof(SrcBlockBuffer)); buffer.SetBlockTypes(SrcBlockBuffer); - testassert(buffer.GetBlock(7, 24, 4) == 0x00); - + testassert(buffer.GetBlock({ 7, 24, 4 }) == 0x00); + NIBBLETYPE SrcNibbleBuffer[16 * 16 * 256 / 2]; memset(SrcNibbleBuffer, 0x00, sizeof(SrcNibbleBuffer)); buffer.SetMetas(SrcNibbleBuffer); - testassert(buffer.GetMeta(6, 24, 1) == 0x0); - + testassert(buffer.GetMeta({ 6, 24, 1 }) == 0x0); + memset(SrcNibbleBuffer, 0x00, sizeof(SrcNibbleBuffer)); buffer.SetBlockLight(SrcNibbleBuffer); - testassert(buffer.GetBlockLight(6, 24, 1) == 0x0); - + testassert(buffer.GetBlockLight({ 6, 24, 1 }) == 0x0); + memset(SrcNibbleBuffer, 0xff, sizeof(SrcNibbleBuffer)); buffer.SetSkyLight(SrcNibbleBuffer); - testassert(buffer.GetSkyLight(6, 24, 1) == 0xf); + testassert(buffer.GetSkyLight({ 6, 24, 1 }) == 0xf); } - + // All tests passed: return 0; } diff --git a/tests/ChunkData/Coordinates.cpp b/tests/ChunkData/Coordinates.cpp index 384af7e03..31aa1179e 100644 --- a/tests/ChunkData/Coordinates.cpp +++ b/tests/ChunkData/Coordinates.cpp @@ -25,98 +25,98 @@ int main(int argc, char** argv) cChunkData buffer(Pool); // Empty chunks - buffer.SetBlock(0, 0, 0, 0xAB); - testassert(buffer.GetBlock(0, 0, 0) == 0xAB); - buffer.SetMeta(0, 16, 0, 0xC); - testassert(buffer.GetMeta(0, 16, 0) == 0xC); + buffer.SetBlock({ 0, 0, 0 }, 0xAB); + testassert(buffer.GetBlock({ 0, 0, 0 }) == 0xAB); + buffer.SetMeta({ 0, 16, 0 }, 0xC); + testassert(buffer.GetMeta({ 0, 16, 0 }) == 0xC); // loaded but not written segments - testassert(buffer.GetBlock(1, 0, 0) == 0x0); - testassert(buffer.GetMeta(1, 16, 0) == 0x0); + testassert(buffer.GetBlock({ 1, 0, 0 }) == 0x0); + testassert(buffer.GetMeta({ 1, 16, 0 }) == 0x0); // Notloaded segments - testassert(buffer.GetBlock(0, 32, 0) == 0x0); - testassert(buffer.GetMeta(0, 48, 0) == 0x0); + testassert(buffer.GetBlock({ 0, 32, 0 }) == 0x0); + testassert(buffer.GetMeta({ 0, 48, 0 }) == 0x0); // Out of range SetBlock CheckAsserts( - buffer.SetBlock(-1, 0, 0, 0); + buffer.SetBlock({ -1, 0, 0 }, 0); ); CheckAsserts( - buffer.SetBlock(0, -1, 0, 0); + buffer.SetBlock({ 0, -1, 0 }, 0); ); CheckAsserts( - buffer.SetBlock(0, 0, -1, 0); + buffer.SetBlock({ 0, 0, -1 }, 0); ); CheckAsserts( - buffer.SetBlock(256, 0, 0, 0); + buffer.SetBlock({ 256, 0, 0 }, 0); ); CheckAsserts( - buffer.SetBlock(0, 256, 0, 0); + buffer.SetBlock({ 0, 256, 0 }, 0); ); CheckAsserts( - buffer.SetBlock(0, 0, 256, 0); + buffer.SetBlock({ 0, 0, 256 }, 0); ); // Out of range SetMeta CheckAsserts( - buffer.SetMeta(-1, 0, 0, 0); + buffer.SetMeta({ -1, 0, 0 }, 0); ); CheckAsserts( - buffer.SetMeta(0, -1, 0, 0); + buffer.SetMeta({ 0, -1, 0 }, 0); ); CheckAsserts( - buffer.SetMeta(0, 0, -1, 0); + buffer.SetMeta({ 0, 0, -1 }, 0); ); CheckAsserts( - buffer.SetMeta(256, 0, 0, 0); + buffer.SetMeta({ 256, 0, 0 }, 0); ); CheckAsserts( - buffer.SetMeta(0, 256, 0, 0); + buffer.SetMeta({ 0, 256, 0 }, 0); ); CheckAsserts( - buffer.SetMeta(0, 0, 256, 0); + buffer.SetMeta({ 0, 0, 256 }, 0); ); // Reading out of range blocks should return air - testassert(buffer.GetBlock(-1, 0, 0) == 0); - testassert(buffer.GetBlock(0, -1, 0) == 0); - testassert(buffer.GetBlock(0, 0, -1) == 0); - testassert(buffer.GetBlock(256, 0, 0) == 0); - testassert(buffer.GetBlock(0, 256, 0) == 0); - testassert(buffer.GetBlock(0, 0, 256) == 0); + testassert(buffer.GetBlock({ -1, 0, 0 }) == 0); + testassert(buffer.GetBlock({ 0, -1, 0 }) == 0); + testassert(buffer.GetBlock({ 0, 0, -1 }) == 0); + testassert(buffer.GetBlock({ 256, 0, 0 }) == 0); + testassert(buffer.GetBlock({ 0, 256, 0 }) == 0); + testassert(buffer.GetBlock({ 0, 0, 256 }) == 0); // Reading out of range metas should return 0 - testassert(buffer.GetMeta(-1, 0, 0) == 0); - testassert(buffer.GetMeta(0, -1, 0) == 0); - testassert(buffer.GetMeta(0, 0, -1) == 0); - testassert(buffer.GetMeta(256, 0, 0) == 0); - testassert(buffer.GetMeta(0, 256, 0) == 0); - testassert(buffer.GetMeta(0, 0, 256) == 0); + testassert(buffer.GetMeta({ -1, 0, 0 }) == 0); + testassert(buffer.GetMeta({ 0, -1, 0 }) == 0); + testassert(buffer.GetMeta({ 0, 0, -1 }) == 0); + testassert(buffer.GetMeta({ 256, 0, 0 }) == 0); + testassert(buffer.GetMeta({ 0, 256, 0 }) == 0); + testassert(buffer.GetMeta({ 0, 0, 256 }) == 0); } { cChunkData buffer(Pool); // Zero's - buffer.SetBlock(0, 0, 0, 0x0); - buffer.SetBlock(0, 0, 1, 0xab); - testassert(buffer.GetBlock(0, 0, 0) == 0x0); - testassert(buffer.GetBlock(0, 0, 1) == 0xab); - - buffer.SetMeta(0, 16, 0, 0x0); - buffer.SetMeta(0, 16, 1, 0xc); - testassert(buffer.GetMeta(0, 16, 0) == 0x0); - testassert(buffer.GetMeta(0, 16, 1) == 0xc); + buffer.SetBlock({ 0, 0, 0 }, 0x0); + buffer.SetBlock({ 0, 0, 1 }, 0xab); + testassert(buffer.GetBlock({ 0, 0, 0 }) == 0x0); + testassert(buffer.GetBlock({ 0, 0, 1 }) == 0xab); + + buffer.SetMeta({ 0, 16, 0 }, 0x0); + buffer.SetMeta({ 0, 16, 1 }, 0xc); + testassert(buffer.GetMeta({ 0, 16, 0 }) == 0x0); + testassert(buffer.GetMeta({ 0, 16, 1 }) == 0xc); } { // Operator = cChunkData buffer(Pool); - buffer.SetBlock(0, 0, 0, 0x42); + buffer.SetBlock({ 0, 0, 0 }, 0x42); cChunkData copy(Pool); copy = std::move(buffer); - testassert(copy.GetBlock(0, 0, 0) == 0x42); + testassert(copy.GetBlock({ 0, 0, 0 }) == 0x42); } return 0; diff --git a/tests/ChunkData/Copies.cpp b/tests/ChunkData/Copies.cpp index 03d88da97..b4d9c3721 100644 --- a/tests/ChunkData/Copies.cpp +++ b/tests/ChunkData/Copies.cpp @@ -10,12 +10,12 @@ int main(int argc, char** argv) class cMockAllocationPool : public cAllocationPool - { + { virtual cChunkData::sChunkSection * Allocate() { return new cChunkData::sChunkSection(); } - + virtual void Free(cChunkData::sChunkSection * a_Ptr) { delete a_Ptr; @@ -23,15 +23,15 @@ int main(int argc, char** argv) } Pool; { cChunkData buffer(Pool); - - buffer.SetBlock(3, 1, 4, 0xDE); - buffer.SetMeta(3, 1, 4, 0xA); - + + buffer.SetBlock({ 3, 1, 4 }, 0xDE); + buffer.SetMeta({ 3, 1, 4 }, 0xA); + cChunkData copy(Pool); copy.Assign(buffer); - testassert(copy.GetBlock(3, 1, 4) == 0xDE); - testassert(copy.GetMeta(3, 1, 4) == 0xA); - + testassert(copy.GetBlock({ 3, 1, 4 }) == 0xDE); + testassert(copy.GetMeta({ 3, 1, 4 }) == 0xA); + BLOCKTYPE SrcBlockBuffer[16 * 16 * 256]; for (int i = 0; i < 16 * 16 * 256; i += 4) { @@ -40,21 +40,21 @@ int main(int argc, char** argv) SrcBlockBuffer[i + 2] = 0xbe; SrcBlockBuffer[i + 3] = 0xef; } - + buffer.SetBlockTypes(SrcBlockBuffer); BLOCKTYPE DstBlockBuffer[16 * 16 * 256]; buffer.CopyBlockTypes(DstBlockBuffer); testassert(memcmp(SrcBlockBuffer, DstBlockBuffer, (16 * 16 * 256) - 1) == 0); - + memset(SrcBlockBuffer, 0x00, 16 * 16 * 256); buffer.SetBlockTypes(SrcBlockBuffer); buffer.CopyBlockTypes(DstBlockBuffer); testassert(memcmp(SrcBlockBuffer, DstBlockBuffer, (16 * 16 * 256) - 1) == 0); } - + { cChunkData buffer(Pool); - + NIBBLETYPE SrcNibbleBuffer[16 * 16 * 256 / 2]; for (int i = 0; i < 16 * 16 * 256 / 2; i += 4) { @@ -63,21 +63,21 @@ int main(int argc, char** argv) SrcNibbleBuffer[i + 2] = 0xbe; SrcNibbleBuffer[i + 3] = 0xef; } - + buffer.SetMetas(SrcNibbleBuffer); NIBBLETYPE DstNibbleBuffer[16 * 16 * 256/ 2]; buffer.CopyMetas(DstNibbleBuffer); testassert(memcmp(SrcNibbleBuffer, DstNibbleBuffer, (16 * 16 * 256 / 2) - 1) == 0); - + memset(SrcNibbleBuffer, 0x00, 16 * 16 * 256 /2); buffer.SetMetas(SrcNibbleBuffer); buffer.CopyMetas(DstNibbleBuffer); testassert(memcmp(SrcNibbleBuffer, DstNibbleBuffer, (16 * 16 * 256 / 2) - 1) == 0); } - + { cChunkData buffer(Pool); - + NIBBLETYPE SrcNibbleBuffer[16 * 16 * 256 / 2]; for (int i = 0; i < 16 * 16 * 256 / 2; i += 4) { @@ -86,21 +86,21 @@ int main(int argc, char** argv) SrcNibbleBuffer[i + 2] = 0xbe; SrcNibbleBuffer[i + 3] = 0xef; } - + buffer.SetBlockLight(SrcNibbleBuffer); NIBBLETYPE DstNibbleBuffer[16 * 16 * 256 / 2]; buffer.CopyBlockLight(DstNibbleBuffer); testassert(memcmp(SrcNibbleBuffer, DstNibbleBuffer, (16 * 16 * 256 /2) - 1) == 0); - + memset(SrcNibbleBuffer, 0x00, 16 * 16 * 256 /2); buffer.SetBlockLight(SrcNibbleBuffer); buffer.CopyBlockLight(DstNibbleBuffer); testassert(memcmp(SrcNibbleBuffer, DstNibbleBuffer, (16 * 16 * 256 /2) - 1) == 0); } - + { cChunkData buffer(Pool); - + NIBBLETYPE SrcNibbleBuffer[16 * 16 * 256 / 2]; for (int i = 0; i < 16 * 16 * 256 / 2; i += 4) { @@ -109,42 +109,42 @@ int main(int argc, char** argv) SrcNibbleBuffer[i + 2] = 0xbe; SrcNibbleBuffer[i + 3] = 0xef; } - + buffer.SetSkyLight(SrcNibbleBuffer); NIBBLETYPE DstNibbleBuffer[16 * 16 * 256/ 2]; buffer.CopySkyLight(DstNibbleBuffer); testassert(memcmp(SrcNibbleBuffer, DstNibbleBuffer, (16 * 16 * 256 / 2) - 1) == 0); - + memset(SrcNibbleBuffer, 0xFF, 16 * 16 * 256 / 2); buffer.SetSkyLight(SrcNibbleBuffer); buffer.CopySkyLight(DstNibbleBuffer); testassert(memcmp(SrcNibbleBuffer, DstNibbleBuffer, (16 * 16 * 256 / 2) - 1) == 0); } - + { cChunkData buffer(Pool); - + BLOCKTYPE SrcBlockBuffer[16 * 16 * 256]; memset(SrcBlockBuffer, 0x00, 16 * 16 * 256); BLOCKTYPE DstBlockBuffer[16 * 16 * 256]; buffer.CopyBlockTypes(DstBlockBuffer); testassert(memcmp(SrcBlockBuffer, DstBlockBuffer, (16 * 16 * 256) - 1) == 0); - + NIBBLETYPE SrcNibbleBuffer[16 * 16 * 256 / 2]; memset(SrcNibbleBuffer, 0x00, 16 * 16 * 256 / 2); NIBBLETYPE DstNibbleBuffer[16 * 16 * 256 / 2]; buffer.CopyMetas(DstNibbleBuffer); testassert(memcmp(SrcNibbleBuffer, DstNibbleBuffer, (16 * 16 * 256 / 2) - 1) == 0); - + memset(SrcNibbleBuffer, 0x00, 16 * 16 * 256 / 2); buffer.CopyBlockLight(DstNibbleBuffer); testassert(memcmp(SrcNibbleBuffer, DstNibbleBuffer, (16 * 16 * 256 / 2) - 1) == 0); - + memset(SrcNibbleBuffer, 0xFF, 16 * 16 * 256 / 2); buffer.CopySkyLight(DstNibbleBuffer); testassert(memcmp(SrcNibbleBuffer, DstNibbleBuffer, (16 * 16 * 256 / 2) - 1) == 0); } - + // All tests successful: return 0; } -- cgit v1.2.3