diff options
| author | Dave Henderson <dhenderson@gmail.com> | 2018-11-26 21:19:35 -0500 |
|---|---|---|
| committer | Dave Henderson <dhenderson@gmail.com> | 2018-11-27 21:27:43 -0500 |
| commit | 5246e7bdca52a0ccc5bc6dc8d4f1cd932c461135 (patch) | |
| tree | 069c220860c69764dffc91b622b0c6fda04ac2a3 /funcs/regexp_test.go | |
| parent | e4cbe992bfcc8598bbd1dc388a5cc6b213b98efa (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.go | 97 |
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) +} |
