func ExampleWhiteList() {
	println(WhiteList("a3a43a5a4a3a2a23a4a5a4a3a4", "a-z") == "aaaaaaaaaaaa")
}
This small example illustrate how to work with WhiteList function.
package govalidator
import (
	"reflect"
	"testing"
)
func TestContains(t *testing.T) {
	t.Parallel()
	var tests = []struct {
		param1   string
		param2   string
		expected bool
	}{
		{"abacada", "", true},
		{"abacada", "ritir", false},
		{"abacada", "a", true},
		{"abacada", "aca", true},
	}
	for _, test := range tests {
		actual := Contains(test.param1, test.param2)
		if actual != test.expected {
			t.Errorf("Expected Contains(%q,%q) to be %v, got %v", test.param1, test.param2, test.expected, actual)
		}
	}
}
func TestMatches(t *testing.T) {
	t.Parallel()
	var tests = []struct {
		param1   string
		param2   string
		expected bool
	}{
		{"123456789", "[0-9]+", true},
		{"abacada", "cab$", false},
		{"111222333", "((111|222|333)+)+", true},
		{"abacaba", "((123+]", false},
	}
	for _, test := range tests {
		actual := Matches(test.param1, test.param2)
		if actual != test.expected {
			t.Errorf("Expected Matches(%q,%q) to be %v, got %v", test.param1, test.param2, test.expected, actual)
		}
	}
}
func TestLeftTrim(t *testing.T) {
	t.Parallel()
	var tests = []struct {
		param1   string
		param2   string
		expected string
	}{
		{"  \r\n\tfoo  \r\n\t   ", "", "foo  \r\n\t   "},
		{"010100201000", "01", "201000"},
	}
	for _, test := range tests {
		actual := LeftTrim(test.param1, test.param2)
		if actual != test.expected {
			t.Errorf("Expected LeftTrim(%q,%q) to be %v, got %v", test.param1, test.param2, test.expected, actual)
		}
	}
}
func TestRightTrim(t *testing.T) {
	t.Parallel()
	var tests = []struct {
		param1   string
		param2   string
		expected string
	}{
		{"  \r\n\tfoo  \r\n\t   ", "", "  \r\n\tfoo"},
		{"010100201000", "01", "0101002"},
	}
	for _, test := range tests {
		actual := RightTrim(test.param1, test.param2)
		if actual != test.expected {
			t.Errorf("Expected RightTrim(%q,%q) to be %v, got %v", test.param1, test.param2, test.expected, actual)
		}
	}
}
func TestTrim(t *testing.T) {
	t.Parallel()
	var tests = []struct {
		param1   string
		param2   string
		expected string
	}{
		{"  \r\n\tfoo  \r\n\t   ", "", "foo"},
		{"010100201000", "01", "2"},
		{"1234567890987654321", "1-8", "909"},
	}
	for _, test := range tests {
		actual := Trim(test.param1, test.param2)
		if actual != test.expected {
			t.Errorf("Expected Trim(%q,%q) to be %v, got %v", test.param1, test.param2, test.expected, actual)
		}
	}
}
func ExampleTrim() {
	println(Trim("   \r\r\ntext\r   \t\n", "") == "text")
	println(Trim("1234567890987654321", "1-8") == "909")
}
func TestWhiteList(t *testing.T) {
	t.Parallel()
	var tests = []struct {
		param1   string
		param2   string
		expected string
	}{
		{"abcdef", "abc", "abc"},
		{"aaaaaaaaaabbbbbbbbbb", "abc", "aaaaaaaaaabbbbbbbbbb"},
		{"a1b2c3", "abc", "abc"},
		{"   ", "abc", ""},
		{"a3a43a5a4a3a2a23a4a5a4a3a4", "a-z", "aaaaaaaaaaaa"},
	}
	for _, test := range tests {
		actual := WhiteList(test.param1, test.param2)
		if actual != test.expected {
			t.Errorf("Expected WhiteList(%q,%q) to be %v, got %v", test.param1, test.param2, test.expected, actual)
		}
	}
}