File: Hash_test.C

package info (click to toggle)
ball 1.5.0%2Bgit20180813.37fc53c-11
  • links: PTS, VCS
  • area: main
  • in suites: bookworm
  • size: 239,924 kB
  • sloc: cpp: 326,149; ansic: 4,208; python: 2,303; yacc: 1,778; lex: 1,099; xml: 958; sh: 322; javascript: 164; makefile: 88
file content (63 lines) | stat: -rw-r--r-- 1,618 bytes parent folder | download | duplicates (7)
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
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
// -*- Mode: C++; tab-width: 2; -*-
// vi: set ts=2:
//

#include <BALL/CONCEPT/classTest.h>

///////////////////////////
#include <BALL/COMMON/hash.h>
///////////////////////////

START_TEST(Hash)

/////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////

using namespace BALL;
char* c = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789";
string s1 = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789";
String s2 = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789";

CHECK([EXTRA] HashIndexhashString(const char* str))
	TEST_EQUAL(hashString(c), 140)
RESULT

CHECK([EXTRA] hashPJWString(const char* str))
	TEST_EQUAL(hashPJWString(c), 1450744505)
RESULT

CHECK([EXTRA] hashElfString(const char* str))
	TEST_EQUAL(hashElfString(c), 19269177)
RESULT

CHECK([EXTRA] Hash(const T& key))
	TEST_EQUAL(Hash(1), 1)
RESULT

CHECK([EXTRA] HashIndex Hash(const string& s))
	TEST_EQUAL(Hash(s1), 140)
RESULT

CHECK([EXTRA] HashIndex Hash(const String& s))
	TEST_EQUAL(Hash(s2), 140)
RESULT

CHECK([EXTRA] HashIndex Hash(void *const& ptr))
	void* x = 0;
	TEST_EQUAL(Hash(x), 0)
	x = (void*)123;
	TEST_EQUAL(Hash(x), 106040973)
RESULT

CHECK([EXTRA] HashIndex getNextPrime(HashIndex l))
	TEST_EQUAL(getNextPrime(0), 3)
	TEST_EQUAL(getNextPrime(1), 3)
	TEST_EQUAL(getNextPrime(2), 3)
	TEST_EQUAL(getNextPrime(3), 3)
	TEST_EQUAL(getNextPrime(4), 5)
	TEST_EQUAL(getNextPrime(5), 5)
RESULT

/////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////
END_TEST