summaryrefslogtreecommitdiff
path: root/unittests/ADT/HashingTest.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'unittests/ADT/HashingTest.cpp')
-rw-r--r--unittests/ADT/HashingTest.cpp57
1 files changed, 57 insertions, 0 deletions
diff --git a/unittests/ADT/HashingTest.cpp b/unittests/ADT/HashingTest.cpp
new file mode 100644
index 0000000000..18bfb722f4
--- /dev/null
+++ b/unittests/ADT/HashingTest.cpp
@@ -0,0 +1,57 @@
+//===- llvm/unittest/ADT/HashingTest.cpp ----------------------------------===//
+//
+// The LLVM Compiler Infrastructure
+//
+// This file is distributed under the University of Illinois Open Source
+// License. See LICENSE.TXT for details.
+//
+//===----------------------------------------------------------------------===//
+//
+// Hashing.h unit tests.
+//
+//===----------------------------------------------------------------------===//
+
+#include "gtest/gtest.h"
+#include "llvm/ADT/Hashing.h"
+
+using namespace llvm;
+
+namespace {
+
+TEST(HashingTest, EmptyHashTest) {
+ GeneralHash Hash;
+ ASSERT_EQ(0u, Hash.finish());
+}
+
+TEST(HashingTest, IntegerHashTest) {
+ ASSERT_TRUE(GeneralHash().add(1).finish() == GeneralHash().add(1).finish());
+ ASSERT_TRUE(GeneralHash().add(1).finish() != GeneralHash().add(2).finish());
+}
+
+TEST(HashingTest, StringHashTest) {
+ ASSERT_TRUE(
+ GeneralHash().add("abc").finish() == GeneralHash().add("abc").finish());
+ ASSERT_TRUE(
+ GeneralHash().add("abc").finish() != GeneralHash().add("abcd").finish());
+}
+
+TEST(HashingTest, FloatHashTest) {
+ ASSERT_TRUE(
+ GeneralHash().add(1.0f).finish() == GeneralHash().add(1.0f).finish());
+ ASSERT_TRUE(
+ GeneralHash().add(1.0f).finish() != GeneralHash().add(2.0f).finish());
+}
+
+TEST(HashingTest, DoubleHashTest) {
+ ASSERT_TRUE(GeneralHash().add(1.).finish() == GeneralHash().add(1.).finish());
+ ASSERT_TRUE(GeneralHash().add(1.).finish() != GeneralHash().add(2.).finish());
+}
+
+TEST(HashingTest, IntegerArrayHashTest) {
+ int a[] = { 1, 2 };
+ int b[] = { 1, 3 };
+ ASSERT_TRUE(GeneralHash().add(a).finish() == GeneralHash().add(a).finish());
+ ASSERT_TRUE(GeneralHash().add(a).finish() != GeneralHash().add(b).finish());
+}
+
+}