// Copyright 2011 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"
)
// Independently check that the special "Is" functions work
// in the Latin-1 range through the property table.
func TestIsControlLatin1(t *testing.T) {
for i := rune(0); i <= MaxLatin1; i++ {
got := IsControl(i)
want := false
switch {
case 0x00 <= i && i <= 0x1F:
want = true
case 0x7F <= i && i <= 0x9F:
want = true
}
if got != want {
t.Errorf("%U incorrect: got %t; want %t", i, got, want)
}
}
}
func TestIsLetterLatin1(t *testing.T) {
for i := rune(0); i <= MaxLatin1; i++ {
got := IsLetter(i)
want := Is(Letter, i)
if got != want {
t.Errorf("%U incorrect: got %t; want %t", i, got, want)
}
}
}
func TestIsUpperLatin1(t *testing.T) {
for i := rune(0); i <= MaxLatin1; i++ {
got := IsUpper(i)
want := Is(Upper, i)
if got != want {
t.Errorf("%U incorrect: got %t; want %t", i, got, want)
}
}
}
func TestIsLowerLatin1(t *testing.T) {
for i := rune(0); i <= MaxLatin1; i++ {
got := IsLower(i)
want := Is(Lower, i)
if got != want {
t.Errorf("%U incorrect: got %t; want %t", i, got, want)
}
}
}
func TestNumberLatin1(t *testing.T) {
for i := rune(0); i <= MaxLatin1; i++ {
got := IsNumber(i)
want := Is(Number, i)
if got != want {
t.Errorf("%U incorrect: got %t; want %t", i, got, want)
}
}
}
func TestIsPrintLatin1(t *testing.T) {
for i := rune(0); i <= MaxLatin1; i++ {
got := IsPrint(i)
want := In(i, PrintRanges...)
if i == ' ' {
want = true
}
if got != want {
t.Errorf("%U incorrect: got %t; want %t", i, got, want)
}
}
}
func TestIsGraphicLatin1(t *testing.T) {
for i := rune(0); i <= MaxLatin1; i++ {
got := IsGraphic(i)
want := In(i, GraphicRanges...)
if got != want {
t.Errorf("%U incorrect: got %t; want %t", i, got, want)
}
}
}
func TestIsPunctLatin1(t *testing.T) {
for i := rune(0); i <= MaxLatin1; i++ {
got := IsPunct(i)
want := Is(Punct, i)
if got != want {
t.Errorf("%U incorrect: got %t; want %t", i, got, want)
}
}
}
func TestIsSpaceLatin1(t *testing.T) {
for i := rune(0); i <= MaxLatin1; i++ {
got := IsSpace(i)
want := Is(White_Space, i)
if got != want {
t.Errorf("%U incorrect: got %t; want %t", i, got, want)
}
}
}
func TestIsSymbolLatin1(t *testing.T) {
for i := rune(0); i <= MaxLatin1; i++ {
got := IsSymbol(i)
want := Is(Symbol, i)
if got != want {
t.Errorf("%U incorrect: got %t; want %t", i, got, want)
}
}
}