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