Веб-сайт самохостера Lotigara

summaryrefslogtreecommitdiff
path: root/source/test/vlq_test.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'source/test/vlq_test.cpp')
-rw-r--r--source/test/vlq_test.cpp30
1 files changed, 30 insertions, 0 deletions
diff --git a/source/test/vlq_test.cpp b/source/test/vlq_test.cpp
new file mode 100644
index 0000000..5681c14
--- /dev/null
+++ b/source/test/vlq_test.cpp
@@ -0,0 +1,30 @@
+#include "StarVlqEncoding.hpp"
+
+#include "gtest/gtest.h"
+
+using namespace Star;
+
+TEST(VlqTest, All) {
+ char buffer[10];
+ int64_t result;
+
+ EXPECT_EQ(writeVlqI(-1, buffer), 1u);
+ EXPECT_EQ(readVlqI(result, buffer), 1u);
+ EXPECT_EQ(result, -1);
+
+ EXPECT_EQ(writeVlqI(-65, buffer), 2u);
+ EXPECT_EQ(readVlqI(result, buffer), 2u);
+ EXPECT_EQ(result, -65);
+
+ EXPECT_EQ(writeVlqI(-64, buffer), 1u);
+ EXPECT_EQ(readVlqI(result, buffer), 1u);
+ EXPECT_EQ(result, -64);
+
+ EXPECT_EQ(writeVlqI((int64_t)1 << 63, buffer), 10u);
+ EXPECT_EQ(readVlqI(result, buffer), 10u);
+ EXPECT_EQ(result, (int64_t)1 << 63);
+
+ EXPECT_EQ(writeVlqI(0, buffer), 1u);
+ EXPECT_EQ(readVlqI(result, buffer), 1u);
+ EXPECT_EQ(result, 0);
+}