Home | History | Annotate | Download | only in unicode
      1 // Copyright 2009 The Go Authors. All rights reserved.
      2 // Use of this source code is governed by a BSD-style
      3 // license that can be found in the LICENSE file.
      4 
      5 package unicode_test
      6 
      7 import (
      8 	"testing"
      9 	. "unicode"
     10 )
     11 
     12 var testDigit = []rune{
     13 	0x0030,
     14 	0x0039,
     15 	0x0661,
     16 	0x06F1,
     17 	0x07C9,
     18 	0x0966,
     19 	0x09EF,
     20 	0x0A66,
     21 	0x0AEF,
     22 	0x0B66,
     23 	0x0B6F,
     24 	0x0BE6,
     25 	0x0BEF,
     26 	0x0C66,
     27 	0x0CEF,
     28 	0x0D66,
     29 	0x0D6F,
     30 	0x0E50,
     31 	0x0E59,
     32 	0x0ED0,
     33 	0x0ED9,
     34 	0x0F20,
     35 	0x0F29,
     36 	0x1040,
     37 	0x1049,
     38 	0x1090,
     39 	0x1091,
     40 	0x1099,
     41 	0x17E0,
     42 	0x17E9,
     43 	0x1810,
     44 	0x1819,
     45 	0x1946,
     46 	0x194F,
     47 	0x19D0,
     48 	0x19D9,
     49 	0x1B50,
     50 	0x1B59,
     51 	0x1BB0,
     52 	0x1BB9,
     53 	0x1C40,
     54 	0x1C49,
     55 	0x1C50,
     56 	0x1C59,
     57 	0xA620,
     58 	0xA629,
     59 	0xA8D0,
     60 	0xA8D9,
     61 	0xA900,
     62 	0xA909,
     63 	0xAA50,
     64 	0xAA59,
     65 	0xFF10,
     66 	0xFF19,
     67 	0x104A1,
     68 	0x1D7CE,
     69 }
     70 
     71 var testLetter = []rune{
     72 	0x0041,
     73 	0x0061,
     74 	0x00AA,
     75 	0x00BA,
     76 	0x00C8,
     77 	0x00DB,
     78 	0x00F9,
     79 	0x02EC,
     80 	0x0535,
     81 	0x06E6,
     82 	0x093D,
     83 	0x0A15,
     84 	0x0B99,
     85 	0x0DC0,
     86 	0x0EDD,
     87 	0x1000,
     88 	0x1200,
     89 	0x1312,
     90 	0x1401,
     91 	0x1885,
     92 	0x2C00,
     93 	0xA800,
     94 	0xF900,
     95 	0xFA30,
     96 	0xFFDA,
     97 	0xFFDC,
     98 	0x10000,
     99 	0x10300,
    100 	0x10400,
    101 	0x20000,
    102 	0x2F800,
    103 	0x2FA1D,
    104 }
    105 
    106 func TestDigit(t *testing.T) {
    107 	for _, r := range testDigit {
    108 		if !IsDigit(r) {
    109 			t.Errorf("IsDigit(U+%04X) = false, want true", r)
    110 		}
    111 	}
    112 	for _, r := range testLetter {
    113 		if IsDigit(r) {
    114 			t.Errorf("IsDigit(U+%04X) = true, want false", r)
    115 		}
    116 	}
    117 }
    118 
    119 // Test that the special case in IsDigit agrees with the table
    120 func TestDigitOptimization(t *testing.T) {
    121 	for i := rune(0); i <= MaxLatin1; i++ {
    122 		if Is(Digit, i) != IsDigit(i) {
    123 			t.Errorf("IsDigit(U+%04X) disagrees with Is(Digit)", i)
    124 		}
    125 	}
    126 }
    127