@@ -18,9 +18,11 @@ var hashTestData = []struct {
18
18
// {"test_data/gif/animated_zebras.gif", 7086864532766789979},
19
19
}
20
20
21
+ // ImageHash
22
+
21
23
func BenchmarkImageHash (b * testing.B ) {
22
24
for i := 0 ; i < b .N ; i ++ {
23
- _ , err := ImageHash (hashTestData [0 ].file )
25
+ _ , err := ImageHashDCT (hashTestData [0 ].file )
24
26
if err != nil {
25
27
b .Fatal (err )
26
28
}
@@ -29,7 +31,7 @@ func BenchmarkImageHash(b *testing.B) {
29
31
30
32
func TestImageHash (t * testing.T ) {
31
33
for _ , test := range hashTestData {
32
- hash , err := ImageHash (test .file )
34
+ hash , err := ImageHashDCT (test .file )
33
35
if err != nil {
34
36
t .Fatal (err )
35
37
}
@@ -41,10 +43,112 @@ func TestImageHash(t *testing.T) {
41
43
}
42
44
43
45
func ExampleImageHash () {
44
- hash , err := ImageHash ("test_data/jpg/cat.jpg" )
46
+ hash , err := ImageHashDCT ("test_data/jpg/cat.jpg" )
45
47
if err != nil {
46
48
panic (err )
47
49
}
48
50
fmt .Println (hash )
49
51
// Output: 11220389026139797626
50
52
}
53
+
54
+ // HammingDistanceForHashes
55
+
56
+ func BenchmarkHammingDistanceForHashesForSameImage (b * testing.B ) {
57
+ for i := 0 ; i < b .N ; i ++ {
58
+ _ , err := HammingDistanceForHashes (7086864532766789979 , 7086864532766789979 )
59
+ if err != nil {
60
+ b .Fatal (err )
61
+ }
62
+ }
63
+ }
64
+
65
+ func BenchmarkHammingDistanceForHashesForDifferentImages (b * testing.B ) {
66
+ for i := 0 ; i < b .N ; i ++ {
67
+ _ , err := HammingDistanceForHashes (7086864532766789979 , 11220389026139797626 )
68
+ if err != nil {
69
+ b .Fatal (err )
70
+ }
71
+ }
72
+ }
73
+
74
+ func TestHammingDistanceForHashesForSameImage (t * testing.T ) {
75
+ d , err := HammingDistanceForHashes (7086864532766789979 , 7086864532766789979 )
76
+ if err != nil {
77
+ t .Fatal (err )
78
+ }
79
+
80
+ if d != 0 {
81
+ t .Errorf ("Distance Mismatch: expected 0, got %d" , d )
82
+ }
83
+ }
84
+
85
+ func TestHammingDistanceForHashesForDifferentImages (t * testing.T ) {
86
+ d , err := HammingDistanceForHashes (11220389026139797626 , 4855808264951085874 )
87
+ if err != nil {
88
+ t .Fatal (err )
89
+ }
90
+
91
+ if d == 0 {
92
+ t .Error ("Distance Mismatch: got unexpected 0" )
93
+ }
94
+ }
95
+
96
+ func ExampleHammingDistanceForHashes () {
97
+ d , err := HammingDistanceForHashes (11220389026139797626 , 4855808264951085874 )
98
+ if err != nil {
99
+ panic (err )
100
+ }
101
+ fmt .Println (d )
102
+ // Output: 30
103
+ }
104
+
105
+ // HammingDistanceForFiles
106
+
107
+ func BenchmarkHammingDistanceForFilesForSameImage (b * testing.B ) {
108
+ for i := 0 ; i < b .N ; i ++ {
109
+ _ , err := HammingDistanceForFiles ("test_data/jpg/cat.jpg" , "test_data/jpg/cat.jpg" )
110
+ if err != nil {
111
+ b .Fatal (err )
112
+ }
113
+ }
114
+ }
115
+
116
+ func BenchmarkHammingDistanceForFilesForDifferentImages (b * testing.B ) {
117
+ for i := 0 ; i < b .N ; i ++ {
118
+ _ , err := HammingDistanceForFiles ("test_data/jpg/cat.jpg" , "test_data/png/gopher.png" )
119
+ if err != nil {
120
+ b .Fatal (err )
121
+ }
122
+ }
123
+ }
124
+
125
+ func TestHammingDistanceForFilesForSameImage (t * testing.T ) {
126
+ d , err := HammingDistanceForFiles ("test_data/jpg/cat.jpg" , "test_data/jpg/cat.jpg" )
127
+ if err != nil {
128
+ t .Fatal (err )
129
+ }
130
+
131
+ if d != 0 {
132
+ t .Errorf ("Distance Mismatch: expected 0, got %d" , d )
133
+ }
134
+ }
135
+
136
+ func TestHammingDistanceForFilesForDifferentImages (t * testing.T ) {
137
+ d , err := HammingDistanceForFiles ("test_data/jpg/cat.jpg" , "test_data/png/gopher.png" )
138
+ if err != nil {
139
+ t .Fatal (err )
140
+ }
141
+
142
+ if d == 0 {
143
+ t .Error ("Distance Mismatch: got unexpected 0" )
144
+ }
145
+ }
146
+
147
+ func ExampleHammingDistanceForFiles () {
148
+ d , err := HammingDistanceForFiles ("test_data/jpg/cat.jpg" , "test_data/png/gopher.png" )
149
+ if err != nil {
150
+ panic (err )
151
+ }
152
+ fmt .Println (d )
153
+ // Output: 30
154
+ }
0 commit comments