|  | // Copyright 2009 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 ( | 
|  | "testing" | 
|  | . "unicode" | 
|  | ) | 
|  |  | 
|  | var testDigit = []rune{ | 
|  | 0x0030, | 
|  | 0x0039, | 
|  | 0x0661, | 
|  | 0x06F1, | 
|  | 0x07C9, | 
|  | 0x0966, | 
|  | 0x09EF, | 
|  | 0x0A66, | 
|  | 0x0AEF, | 
|  | 0x0B66, | 
|  | 0x0B6F, | 
|  | 0x0BE6, | 
|  | 0x0BEF, | 
|  | 0x0C66, | 
|  | 0x0CEF, | 
|  | 0x0D66, | 
|  | 0x0D6F, | 
|  | 0x0E50, | 
|  | 0x0E59, | 
|  | 0x0ED0, | 
|  | 0x0ED9, | 
|  | 0x0F20, | 
|  | 0x0F29, | 
|  | 0x1040, | 
|  | 0x1049, | 
|  | 0x1090, | 
|  | 0x1091, | 
|  | 0x1099, | 
|  | 0x17E0, | 
|  | 0x17E9, | 
|  | 0x1810, | 
|  | 0x1819, | 
|  | 0x1946, | 
|  | 0x194F, | 
|  | 0x19D0, | 
|  | 0x19D9, | 
|  | 0x1B50, | 
|  | 0x1B59, | 
|  | 0x1BB0, | 
|  | 0x1BB9, | 
|  | 0x1C40, | 
|  | 0x1C49, | 
|  | 0x1C50, | 
|  | 0x1C59, | 
|  | 0xA620, | 
|  | 0xA629, | 
|  | 0xA8D0, | 
|  | 0xA8D9, | 
|  | 0xA900, | 
|  | 0xA909, | 
|  | 0xAA50, | 
|  | 0xAA59, | 
|  | 0xFF10, | 
|  | 0xFF19, | 
|  | 0x104A1, | 
|  | 0x1D7CE, | 
|  | } | 
|  |  | 
|  | var testLetter = []rune{ | 
|  | 0x0041, | 
|  | 0x0061, | 
|  | 0x00AA, | 
|  | 0x00BA, | 
|  | 0x00C8, | 
|  | 0x00DB, | 
|  | 0x00F9, | 
|  | 0x02EC, | 
|  | 0x0535, | 
|  | 0x06E6, | 
|  | 0x093D, | 
|  | 0x0A15, | 
|  | 0x0B99, | 
|  | 0x0DC0, | 
|  | 0x0EDD, | 
|  | 0x1000, | 
|  | 0x1200, | 
|  | 0x1312, | 
|  | 0x1401, | 
|  | 0x1885, | 
|  | 0x2C00, | 
|  | 0xA800, | 
|  | 0xF900, | 
|  | 0xFA30, | 
|  | 0xFFDA, | 
|  | 0xFFDC, | 
|  | 0x10000, | 
|  | 0x10300, | 
|  | 0x10400, | 
|  | 0x20000, | 
|  | 0x2F800, | 
|  | 0x2FA1D, | 
|  | } | 
|  |  | 
|  | func TestDigit(t *testing.T) { | 
|  | for _, r := range testDigit { | 
|  | if !IsDigit(r) { | 
|  | t.Errorf("IsDigit(U+%04X) = false, want true", r) | 
|  | } | 
|  | } | 
|  | for _, r := range testLetter { | 
|  | if IsDigit(r) { | 
|  | t.Errorf("IsDigit(U+%04X) = true, want false", r) | 
|  | } | 
|  | } | 
|  | } | 
|  |  | 
|  | // Test that the special case in IsDigit agrees with the table | 
|  | func TestDigitOptimization(t *testing.T) { | 
|  | for i := rune(0); i <= MaxLatin1; i++ { | 
|  | if Is(Digit, i) != IsDigit(i) { | 
|  | t.Errorf("IsDigit(U+%04X) disagrees with Is(Digit)", i) | 
|  | } | 
|  | } | 
|  | } |