source: trunk/lib/test/hash_test.cpp @ 1918

Last change on this file since 1918 was 1918, checked in by ksherdy, 7 years ago

Update hash functions.

File size: 3.3 KB
Line 
1#include "../hash.hpp"
2#include <iostream>
3using namespace std;
4
5int main() {
6
7    char b0[] = {"abcdefgh"};
8    char b1[] = {"ABCDEFGH"};
9    char b2[] = {"AAAAAAAA"};
10    char b3[] = {"FFFFFFFF"};
11
12    uint64_t r = 0;
13    uint32_t hash_size = 0;
14
15    uint64_t a = 1;
16    uint64_t b = 2;
17
18    print_register("b0", *(uint64_t *) b0);
19    print_register("b1", *(uint64_t *) b1);
20    print_register("b2", *(uint64_t *) b2);
21    print_register("b3", *(uint64_t *) b3);
22
23    // Expect 41
24    /*
25    for(uint32_t pos=0;pos<64;pos+=8) {
26        r = bit_offset_slice((uint8_t *) &b2,pos,8);
27        print_register("r", r);
28    }
29    */
30
31    // Expect 4141
32    /*
33    for(uint32_t pos=0;pos<64-8;pos+=8) {
34        r = bit_offset_slice((uint8_t *) &b2,pos,16);
35        print_register("r", r);
36    }
37    */
38
39    // Length 8 (bits), pos 1,9,..., Expect A0
40    /*
41    for(uint32_t pos=1;pos<64-8;pos+=8) {
42        r = bit_offset_slice((uint8_t *) &b2,pos,8);
43        print_register("r", r);
44    }
45    */
46
47    // Length 16 (bits), pos 1,9,..., Expect A0A0
48    /*
49    for(uint32_t pos=1;pos<64-16;pos+=8) {
50        r = bit_offset_slice((uint8_t *) &b2,pos,16);
51        print_register("r", r);
52    }
53    */
54
55    // Length 8 (bits), pos 2,10,..., Expect 50
56    /*
57    for(uint32_t pos=2;pos<64-8;pos+=8) {
58        r = bit_offset_slice((uint8_t *) &b2,pos,8);
59        print_register("r", r);
60    }
61    */
62
63    // Length 16 (bits), pos 2,10,..., Expect 5050
64    /*
65    for(uint32_t pos=2;pos<64-16;pos+=8) {
66        r = bit_offset_slice((uint8_t *) &b2,pos,16);
67        print_register("r", r);
68    }
69    */
70
71    // Length 8 (bits), pos 3,11,..., Expect 28
72    /*
73    for(uint32_t pos=3;pos<64-8;pos+=8) {
74        r = bit_offset_slice((uint8_t *) &b2,pos,8);
75        print_register("r", r);
76    }
77    */
78
79    // Length 16 (bits), pos 3,11,..., Expect 2828
80    /*
81    for(uint32_t pos=3;pos<64-16;pos+=8) {
82        r = bit_offset_slice((uint8_t *) &b2,pos,16);
83        print_register("r", r);
84    }
85    */
86
87    // Length 8 (bits), pos 3,11,..., Expect 05
88    /*
89    for(uint32_t pos=6;pos<64-8;pos+=8) {
90        r = bit_offset_slice((uint8_t *) &b2,pos,8);
91        print_register("r", r);
92    }
93    */
94
95    // Length 16 (bits), pos 3,11,..., Expect 0505
96    /*
97    for(uint32_t pos=6;pos<64-16;pos+=8) {
98        r = bit_offset_slice((uint8_t *) &b2,pos,16);
99        print_register("r", r);
100    }
101    */
102
103    /*
104    for(uint32_t mask_bits=1;mask_bits<64;mask_bits++) {
105        r = byte_mask_hash((uint8_t *) &b0, 0, mask_bits);
106        print_register("r", r);
107    }
108    */
109
110    // Length 8 (bits)
111    /*
112    hash_size = 8;
113    for(uint32_t pos=0;pos<sizeof(uint64_t);pos++) {
114
115        r = bit_compress_hash((uint8_t *) &b0,(uint8_t *) &b2, pos*8, 8, hash_size);
116        cout << dec << "bit_compress_hash = " << r << endl << endl;
117        cout << endl << endl;
118
119    }
120    */
121
122    /*
123    uint8_t pos, slice;
124    hash_size = 8;
125
126    slice = 16;
127    pos = 0;
128    r = byte_compress_hash((uint8_t *) &b0, pos, slice, hash_size);
129
130    pos = 1;
131    r = byte_compress_hash((uint8_t *) &b0, pos, slice, hash_size);
132
133    slice = 24;
134    pos = 0;
135    r = byte_compress_hash((uint8_t *) &b0, pos, slice, hash_size);
136
137    pos = 1;
138    r = byte_compress_hash((uint8_t *) &b0, pos, slice, hash_size);
139
140    slice = 32;
141
142    pos = 0;
143    r = byte_compress_hash((uint8_t *) &b0, pos, slice, hash_size);
144
145    pos = 1;
146    r = byte_compress_hash((uint8_t *) &b0, pos, slice, hash_size);
147
148    pos = 2;
149    r = byte_compress_hash((uint8_t *) &b0, pos, slice, hash_size);
150    */
151
152    return 1;
153}
Note: See TracBrowser for help on using the repository browser.