summaryrefslogtreecommitdiff
path: root/funcs/regexp_test.go
diff options
context:
space:
mode:
authorDave Henderson <dhenderson@gmail.com>2018-11-26 21:19:35 -0500
committerDave Henderson <dhenderson@gmail.com>2018-11-27 21:27:43 -0500
commit5246e7bdca52a0ccc5bc6dc8d4f1cd932c461135 (patch)
tree069c220860c69764dffc91b622b0c6fda04ac2a3 /funcs/regexp_test.go
parente4cbe992bfcc8598bbd1dc388a5cc6b213b98efa (diff)
Adding more regexp functions
Signed-off-by: Dave Henderson <dhenderson@gmail.com>
Diffstat (limited to 'funcs/regexp_test.go')
-rw-r--r--funcs/regexp_test.go97
1 files changed, 97 insertions, 0 deletions
diff --git a/funcs/regexp_test.go b/funcs/regexp_test.go
index 31671da0..905c4146 100644
--- a/funcs/regexp_test.go
+++ b/funcs/regexp_test.go
@@ -15,3 +15,100 @@ func TestMatch(t *testing.T) {
re := &ReFuncs{}
assert.True(t, re.Match(`i\ `, "hi world"))
}
+
+func TestFind(t *testing.T) {
+ re := &ReFuncs{}
+ f, err := re.Find(`[a-z]+`, `foo bar baz`)
+ assert.NoError(t, err)
+ assert.Equal(t, "foo", f)
+
+ _, err = re.Find(`[a-`, "")
+ assert.Error(t, err)
+
+ f, err = re.Find("4", 42)
+ assert.NoError(t, err)
+ assert.Equal(t, "4", f)
+
+ f, err = re.Find(false, 42)
+ assert.NoError(t, err)
+ assert.Equal(t, "", f)
+}
+
+func TestFindAll(t *testing.T) {
+ re := &ReFuncs{}
+ f, err := re.FindAll(`[a-z]+`, `foo bar baz`)
+ assert.NoError(t, err)
+ assert.EqualValues(t, []string{"foo", "bar", "baz"}, f)
+
+ f, err = re.FindAll(`[a-z]+`, -1, `foo bar baz`)
+ assert.NoError(t, err)
+ assert.EqualValues(t, []string{"foo", "bar", "baz"}, f)
+
+ _, err = re.FindAll(`[a-`, "")
+ assert.Error(t, err)
+
+ _, err = re.FindAll("")
+ assert.Error(t, err)
+
+ _, err = re.FindAll("", "", "", "")
+ assert.Error(t, err)
+
+ f, err = re.FindAll(`[a-z]+`, 0, `foo bar baz`)
+ assert.NoError(t, err)
+ assert.Nil(t, f)
+
+ f, err = re.FindAll(`[a-z]+`, 2, `foo bar baz`)
+ assert.NoError(t, err)
+ assert.EqualValues(t, []string{"foo", "bar"}, f)
+
+ f, err = re.FindAll(`[a-z]+`, 14, `foo bar baz`)
+ assert.NoError(t, err)
+ assert.EqualValues(t, []string{"foo", "bar", "baz"}, f)
+
+ f, err = re.FindAll(`qux`, `foo bar baz`)
+ assert.NoError(t, err)
+ assert.Nil(t, f)
+}
+
+func TestSplit(t *testing.T) {
+ re := &ReFuncs{}
+ f, err := re.Split(` `, `foo bar baz`)
+ assert.NoError(t, err)
+ assert.EqualValues(t, []string{"foo", "bar", "baz"}, f)
+
+ f, err = re.Split(`\s+`, -1, `foo bar baz`)
+ assert.NoError(t, err)
+ assert.EqualValues(t, []string{"foo", "bar", "baz"}, f)
+
+ _, err = re.Split(`[a-`, "")
+ assert.Error(t, err)
+
+ _, err = re.Split("")
+ assert.Error(t, err)
+
+ _, err = re.Split("", "", "", "")
+ assert.Error(t, err)
+
+ f, err = re.Split(` `, 0, `foo bar baz`)
+ assert.NoError(t, err)
+ assert.Nil(t, f)
+
+ f, err = re.Split(`\s+`, 2, `foo bar baz`)
+ assert.NoError(t, err)
+ assert.EqualValues(t, []string{"foo", "bar baz"}, f)
+
+ f, err = re.Split(`\s`, 14, `foo bar baz`)
+ assert.NoError(t, err)
+ assert.EqualValues(t, []string{"foo", "", "bar", "baz"}, f)
+
+ f, err = re.Split(`[\s,.]`, 14, `foo bar.baz,qux`)
+ assert.NoError(t, err)
+ assert.EqualValues(t, []string{"foo", "bar", "baz", "qux"}, f)
+}
+
+func TestReplaceLiteral(t *testing.T) {
+ re := &ReFuncs{}
+ r, err := re.ReplaceLiteral("i", "ello$1", "hi world")
+ assert.NoError(t, err)
+ assert.Equal(t, "hello$1 world", r)
+}