-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathsift_test.go
130 lines (111 loc) · 3.9 KB
/
sift_test.go
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
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
package sift
import (
"testing"
"fmt"
"time"
)
func TestSiftMatch(t *testing.T) {
c := NewSiftClient(nil)
var b bool
timeCostWrapper("test1", func() {
b = c.Match(&ImageEntity{"img/beaver.png", "001"}, &ImageEntity{"img/beaver_xform.png", "002"})
fmt.Printf("test1 %v\n", b)
})
timeCostWrapper("test2", func() {
b = c.Match(&ImageEntity{"img/jianpan_a.jpeg", "003"}, &ImageEntity{"img/jianpan_b.jpeg", "004"})
fmt.Printf("test2 %v\n", b)
})
timeCostWrapper("test3", func() {
b = c.Match(&ImageEntity{"img/jianpan_a.jpeg", "003"}, &ImageEntity{"img/jianpan_b.jpeg", "004"})
fmt.Printf("test3 %v\n", b)
})
timeCostWrapper("test4", func() {
b = c.Match(&ImageEntity{"img/shubiao_a.jpeg", "005"}, &ImageEntity{"img/jianpan_b.jpeg", "004"})
fmt.Printf("test4 %v\n", b)
})
timeCostWrapper("macth same file same id", func() {
c.Match(&ImageEntity{"img/jianpan_a.jpeg", "103"}, &ImageEntity{"img/jianpan_a.jpeg", "103"})
})
timeCostWrapper("macth same file diff id", func() {
c.Match(&ImageEntity{"img/jianpan_a.jpeg", "113"}, &ImageEntity{"img/jianpan_a.jpeg", "123"})
})
}
func TestEvicted(t *testing.T) {
c := NewSiftClient(&SiftClientOption{
CacheSize: 20,
})
var b bool
timeCostWrapper("test1", func() {
for i := 0; i < 10000; i++ {
b = c.Match(&ImageEntity{"img/beaver.png", 100 + i}, &ImageEntity{"img/beaver_xform.png", 200 + i})
}
//b = c.Match(&ImageEntity{"img/beaver.png", "001"}, &ImageEntity{"img/beaver_xform.png", "002"})
})
timeCostWrapper("test2", func() {
b = c.Match(&ImageEntity{"img/beaver.png", "001"}, &ImageEntity{"img/beaver_xform.png", "002"})
})
for {
time.Sleep(1000 * time.Millisecond)
}
}
func TestLoad(t *testing.T) {
c := NewSiftClient(&SiftClientOption{
CacheSize: 200,
})
//timeCostWrapper("img/beaver.png laod", func() {
// c.Load(&ImageEntity{"img/beaver.png", "001"})
//})
//timeCostWrapper("img/beaver_xform.png load", func() {
// c.Load(&ImageEntity{"img/beaver_xform.png", "002"})
//})
//timeCostWrapper("panic load", func() {
// c.Load(&ImageEntity{"beaver_xform.png", "002"})
//})
//timeCostWrapper("img/jianpan_a.jpeg load", func() {
// c.Load(&ImageEntity{"img/jianpan_a.jpeg", "003"})
//})
//timeCostWrapper("cache macth", func() {
// c.Match(&ImageEntity{"img/beaver.png", "001"}, &ImageEntity{"img/beaver_xform.png", "002"})
//})
//
//timeCostWrapper("half cache macth", func() {
// c.Match(&ImageEntity{"img/jianpan_a.jpeg", "003"}, &ImageEntity{"img/jianpan_b.jpeg", "004"})
//})
//
//timeCostWrapper("full cache macth", func() {
// c.Match(&ImageEntity{"img/jianpan_a.jpeg", "003"}, &ImageEntity{"img/jianpan_b.jpeg", "004"})
//})
//
//timeCostWrapper("null cache macth", func() {
// c.Match(&ImageEntity{"img/jianpan_a.jpeg", "103"}, &ImageEntity{"img/jianpan_b.jpeg", "104"})
//})
timeCostWrapper("size macth", func() {
c.Match(&ImageEntity{"img/jianpan_a1.jpeg", "img/jianpan_a1.jpeg"}, &ImageEntity{"img/jianpan_b1.jpeg", "img/jianpan_b1.jpeg"})
})
timeCostWrapper("size macth2", func() {
c.Match(&ImageEntity{"img/jianpan_a.jpeg", "img/jianpan_a.jpeg"}, &ImageEntity{"img/jianpan_b.jpeg", "img/jianpan_b.jpeg"})
})
timeCostWrapper("size macth3", func() {
c.Match(&ImageEntity{"img/jianpan_a.jpeg", "img/jianpan_a11.jpeg"}, &ImageEntity{"img/jianpan_b1.jpeg", "img/jianpan_111b.jpeg"})
})
}
func TestGetlplImageSize(t *testing.T) {
timeCostWrapper("beaver", func() {
img := cvLoadImg("img/beaver.png")
fmt.Printf("img/beaver.png %d\n", getImageSize(img))
})
timeCostWrapper("beaver_xform", func() {
img := cvLoadImg("img/beaver_xform.png")
fmt.Printf("img/beaver_xform.png %d\n", getImageSize(img))
})
timeCostWrapper("jianpan_a", func() {
img := cvLoadImg("img/jianpan_a.jpeg")
fmt.Printf("img/jianpan_a.jpeg %d\n", getImageSize(img))
})
}
func timeCostWrapper(s string, foo func()) {
now := time.Now()
foo()
delta := time.Now().Sub(now).Nanoseconds()
fmt.Printf("%s %dms\n", s, delta / 1e6)
}