package main import "testing" func TestRE(t *testing.T) { testCases := []struct { r, s, x string }{ {"s/ddd/xxx/", "abd ddd xxx", "abd xxx xxx"}, {"s,ddd,xxx,", "abd ddd xxx", "abd xxx xxx"}, {"s/ddd/xxx", "abd ddd xxx", "abd xxx xxx"}, {"s/x$/X", "abd ddd xxx", "abd ddd xxX"}, {"s/ /A", "abd ddd xxx", "abdAdddAxxx"}, {"s///", "abd ddd xxx", "abd ddd xxx"}, {"s//", "abd ddd xxx", "abd ddd xxx"}, {"s/", "abd ddd xxx", ""}, {"S//", "abd ddd xxx", ""}, {"s/^d/X", "abd ddd xxx", "abd ddd xxx"}, } for _, tc := range testCases { t.Run(tc.r, func(t *testing.T) { res := re(tc.s, tc.r) if res != tc.x { t.Errorf("got %q, want %q", res, tc.x) } }) } }