summaryrefslogtreecommitdiff
path: root/libnbtplusplus/test/test_value.h
diff options
context:
space:
mode:
Diffstat (limited to 'libnbtplusplus/test/test_value.h')
-rw-r--r--libnbtplusplus/test/test_value.h36
1 files changed, 36 insertions, 0 deletions
diff --git a/libnbtplusplus/test/test_value.h b/libnbtplusplus/test/test_value.h
new file mode 100644
index 0000000000..590c5bf2cc
--- /dev/null
+++ b/libnbtplusplus/test/test_value.h
@@ -0,0 +1,36 @@
+#include <cxxtest/TestSuite.h>
+#include <cstdint>
+#include "value.h"
+
+using namespace nbt;
+
+class value_assignment_test : public CxxTest::TestSuite
+{
+ public:
+ void test_numeric_assignments()
+ {
+ value v;
+
+ v = int8_t(-5);
+ TS_ASSERT_EQUALS(int32_t(v), int32_t(-5));
+ TS_ASSERT_EQUALS(double(v), 5.);
+
+ v = value();
+ v = int16_t(12345);
+ TS_ASSERT_EQUALS(int32_t(v), int32_t(12345));
+ TS_ASSERT_EQUALS(double(v), 12345.);
+
+ v = value();
+ v = int32_t(100000);
+ TS_ASSERT_EQUALS(int64_t(v), int64_t(100000));
+ TS_ASSERT_EQUALS(double(v), 100000.);
+
+ v = value();
+ v = float(3.14f);
+ TS_ASSERT_EQUALS(double(v), 3.14);
+
+ v = value();
+ v = double(2.718281828);
+ TS_ASSERT_EQUALS(double(v), 2.718281828);
+ }
+};