diff --git a/native/jni/NativeFileList.mk b/native/jni/NativeFileList.mk
index 4a89b2b..5e66254 100644
--- a/native/jni/NativeFileList.mk
+++ b/native/jni/NativeFileList.mk
@@ -129,6 +129,7 @@
     suggest/policyimpl/dictionary/structure/v4/content/probability_entry_test.cpp \
     suggest/policyimpl/dictionary/utils/buffer_with_extendable_buffer_test.cpp \
     suggest/policyimpl/dictionary/utils/byte_array_utils_test.cpp \
+    suggest/policyimpl/dictionary/utils/sparse_table_test.cpp \
     suggest/policyimpl/dictionary/utils/trie_map_test.cpp \
     utils/autocorrection_threshold_utils_test.cpp \
     utils/int_array_view_test.cpp
diff --git a/native/jni/src/suggest/policyimpl/dictionary/utils/sparse_table.h b/native/jni/src/suggest/policyimpl/dictionary/utils/sparse_table.h
index fca8120..e1a96c6 100644
--- a/native/jni/src/suggest/policyimpl/dictionary/utils/sparse_table.h
+++ b/native/jni/src/suggest/policyimpl/dictionary/utils/sparse_table.h
@@ -24,7 +24,6 @@
 
 namespace latinime {
 
-// Note that there is a corresponding implementation in SparseTable.java.
 // TODO: Support multiple content buffers.
 class SparseTable {
  public:
diff --git a/native/jni/tests/suggest/policyimpl/dictionary/utils/sparse_table_test.cpp b/native/jni/tests/suggest/policyimpl/dictionary/utils/sparse_table_test.cpp
new file mode 100644
index 0000000..0b57156
--- /dev/null
+++ b/native/jni/tests/suggest/policyimpl/dictionary/utils/sparse_table_test.cpp
@@ -0,0 +1,47 @@
+/*
+ * Copyright (C) 2014 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#include "suggest/policyimpl/dictionary/utils/sparse_table.h"
+
+#include <gtest/gtest.h>
+
+#include "suggest/policyimpl/dictionary/utils/buffer_with_extendable_buffer.h"
+
+namespace latinime {
+namespace {
+
+TEST(SparseTableTest, TestSetAndGet) {
+    static const int BLOCK_SIZE = 64;
+    static const int DATA_SIZE = 4;
+    BufferWithExtendableBuffer indexTableBuffer(
+            BufferWithExtendableBuffer::DEFAULT_MAX_ADDITIONAL_BUFFER_SIZE);
+    BufferWithExtendableBuffer contentTableBuffer(
+            BufferWithExtendableBuffer::DEFAULT_MAX_ADDITIONAL_BUFFER_SIZE);
+    SparseTable sparseTable(&indexTableBuffer, &contentTableBuffer, BLOCK_SIZE, DATA_SIZE);
+
+    EXPECT_FALSE(sparseTable.contains(10));
+    EXPECT_TRUE(sparseTable.set(10, 100u));
+    EXPECT_EQ(100u, sparseTable.get(10));
+    EXPECT_TRUE(sparseTable.contains(10));
+    EXPECT_TRUE(sparseTable.contains(BLOCK_SIZE - 1));
+    EXPECT_FALSE(sparseTable.contains(BLOCK_SIZE));
+    EXPECT_TRUE(sparseTable.set(11, 101u));
+    EXPECT_EQ(100u, sparseTable.get(10));
+    EXPECT_EQ(101u, sparseTable.get(11));
+}
+
+}  // namespace
+}  // namespace latinime
