You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

53 lines
1.0 KiB

package regx_test
import (
"testing"
"git.jxs.me/leetgo/regx"
"github.com/stretchr/testify/require"
)
func TestEmpty(t *testing.T) {
require.True(t, regx.IsMatch("", ""))
}
func TestSingleMatch(t *testing.T) {
require.True(t, regx.IsMatch("a", "a"))
}
func TestSingleNonMatch(t *testing.T) {
require.False(t, regx.IsMatch("b", "a"))
}
func TestMultiMatch(t *testing.T) {
require.True(t, regx.IsMatch("aba", "aba"))
}
func TestMultiNonMatch(t *testing.T) {
require.False(t, regx.IsMatch("abca", "abac"))
}
func TestWildMatch(t *testing.T) {
require.True(t, regx.IsMatch("hello", "h.ll."))
}
func TestWildNonMatch(t *testing.T) {
require.False(t, regx.IsMatch("hello", "hall."))
}
func TestManyMatch(t *testing.T) {
require.True(t, regx.IsMatch("greeet", "gre*t"))
}
func TestManyMisMatch(t *testing.T) {
require.True(t, regx.IsMatch("greet", "gre*a*t"))
}
func TestWildcardManyMatch(t *testing.T) {
require.True(t, regx.IsMatch("anything", ".*"))
}
func TestWildcardNonGreedyMatch(t *testing.T) {
require.True(t, regx.IsMatch("bbba", ".*a"))
}