Home | History | Annotate | Download | only in unicode
      1 // Copyright 2011 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 // Independently check that the special "Is" functions work
     13 // in the Latin-1 range through the property table.
     14 
     15 func TestIsControlLatin1(t *testing.T) {
     16 	for i := rune(0); i <= MaxLatin1; i++ {
     17 		got := IsControl(i)
     18 		want := false
     19 		switch {
     20 		case 0x00 <= i && i <= 0x1F:
     21 			want = true
     22 		case 0x7F <= i && i <= 0x9F:
     23 			want = true
     24 		}
     25 		if got != want {
     26 			t.Errorf("%U incorrect: got %t; want %t", i, got, want)
     27 		}
     28 	}
     29 }
     30 
     31 func TestIsLetterLatin1(t *testing.T) {
     32 	for i := rune(0); i <= MaxLatin1; i++ {
     33 		got := IsLetter(i)
     34 		want := Is(Letter, i)
     35 		if got != want {
     36 			t.Errorf("%U incorrect: got %t; want %t", i, got, want)
     37 		}
     38 	}
     39 }
     40 
     41 func TestIsUpperLatin1(t *testing.T) {
     42 	for i := rune(0); i <= MaxLatin1; i++ {
     43 		got := IsUpper(i)
     44 		want := Is(Upper, i)
     45 		if got != want {
     46 			t.Errorf("%U incorrect: got %t; want %t", i, got, want)
     47 		}
     48 	}
     49 }
     50 
     51 func TestIsLowerLatin1(t *testing.T) {
     52 	for i := rune(0); i <= MaxLatin1; i++ {
     53 		got := IsLower(i)
     54 		want := Is(Lower, i)
     55 		if got != want {
     56 			t.Errorf("%U incorrect: got %t; want %t", i, got, want)
     57 		}
     58 	}
     59 }
     60 
     61 func TestNumberLatin1(t *testing.T) {
     62 	for i := rune(0); i <= MaxLatin1; i++ {
     63 		got := IsNumber(i)
     64 		want := Is(Number, i)
     65 		if got != want {
     66 			t.Errorf("%U incorrect: got %t; want %t", i, got, want)
     67 		}
     68 	}
     69 }
     70 
     71 func TestIsPrintLatin1(t *testing.T) {
     72 	for i := rune(0); i <= MaxLatin1; i++ {
     73 		got := IsPrint(i)
     74 		want := In(i, PrintRanges...)
     75 		if i == ' ' {
     76 			want = true
     77 		}
     78 		if got != want {
     79 			t.Errorf("%U incorrect: got %t; want %t", i, got, want)
     80 		}
     81 	}
     82 }
     83 
     84 func TestIsGraphicLatin1(t *testing.T) {
     85 	for i := rune(0); i <= MaxLatin1; i++ {
     86 		got := IsGraphic(i)
     87 		want := In(i, GraphicRanges...)
     88 		if got != want {
     89 			t.Errorf("%U incorrect: got %t; want %t", i, got, want)
     90 		}
     91 	}
     92 }
     93 
     94 func TestIsPunctLatin1(t *testing.T) {
     95 	for i := rune(0); i <= MaxLatin1; i++ {
     96 		got := IsPunct(i)
     97 		want := Is(Punct, i)
     98 		if got != want {
     99 			t.Errorf("%U incorrect: got %t; want %t", i, got, want)
    100 		}
    101 	}
    102 }
    103 
    104 func TestIsSpaceLatin1(t *testing.T) {
    105 	for i := rune(0); i <= MaxLatin1; i++ {
    106 		got := IsSpace(i)
    107 		want := Is(White_Space, i)
    108 		if got != want {
    109 			t.Errorf("%U incorrect: got %t; want %t", i, got, want)
    110 		}
    111 	}
    112 }
    113 
    114 func TestIsSymbolLatin1(t *testing.T) {
    115 	for i := rune(0); i <= MaxLatin1; i++ {
    116 		got := IsSymbol(i)
    117 		want := Is(Symbol, i)
    118 		if got != want {
    119 			t.Errorf("%U incorrect: got %t; want %t", i, got, want)
    120 		}
    121 	}
    122 }
    123