package main 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 := re(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) } }) } }