diff options
author | madmaxoft <github@xoft.cz> | 2014-06-14 12:06:48 +0200 |
---|---|---|
committer | madmaxoft <github@xoft.cz> | 2014-06-14 12:06:48 +0200 |
commit | f8f7748a09b936cc888c0c4a1f0ae9e9e444ba5b (patch) | |
tree | d2f3e35f37821e93d92143db2055bcedeaf57142 /tests/ChunkData/Coordinates.cpp | |
parent | Player.h: Moved doxy-comments to Entity.h (diff) | |
parent | Fixed a repeater issue (diff) | |
download | cuberite-f8f7748a09b936cc888c0c4a1f0ae9e9e444ba5b.tar cuberite-f8f7748a09b936cc888c0c4a1f0ae9e9e444ba5b.tar.gz cuberite-f8f7748a09b936cc888c0c4a1f0ae9e9e444ba5b.tar.bz2 cuberite-f8f7748a09b936cc888c0c4a1f0ae9e9e444ba5b.tar.lz cuberite-f8f7748a09b936cc888c0c4a1f0ae9e9e444ba5b.tar.xz cuberite-f8f7748a09b936cc888c0c4a1f0ae9e9e444ba5b.tar.zst cuberite-f8f7748a09b936cc888c0c4a1f0ae9e9e444ba5b.zip |
Diffstat (limited to '')
-rw-r--r-- | tests/ChunkData/Coordinates.cpp | 143 |
1 files changed, 143 insertions, 0 deletions
diff --git a/tests/ChunkData/Coordinates.cpp b/tests/ChunkData/Coordinates.cpp new file mode 100644 index 000000000..48d731c7e --- /dev/null +++ b/tests/ChunkData/Coordinates.cpp @@ -0,0 +1,143 @@ + +#include "Globals.h" +#include "ChunkData.h" + + + +int main(int argc, char** argv) +{ + { + cChunkData buffer; + + // 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); + + // loaded but not written segments + 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); + + // Out of Range + CheckAsserts( + buffer.SetBlock(-1, 0, 0, 0); + ); + CheckAsserts( + buffer.SetBlock(0, -1, 0, 0); + ); + CheckAsserts( + buffer.SetBlock(0, 0, -1, 0); + ); + CheckAsserts( + buffer.SetBlock(256, 0, 0, 0); + ); + CheckAsserts( + buffer.SetBlock(0, 256, 0, 0); + ); + CheckAsserts( + buffer.SetBlock(0, 0, 256, 0); + ); + + // Out of Range + CheckAsserts( + buffer.GetBlock(-1, 0, 0); + ); + CheckAsserts( + buffer.GetBlock(0, -1, 0); + ); + CheckAsserts( + buffer.GetBlock(0, 0, -1); + ); + CheckAsserts( + buffer.GetBlock(256, 0, 0); + ); + CheckAsserts( + buffer.GetBlock(0, 256, 0); + ); + CheckAsserts( + buffer.GetBlock(0, 0, 256); + ); + + // Out of Range + CheckAsserts( + buffer.SetMeta(-1, 0, 0, 0); + ); + CheckAsserts( + buffer.SetMeta(0, -1, 0, 0); + ); + CheckAsserts( + buffer.SetMeta(0, 0, -1, 0); + ); + CheckAsserts( + buffer.SetMeta(256, 0, 0, 0); + ); + CheckAsserts( + buffer.SetMeta(0, 256, 0, 0); + ); + CheckAsserts( + buffer.SetMeta(0, 0, 256, 0); + ); + + // Out of Range + CheckAsserts( + buffer.GetMeta(-1, 0, 0); + ); + CheckAsserts( + buffer.GetMeta(0, -1, 0); + ); + CheckAsserts( + buffer.GetMeta(0, 0, -1); + ); + CheckAsserts( + buffer.GetMeta(256, 0, 0); + ); + CheckAsserts( + buffer.GetMeta(0, 256, 0); + ); + CheckAsserts( + buffer.GetMeta(0, 0, 256); + ); + } + + { + cChunkData buffer; + + // 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); + } + + + { + // Operator = + cChunkData buffer; + buffer.SetBlock(0, 0, 0, 0x42); + cChunkData copy; + #if __cplusplus < 201103L + copy = buffer; + #else + copy = std::move(buffer); + #endif + testassert(copy.GetBlock(0, 0, 0) == 0x42); + #if __cplusplus < 201103L + copy = copy; + #else + copy = std::move(copy); + #endif + testassert(copy.GetBlock(0, 0, 0) == 0x42); + } + + return 0; +} |