summaryrefslogtreecommitdiffstats
path: root/src/options_test.go
diff options
context:
space:
mode:
authorJunegunn Choi <junegunn.c@gmail.com>2015-08-10 18:34:20 +0900
committerJunegunn Choi <junegunn.c@gmail.com>2015-08-10 18:34:20 +0900
commit766427de0c04c64085c5ed907e3fdcc6124fa2dd (patch)
treeb131c9e5354b17c3ae976e3f3d05b7ac77cb2788 /src/options_test.go
parenta7b75c99a5c2dd76163e229a4b6f9f49401272e0 (diff)
Fix --with-nth performance; avoid regex if possible
Close #317
Diffstat (limited to 'src/options_test.go')
-rw-r--r--src/options_test.go50
1 files changed, 47 insertions, 3 deletions
diff --git a/src/options_test.go b/src/options_test.go
index 28a8d9db..e9884f2c 100644
--- a/src/options_test.go
+++ b/src/options_test.go
@@ -2,16 +2,60 @@ package fzf
import (
"fmt"
+ "strings"
"testing"
"github.com/junegunn/fzf/src/curses"
)
func TestDelimiterRegex(t *testing.T) {
- rx := delimiterRegexp("*")
+ // Valid regex
+ delim := delimiterRegexp(".")
+ if delim.regex == nil || delim.str != nil {
+ t.Error(delim)
+ }
+ // Broken regex -> string
+ delim = delimiterRegexp("[0-9")
+ if delim.regex != nil || *delim.str != "[0-9" {
+ t.Error(delim)
+ }
+ // Valid regex
+ delim = delimiterRegexp("[0-9]")
+ if strings.Index(delim.regex.String(), "[0-9]") < 0 || delim.str != nil {
+ t.Error(delim)
+ }
+ // Tab character
+ delim = delimiterRegexp("\t")
+ if delim.regex != nil || *delim.str != "\t" {
+ t.Error(delim)
+ }
+ // Tab expression
+ delim = delimiterRegexp("\\t")
+ if delim.regex != nil || *delim.str != "\t" {
+ t.Error(delim)
+ }
+ // Tabs -> regex
+ delim = delimiterRegexp("\t+")
+ if delim.regex == nil || delim.str != nil {
+ t.Error(delim)
+ }
+}
+
+func TestDelimiterRegexString(t *testing.T) {
+ delim := delimiterRegexp("*")
+ tokens := strings.Split("-*--*---**---", *delim.str)
+ if delim.regex != nil || tokens[0] != "-" || tokens[1] != "--" ||
+ tokens[2] != "---" || tokens[3] != "" || tokens[4] != "---" {
+ t.Errorf("%s %s %d", delim, tokens, len(tokens))
+ }
+}
+
+func TestDelimiterRegexRegex(t *testing.T) {
+ delim := delimiterRegexp("--\\*")
+ rx := delim.regex
tokens := rx.FindAllString("-*--*---**---", -1)
- if tokens[0] != "-*" || tokens[1] != "--*" || tokens[2] != "---*" ||
- tokens[3] != "*" || tokens[4] != "---" {
+ if delim.str != nil ||
+ tokens[0] != "-*--*" || tokens[1] != "---*" || tokens[2] != "*---" {
t.Errorf("%s %s %d", rx, tokens, len(tokens))
}
}