-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathtest_hash.cc
46 lines (35 loc) · 1.7 KB
/
test_hash.cc
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
#include "hash.h"
#include <cassert>
#include <cstdlib>
#include <string>
#include <algorithm>
int main(int, char*[]) {
assert(lace::hash(0) == lace::hash(0));
assert(lace::hash<uint8_t>(1) == lace::hash<uint8_t>(1));
assert(lace::hash<uint16_t>(1) == lace::hash<uint16_t>(1));
assert(lace::hash<uint32_t>(1) == lace::hash<uint32_t>(1));
assert(lace::hash<uint64_t>(1) == lace::hash<uint64_t>(1));
assert(lace::hash<uint8_t>(1) != lace::hash<uint16_t>(1));
assert(lace::hash<uint16_t>(1) != lace::hash<uint32_t>(1));
assert(lace::hash<uint32_t>(1) != lace::hash<uint64_t>(1));
assert(lace::hash<uint8_t>(1) != lace::hash<uint8_t>(2));
assert(lace::hash<uint16_t>(1) != lace::hash<uint16_t>(2));
assert(lace::hash<uint32_t>(1) != lace::hash<uint32_t>(2));
assert(lace::hash<uint64_t>(1) != lace::hash<uint64_t>(2));
assert(lace::hash<const char *>("a") == lace::hash<const char *>("a"));
assert(lace::hash<const char *>("a") != lace::hash<const char *>("b"));
char c[] = "a";
assert(lace::hash<const char *>("a") == lace::hash<char *>(c));
assert(lace::hash("a") == lace::hash("a"));
assert(lace::hash(L"a") == lace::hash(L"a"));
assert(lace::hash(L"a") != lace::hash("a"));
assert(lace::hash<const char *>("a") == lace::hash(std::string("a")));
assert(lace::hash<const char *>("a") != lace::hash(std::string("b")));
assert(lace::hash<std::string>(std::string("a")) == lace::hash<const std::string>(std::string("a")));
assert(lace::hash<std::string>(std::string("a")) != lace::hash<std::string>(("b")));
std::string A("A");
std::string aa("aa");
std::transform(A.begin(), A.end(), A.begin(), ::tolower);
assert(lace::hash(A) == lace::hash(aa.substr(1)));
return EXIT_SUCCESS;
}