summaryrefslogtreecommitdiff
path: root/internal/re/re_test.go
diff options
context:
space:
mode:
Diffstat (limited to 'internal/re/re_test.go')
-rw-r--r--internal/re/re_test.go34
1 files changed, 34 insertions, 0 deletions
diff --git a/internal/re/re_test.go b/internal/re/re_test.go
new file mode 100644
index 0000000..9824392
--- /dev/null
+++ b/internal/re/re_test.go
@@ -0,0 +1,34 @@
+package re
+
+import "testing"
+
+func TestRE(t *testing.T) {
+ testCases := []struct {
+ r, s, x string
+ global bool
+ err error
+ }{
+ {"/ddd/xxx/", "abd ddd xxx", "abd xxx xxx", false, nil},
+ {",ddd,xxx,", "abd ddd xxx", "abd xxx xxx", false, nil},
+ {"/ddd/xxx", "abd ddd xxx", "abd xxx xxx", false, nil},
+ {"/x$/X", "abd ddd xxx", "abd ddd xxX", false, nil},
+ {"/ /A", "abd ddd xxx", "abdAddd xxx", false, nil},
+ {"/ /A", "abd ddd xxx", "abdAdddAxxx", true, nil},
+ {"///", "abd ddd xxx", "abd ddd xxx", false, nil},
+ {"//", "abd ddd xxx", "abd ddd xxx", false, nil},
+ {"/", "abd ddd xxx", "", false, errNotRE},
+ {"/1/2", "1", "2", false, nil},
+ {"/^d/X", "abd ddd xxx", "abd ddd xxx", false, nil},
+ }
+ for _, tc := range testCases {
+ t.Run(tc.r, func(t *testing.T) {
+ res, err := Replace(tc.s, tc.r, tc.global)
+ if err != tc.err {
+ t.Errorf("got %q, want %q", err, tc.err)
+ }
+ if res != tc.x {
+ t.Errorf("got %q, want %q", res, tc.x)
+ }
+ })
+ }
+}