-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathcomparator_test.go
63 lines (57 loc) · 3.46 KB
/
comparator_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
package compare
import (
"fmt"
"testing"
"github.com/stretchr/testify/assert"
)
func TestCompare(t *testing.T) {
type testcase struct {
t1, t2 string
match float64
}
testCases := []testcase{
{
t1: "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed orci felis, placerat quis enim vitae, semper tempus erat.",
t2: "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed orci felis, placerat quis enim vitae, semper tempus erat.",
match: 1.0,
},
{
t1: "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed orci felis, placerat quis enim vitae, semper tempus erat.",
t2: "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed orci felis, placerat quis enim vitae, semper tempus erat. Integer non enim pharetra, molestie nulla ut, iaculis turpis.",
match: 0.66,
},
{
t1: "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed orci felis, placerat quis enim vitae, semper tempus erat.",
t2: "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed orci felis, placerat quis enim vitae, semper tempus erat. Integer non enim pharetra, molestie nulla ut, iaculis turpis. Vivamus eu tempor quam. Nulla vehicula lorem ut dolor consectetur rhoncus.",
match: 0.47,
},
{
t1: "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed orci felis, placerat quis enim vitae, semper tempus erat.",
t2: "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed orci felis, placerat quis enim vitae, semper tempus erat. Integer non enim pharetra, molestie nulla ut, iaculis turpis. Vivamus eu tempor quam. Nulla vehicula lorem ut dolor consectetur rhoncus. Ut mauris ipsum, viverra quis velit eget, vehicula sodales nunc.",
match: 0.37,
},
{
t1: "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed orci felis, placerat quis enim vitae, semper tempus erat.",
t2: "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed orci felis, placerat quis enim vitae, semper tempus erat. Integer non enim pharetra, molestie nulla ut, iaculis turpis. Vivamus eu tempor quam. Nulla vehicula lorem ut dolor consectetur rhoncus. Ut mauris ipsum, viverra quis velit eget, vehicula sodales nunc. Sed orci felis, placerat quis enim vitae, semper tempus erat.",
match: 0.31,
},
{
t1: "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed orci felis, placerat quis enim vitae, semper tempus erat.",
t2: "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed orci felis, placerat quis enim vitae, semper tempus erat. Integer non enim pharetra, molestie nulla ut, iaculis turpis. Vivamus eu tempor quam. Nulla vehicula lorem ut dolor consectetur rhoncus. Ut mauris ipsum, viverra quis velit eget, vehicula sodales nunc. Sed orci felis, placerat quis enim vitae, semper tempus erat. Integer non enim pharetra, molestie nulla ut, iaculis turpis.",
match: 0.26,
},
}
for _, tc := range testCases {
result := CompareTexts(tc.t1, tc.t2)
assert.InDelta(t, tc.match, result, 0.01)
result = CompareTexts(tc.t2, tc.t1)
assert.InDelta(t, tc.match, result, 0.01)
}
}
func ExampleCompareTexts() {
t1 := "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed orci felis, placerat quis enim vitae, semper tempus erat."
t2 := "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed orci felis, placerat quis enim vitae, semper tempus erat. Integer non enim pharetra, molestie nulla ut."
result := CompareTexts(t1, t2)
fmt.Println(result)
// Output: 0.72
}