summaryrefslogtreecommitdiffstats
path: root/tests/ChunkData/ArraytoCoord.cpp
diff options
context:
space:
mode:
authorTiger Wang <ziwei.tiger@hotmail.co.uk>2014-06-04 14:14:38 +0200
committerTiger Wang <ziwei.tiger@hotmail.co.uk>2014-06-04 14:14:38 +0200
commit86e5273cd17be8b8f1ae8a9b0dc2d212cb9b2791 (patch)
tree1b5c702a9e9da9115e64c317bdad5aba3544d4a1 /tests/ChunkData/ArraytoCoord.cpp
parentImplemented bed homes (diff)
parentMerge pull request #1059 from mc-server/coverity_fixes (diff)
downloadcuberite-86e5273cd17be8b8f1ae8a9b0dc2d212cb9b2791.tar
cuberite-86e5273cd17be8b8f1ae8a9b0dc2d212cb9b2791.tar.gz
cuberite-86e5273cd17be8b8f1ae8a9b0dc2d212cb9b2791.tar.bz2
cuberite-86e5273cd17be8b8f1ae8a9b0dc2d212cb9b2791.tar.lz
cuberite-86e5273cd17be8b8f1ae8a9b0dc2d212cb9b2791.tar.xz
cuberite-86e5273cd17be8b8f1ae8a9b0dc2d212cb9b2791.tar.zst
cuberite-86e5273cd17be8b8f1ae8a9b0dc2d212cb9b2791.zip
Diffstat (limited to 'tests/ChunkData/ArraytoCoord.cpp')
-rw-r--r--tests/ChunkData/ArraytoCoord.cpp89
1 files changed, 89 insertions, 0 deletions
diff --git a/tests/ChunkData/ArraytoCoord.cpp b/tests/ChunkData/ArraytoCoord.cpp
new file mode 100644
index 000000000..0daf38f7b
--- /dev/null
+++ b/tests/ChunkData/ArraytoCoord.cpp
@@ -0,0 +1,89 @@
+
+#include "Globals.h"
+#include "ChunkData.h"
+
+
+
+int main(int argc, char** argv)
+{
+ {
+ // Test first segment
+ cChunkData buffer;
+
+ 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;
+
+ 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;
+
+ 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;
+}
+