summaryrefslogtreecommitdiff
path: root/re_test.go
blob: d3e24722525177a8e783f21ddc06155f2d01da04 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
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},
		{"/1/2", "1", "2", 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)
			}
		})
	}
}