summaryrefslogtreecommitdiffstats
path: root/src/unicode/example_test.go
diff options
context:
space:
mode:
authorDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-16 19:23:18 +0000
committerDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-16 19:23:18 +0000
commit43a123c1ae6613b3efeed291fa552ecd909d3acf (patch)
treefd92518b7024bc74031f78a1cf9e454b65e73665 /src/unicode/example_test.go
parentInitial commit. (diff)
downloadgolang-1.20-43a123c1ae6613b3efeed291fa552ecd909d3acf.tar.xz
golang-1.20-43a123c1ae6613b3efeed291fa552ecd909d3acf.zip
Adding upstream version 1.20.14.upstream/1.20.14upstream
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'src/unicode/example_test.go')
-rw-r--r--src/unicode/example_test.go256
1 files changed, 256 insertions, 0 deletions
diff --git a/src/unicode/example_test.go b/src/unicode/example_test.go
new file mode 100644
index 0000000..d3a47ac
--- /dev/null
+++ b/src/unicode/example_test.go
@@ -0,0 +1,256 @@
+// 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 unicode_test
+
+import (
+ "fmt"
+ "unicode"
+)
+
+// Functions starting with "Is" can be used to inspect which table of range a
+// rune belongs to. Note that runes may fit into more than one range.
+func Example_is() {
+
+ // constant with mixed type runes
+ const mixed = "\b5Ὂg̀9! ℃ᾭG"
+ for _, c := range mixed {
+ fmt.Printf("For %q:\n", c)
+ if unicode.IsControl(c) {
+ fmt.Println("\tis control rune")
+ }
+ if unicode.IsDigit(c) {
+ fmt.Println("\tis digit rune")
+ }
+ if unicode.IsGraphic(c) {
+ fmt.Println("\tis graphic rune")
+ }
+ if unicode.IsLetter(c) {
+ fmt.Println("\tis letter rune")
+ }
+ if unicode.IsLower(c) {
+ fmt.Println("\tis lower case rune")
+ }
+ if unicode.IsMark(c) {
+ fmt.Println("\tis mark rune")
+ }
+ if unicode.IsNumber(c) {
+ fmt.Println("\tis number rune")
+ }
+ if unicode.IsPrint(c) {
+ fmt.Println("\tis printable rune")
+ }
+ if !unicode.IsPrint(c) {
+ fmt.Println("\tis not printable rune")
+ }
+ if unicode.IsPunct(c) {
+ fmt.Println("\tis punct rune")
+ }
+ if unicode.IsSpace(c) {
+ fmt.Println("\tis space rune")
+ }
+ if unicode.IsSymbol(c) {
+ fmt.Println("\tis symbol rune")
+ }
+ if unicode.IsTitle(c) {
+ fmt.Println("\tis title case rune")
+ }
+ if unicode.IsUpper(c) {
+ fmt.Println("\tis upper case rune")
+ }
+ }
+
+ // Output:
+ // For '\b':
+ // is control rune
+ // is not printable rune
+ // For '5':
+ // is digit rune
+ // is graphic rune
+ // is number rune
+ // is printable rune
+ // For 'Ὂ':
+ // is graphic rune
+ // is letter rune
+ // is printable rune
+ // is upper case rune
+ // For 'g':
+ // is graphic rune
+ // is letter rune
+ // is lower case rune
+ // is printable rune
+ // For '̀':
+ // is graphic rune
+ // is mark rune
+ // is printable rune
+ // For '9':
+ // is digit rune
+ // is graphic rune
+ // is number rune
+ // is printable rune
+ // For '!':
+ // is graphic rune
+ // is printable rune
+ // is punct rune
+ // For ' ':
+ // is graphic rune
+ // is printable rune
+ // is space rune
+ // For '℃':
+ // is graphic rune
+ // is printable rune
+ // is symbol rune
+ // For 'ᾭ':
+ // is graphic rune
+ // is letter rune
+ // is printable rune
+ // is title case rune
+ // For 'G':
+ // is graphic rune
+ // is letter rune
+ // is printable rune
+ // is upper case rune
+}
+
+func ExampleSimpleFold() {
+ fmt.Printf("%#U\n", unicode.SimpleFold('A')) // 'a'
+ fmt.Printf("%#U\n", unicode.SimpleFold('a')) // 'A'
+ fmt.Printf("%#U\n", unicode.SimpleFold('K')) // 'k'
+ fmt.Printf("%#U\n", unicode.SimpleFold('k')) // '\u212A' (Kelvin symbol, K)
+ fmt.Printf("%#U\n", unicode.SimpleFold('\u212A')) // 'K'
+ fmt.Printf("%#U\n", unicode.SimpleFold('1')) // '1'
+
+ // Output:
+ // U+0061 'a'
+ // U+0041 'A'
+ // U+006B 'k'
+ // U+212A 'K'
+ // U+004B 'K'
+ // U+0031 '1'
+}
+
+func ExampleTo() {
+ const lcG = 'g'
+ fmt.Printf("%#U\n", unicode.To(unicode.UpperCase, lcG))
+ fmt.Printf("%#U\n", unicode.To(unicode.LowerCase, lcG))
+ fmt.Printf("%#U\n", unicode.To(unicode.TitleCase, lcG))
+
+ const ucG = 'G'
+ fmt.Printf("%#U\n", unicode.To(unicode.UpperCase, ucG))
+ fmt.Printf("%#U\n", unicode.To(unicode.LowerCase, ucG))
+ fmt.Printf("%#U\n", unicode.To(unicode.TitleCase, ucG))
+
+ // Output:
+ // U+0047 'G'
+ // U+0067 'g'
+ // U+0047 'G'
+ // U+0047 'G'
+ // U+0067 'g'
+ // U+0047 'G'
+}
+
+func ExampleToLower() {
+ const ucG = 'G'
+ fmt.Printf("%#U\n", unicode.ToLower(ucG))
+
+ // Output:
+ // U+0067 'g'
+}
+func ExampleToTitle() {
+ const ucG = 'g'
+ fmt.Printf("%#U\n", unicode.ToTitle(ucG))
+
+ // Output:
+ // U+0047 'G'
+}
+
+func ExampleToUpper() {
+ const ucG = 'g'
+ fmt.Printf("%#U\n", unicode.ToUpper(ucG))
+
+ // Output:
+ // U+0047 'G'
+}
+
+func ExampleSpecialCase() {
+ t := unicode.TurkishCase
+
+ const lci = 'i'
+ fmt.Printf("%#U\n", t.ToLower(lci))
+ fmt.Printf("%#U\n", t.ToTitle(lci))
+ fmt.Printf("%#U\n", t.ToUpper(lci))
+
+ const uci = 'İ'
+ fmt.Printf("%#U\n", t.ToLower(uci))
+ fmt.Printf("%#U\n", t.ToTitle(uci))
+ fmt.Printf("%#U\n", t.ToUpper(uci))
+
+ // Output:
+ // U+0069 'i'
+ // U+0130 'İ'
+ // U+0130 'İ'
+ // U+0069 'i'
+ // U+0130 'İ'
+ // U+0130 'İ'
+}
+
+func ExampleIsDigit() {
+ fmt.Printf("%t\n", unicode.IsDigit('৩'))
+ fmt.Printf("%t\n", unicode.IsDigit('A'))
+ // Output:
+ // true
+ // false
+}
+
+func ExampleIsNumber() {
+ fmt.Printf("%t\n", unicode.IsNumber('Ⅷ'))
+ fmt.Printf("%t\n", unicode.IsNumber('A'))
+ // Output:
+ // true
+ // false
+}
+
+func ExampleIsLetter() {
+ fmt.Printf("%t\n", unicode.IsLetter('A'))
+ fmt.Printf("%t\n", unicode.IsLetter('7'))
+ // Output:
+ // true
+ // false
+}
+
+func ExampleIsLower() {
+ fmt.Printf("%t\n", unicode.IsLower('a'))
+ fmt.Printf("%t\n", unicode.IsLower('A'))
+ // Output:
+ // true
+ // false
+}
+
+func ExampleIsUpper() {
+ fmt.Printf("%t\n", unicode.IsUpper('A'))
+ fmt.Printf("%t\n", unicode.IsUpper('a'))
+ // Output:
+ // true
+ // false
+}
+
+func ExampleIsTitle() {
+ fmt.Printf("%t\n", unicode.IsTitle('Dž'))
+ fmt.Printf("%t\n", unicode.IsTitle('a'))
+ // Output:
+ // true
+ // false
+}
+
+func ExampleIsSpace() {
+ fmt.Printf("%t\n", unicode.IsSpace(' '))
+ fmt.Printf("%t\n", unicode.IsSpace('\n'))
+ fmt.Printf("%t\n", unicode.IsSpace('\t'))
+ fmt.Printf("%t\n", unicode.IsSpace('a'))
+ // Output:
+ // true
+ // true
+ // true
+ // false
+}