summaryrefslogtreecommitdiffhomepage
path: root/src/global-coords.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/global-coords.cpp')
-rw-r--r--src/global-coords.cpp17
1 files changed, 17 insertions, 0 deletions
diff --git a/src/global-coords.cpp b/src/global-coords.cpp
new file mode 100644
index 00000000..997f1c11
--- /dev/null
+++ b/src/global-coords.cpp
@@ -0,0 +1,17 @@
+#include "global-coords.hpp"
+
+namespace floormat {
+
+static_assert(sizeof(decltype(local_coords::x))*8 == 8);
+static_assert(sizeof(decltype(chunk_coords::x))*8 == 16);
+static_assert(std::is_same_v<decltype(local_coords::x), decltype(local_coords::y)>);
+static_assert(std::is_same_v<decltype(chunk_coords::x), decltype(chunk_coords::y)>);
+
+static_assert(std::is_same_v<decltype(chunk_coords::x), decltype(chunk_coords::y)>);
+
+static_assert(global_coords{{-1, -1}, {2, 3}} == global_coords{((-1 + (1 << 15)) << 4) + 2, ((-1 + (1 << 15)) << 4) + 3});
+static_assert(global_coords{15, 15}.chunk() == global_coords{}.chunk());
+static_assert(global_coords{15, 16}.chunk() != global_coords{}.chunk());
+static_assert(global_coords{(1 + (1<<15)) << 4 | 3, (2 + (1<<15)) << 4 | 4} == global_coords{{1, 2}, {3, 4}});
+
+} // namespace floormat