1 //===- llvm/unittest/ADT/HashingTest.cpp ----------------------------------===//
3 // The LLVM Compiler Infrastructure
5 // This file is distributed under the University of Illinois Open Source
6 // License. See LICENSE.TXT for details.
8 //===----------------------------------------------------------------------===//
10 // Hashing.h unit tests.
12 //===----------------------------------------------------------------------===//
14 #include "gtest/gtest.h"
15 #include "llvm/ADT/Hashing.h"
21 TEST(HashingTest, EmptyHashTest) {
23 ASSERT_EQ(0u, Hash.finish());
26 TEST(HashingTest, IntegerHashTest) {
27 ASSERT_TRUE(GeneralHash().add(1).finish() == GeneralHash().add(1).finish());
28 ASSERT_TRUE(GeneralHash().add(1).finish() != GeneralHash().add(2).finish());
31 TEST(HashingTest, StringHashTest) {
33 GeneralHash().add("abc").finish() == GeneralHash().add("abc").finish());
35 GeneralHash().add("abc").finish() != GeneralHash().add("abcd").finish());
38 TEST(HashingTest, FloatHashTest) {
40 GeneralHash().add(1.0f).finish() == GeneralHash().add(1.0f).finish());
42 GeneralHash().add(1.0f).finish() != GeneralHash().add(2.0f).finish());
45 TEST(HashingTest, DoubleHashTest) {
46 ASSERT_TRUE(GeneralHash().add(1.).finish() == GeneralHash().add(1.).finish());
47 ASSERT_TRUE(GeneralHash().add(1.).finish() != GeneralHash().add(2.).finish());
50 TEST(HashingTest, IntegerArrayHashTest) {
53 ASSERT_TRUE(GeneralHash().add(a).finish() == GeneralHash().add(a).finish());
54 ASSERT_TRUE(GeneralHash().add(a).finish() != GeneralHash().add(b).finish());