diff options
author | Howaner <franzi.moos@googlemail.com> | 2014-06-17 19:03:56 +0200 |
---|---|---|
committer | Howaner <franzi.moos@googlemail.com> | 2014-06-17 19:03:56 +0200 |
commit | c60ba8a52d6f84316eae041a24e395a4c37ae181 (patch) | |
tree | edb983f4b20312115bc1033a2bd5a89c615ed30e /tests/ChunkData/ArraytoCoord.cpp | |
parent | Check block type from cBlockEntity (diff) | |
parent | Merge pull request #1099 from Howaner/Blocks (diff) | |
download | cuberite-c60ba8a52d6f84316eae041a24e395a4c37ae181.tar cuberite-c60ba8a52d6f84316eae041a24e395a4c37ae181.tar.gz cuberite-c60ba8a52d6f84316eae041a24e395a4c37ae181.tar.bz2 cuberite-c60ba8a52d6f84316eae041a24e395a4c37ae181.tar.lz cuberite-c60ba8a52d6f84316eae041a24e395a4c37ae181.tar.xz cuberite-c60ba8a52d6f84316eae041a24e395a4c37ae181.tar.zst cuberite-c60ba8a52d6f84316eae041a24e395a4c37ae181.zip |
Diffstat (limited to '')
-rw-r--r-- | tests/ChunkData/ArraytoCoord.cpp | 103 |
1 files changed, 103 insertions, 0 deletions
diff --git a/tests/ChunkData/ArraytoCoord.cpp b/tests/ChunkData/ArraytoCoord.cpp new file mode 100644 index 000000000..9d0ca6c8c --- /dev/null +++ b/tests/ChunkData/ArraytoCoord.cpp @@ -0,0 +1,103 @@ + +#include "Globals.h" +#include "ChunkData.h" + + + +int main(int argc, char** argv) +{ + class cMockAllocationPool + : public cAllocationPool<cChunkData::sChunkSection> + { + 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); + + BLOCKTYPE SrcBlockBuffer[16 * 16 * 256]; + memset(SrcBlockBuffer, 0x00, sizeof(SrcBlockBuffer)); + SrcBlockBuffer[7 + (4 * 16) + (5 * 16 * 16)] = 0xcd; + buffer.SetBlockTypes(SrcBlockBuffer); + 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); + + memset(SrcNibbleBuffer, 0x00, sizeof(SrcNibbleBuffer)); + SrcNibbleBuffer[(6 + (1 * 16) + (2 * 16 * 16)) / 2] = 0xe; + buffer.SetBlockLight(SrcNibbleBuffer); + 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); + } + + { + // test following segment + cChunkData buffer(Pool); + + BLOCKTYPE SrcBlockBuffer[16 * 16 * 256]; + memset(SrcBlockBuffer, 0x00, sizeof(SrcBlockBuffer)); + SrcBlockBuffer[7 + (4 * 16) + (24 * 16 * 16)] = 0xcd; + buffer.SetBlockTypes(SrcBlockBuffer); + 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); + + memset(SrcNibbleBuffer, 0x00, sizeof(SrcNibbleBuffer)); + SrcNibbleBuffer[(6 + 1 * 16 + 24 * 16 * 16) / 2] = 0xe; + buffer.SetBlockLight(SrcNibbleBuffer); + 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); + } + + { + // test zeros + cChunkData buffer(Pool); + + BLOCKTYPE SrcBlockBuffer[16 * 16 * 256]; + memset(SrcBlockBuffer, 0x00, sizeof(SrcBlockBuffer)); + buffer.SetBlockTypes(SrcBlockBuffer); + 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); + + memset(SrcNibbleBuffer, 0x00, sizeof(SrcNibbleBuffer)); + buffer.SetBlockLight(SrcNibbleBuffer); + testassert(buffer.GetBlockLight(6, 24, 1) == 0x0); + + memset(SrcNibbleBuffer, 0xff, sizeof(SrcNibbleBuffer)); + buffer.SetSkyLight(SrcNibbleBuffer); + testassert(buffer.GetSkyLight(6, 24, 1) == 0xf); + } + + // All tests passed: + return 0; +} + |