blob: 18bfb722f4a74fe4bfb8d3298ecca6be514097a9 [file] [log] [blame]
Talin1a4b19e2012-02-18 21:00:49 +00001//===- llvm/unittest/ADT/HashingTest.cpp ----------------------------------===//
2//
3// The LLVM Compiler Infrastructure
4//
5// This file is distributed under the University of Illinois Open Source
6// License. See LICENSE.TXT for details.
7//
8//===----------------------------------------------------------------------===//
9//
10// Hashing.h unit tests.
11//
12//===----------------------------------------------------------------------===//
13
14#include "gtest/gtest.h"
15#include "llvm/ADT/Hashing.h"
16
17using namespace llvm;
18
19namespace {
20
21TEST(HashingTest, EmptyHashTest) {
22 GeneralHash Hash;
23 ASSERT_EQ(0u, Hash.finish());
24}
25
26TEST(HashingTest, IntegerHashTest) {
27 ASSERT_TRUE(GeneralHash().add(1).finish() == GeneralHash().add(1).finish());
28 ASSERT_TRUE(GeneralHash().add(1).finish() != GeneralHash().add(2).finish());
29}
30
31TEST(HashingTest, StringHashTest) {
32 ASSERT_TRUE(
33 GeneralHash().add("abc").finish() == GeneralHash().add("abc").finish());
34 ASSERT_TRUE(
35 GeneralHash().add("abc").finish() != GeneralHash().add("abcd").finish());
36}
37
38TEST(HashingTest, FloatHashTest) {
39 ASSERT_TRUE(
40 GeneralHash().add(1.0f).finish() == GeneralHash().add(1.0f).finish());
41 ASSERT_TRUE(
42 GeneralHash().add(1.0f).finish() != GeneralHash().add(2.0f).finish());
43}
44
45TEST(HashingTest, DoubleHashTest) {
46 ASSERT_TRUE(GeneralHash().add(1.).finish() == GeneralHash().add(1.).finish());
47 ASSERT_TRUE(GeneralHash().add(1.).finish() != GeneralHash().add(2.).finish());
48}
49
50TEST(HashingTest, IntegerArrayHashTest) {
51 int a[] = { 1, 2 };
52 int b[] = { 1, 3 };
53 ASSERT_TRUE(GeneralHash().add(a).finish() == GeneralHash().add(a).finish());
54 ASSERT_TRUE(GeneralHash().add(a).finish() != GeneralHash().add(b).finish());
55}
56
57}