summaryrefslogtreecommitdiff
path: root/vendor/golang.org/x/text/secure/precis/class_test.go
diff options
context:
space:
mode:
Diffstat (limited to 'vendor/golang.org/x/text/secure/precis/class_test.go')
-rw-r--r--vendor/golang.org/x/text/secure/precis/class_test.go50
1 files changed, 50 insertions, 0 deletions
diff --git a/vendor/golang.org/x/text/secure/precis/class_test.go b/vendor/golang.org/x/text/secure/precis/class_test.go
new file mode 100644
index 0000000..fbaf645
--- /dev/null
+++ b/vendor/golang.org/x/text/secure/precis/class_test.go
@@ -0,0 +1,50 @@
+// Copyright 2015 The Go Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style
+// license that can be found in the LICENSE file.
+
+package precis
+
+import (
+ "testing"
+
+ "golang.org/x/text/runes"
+)
+
+// Compile-time regression test to ensure that Class is a Set
+var _ runes.Set = (*class)(nil)
+
+// Ensure that certain characters are (or are not) in the identifer class.
+func TestClassContains(t *testing.T) {
+ tests := []struct {
+ name string
+ class *class
+ allowed []rune
+ disallowed []rune
+ }{
+ {
+ name: "Identifier",
+ class: identifier,
+ allowed: []rune("Aa0\u0021\u007e\u00df\u3007"),
+ disallowed: []rune("\u2150\u2100\u2200\u3164\u2190\u2600\u303b\u1e9b"),
+ },
+ {
+ name: "Freeform",
+ class: freeform,
+ allowed: []rune("Aa0\u0021\u007e\u00df\u3007 \u2150\u2100\u2200\u2190\u2600\u1e9b"),
+ disallowed: []rune("\u3164\u303b"),
+ },
+ }
+
+ for _, rt := range tests {
+ for _, r := range rt.allowed {
+ if !rt.class.Contains(r) {
+ t.Errorf("Class %s should contain %U", rt.name, r)
+ }
+ }
+ for _, r := range rt.disallowed {
+ if rt.class.Contains(r) {
+ t.Errorf("Class %s should not contain %U", rt.name, r)
+ }
+ }
+ }
+}