-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathutils_test.go
43 lines (35 loc) · 840 Bytes
/
utils_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
package main
import (
"reflect"
"regexp"
"testing"
"mvdan.cc/sh/v3/pattern"
)
func Test_filterRegex(t *testing.T) {
ss := []string{"abcde", "abxde", "xyz"}
xwant := map[string][]string{
"ab?de": {"abcde", "abxde"},
"ab*": {"abcde", "abxde"},
"ab[cx]de": {"abcde", "abxde"},
"*": ss,
}
for pat, want := range xwant {
expr, err := pattern.Regexp(pat, 0)
if err != nil {
panic(err)
}
regex := regexp.MustCompile("^" + expr + "$")
got := filterRegex(ss, regex, false)
if !reflect.DeepEqual(got, want) {
t.Errorf("filterRegex(%s, %s) got %v; want %v", ss, regex, got, want)
}
}
}
func Test_getMax(t *testing.T) {
ss := []string{"", "abc", "abcdef", "abcde"}
want := len("abcdef")
got := getMax(ss)
if got != want {
t.Errorf("filterRegex(%v) got %d; want %d", ss, got, want)
}
}