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