|
@@ -37,7 +37,7 @@ func isPermsEqual(a, b []*rangePerm) bool {
|
|
|
return true
|
|
return true
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
-func TestUnifyParams(t *testing.T) {
|
|
|
|
|
|
|
+func TestGetMergedPerms(t *testing.T) {
|
|
|
tests := []struct {
|
|
tests := []struct {
|
|
|
params []*rangePerm
|
|
params []*rangePerm
|
|
|
want []*rangePerm
|
|
want []*rangePerm
|
|
@@ -86,6 +86,28 @@ func TestUnifyParams(t *testing.T) {
|
|
|
[]*rangePerm{{[]byte("a"), []byte("b")}, {[]byte("b"), []byte("c")}, {[]byte("c"), []byte("d")}, {[]byte("d"), []byte("f")}, {[]byte("1"), []byte("9")}},
|
|
[]*rangePerm{{[]byte("a"), []byte("b")}, {[]byte("b"), []byte("c")}, {[]byte("c"), []byte("d")}, {[]byte("d"), []byte("f")}, {[]byte("1"), []byte("9")}},
|
|
|
[]*rangePerm{{[]byte("1"), []byte("9")}, {[]byte("a"), []byte("f")}},
|
|
[]*rangePerm{{[]byte("1"), []byte("9")}, {[]byte("a"), []byte("f")}},
|
|
|
},
|
|
},
|
|
|
|
|
+ // overlapping
|
|
|
|
|
+ {
|
|
|
|
|
+ []*rangePerm{{[]byte("a"), []byte("f")}, {[]byte("b"), []byte("g")}},
|
|
|
|
|
+ []*rangePerm{{[]byte("a"), []byte("g")}},
|
|
|
|
|
+ },
|
|
|
|
|
+ // keys
|
|
|
|
|
+ {
|
|
|
|
|
+ []*rangePerm{{[]byte("a"), []byte("")}, {[]byte("b"), []byte("")}},
|
|
|
|
|
+ []*rangePerm{{[]byte("a"), []byte("")}, {[]byte("b"), []byte("")}},
|
|
|
|
|
+ },
|
|
|
|
|
+ {
|
|
|
|
|
+ []*rangePerm{{[]byte("a"), []byte("")}, {[]byte("a"), []byte("c")}},
|
|
|
|
|
+ []*rangePerm{{[]byte("a"), []byte("c")}},
|
|
|
|
|
+ },
|
|
|
|
|
+ {
|
|
|
|
|
+ []*rangePerm{{[]byte("a"), []byte("")}, {[]byte("a"), []byte("c")}, {[]byte("b"), []byte("")}},
|
|
|
|
|
+ []*rangePerm{{[]byte("a"), []byte("c")}},
|
|
|
|
|
+ },
|
|
|
|
|
+ {
|
|
|
|
|
+ []*rangePerm{{[]byte("a"), []byte("")}, {[]byte("b"), []byte("c")}, {[]byte("b"), []byte("")}, {[]byte("c"), []byte("")}, {[]byte("d"), []byte("")}},
|
|
|
|
|
+ []*rangePerm{{[]byte("a"), []byte("")}, {[]byte("b"), []byte("c")}, {[]byte("d"), []byte("")}},
|
|
|
|
|
+ },
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
for i, tt := range tests {
|
|
for i, tt := range tests {
|