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