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
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"))
|
|
}
|