Create own plurals subpackage
fix Typo
This commit is contained in:
50
plurals/compiler_test.go
Normal file
50
plurals/compiler_test.go
Normal file
@@ -0,0 +1,50 @@
|
||||
/*
|
||||
* Copyright (c) 2018 DeineAgentur UG https://www.deineagentur.com. All rights reserved.
|
||||
* Licensed under the MIT License. See LICENSE file in the project root for full license information.
|
||||
*/
|
||||
|
||||
package plurals
|
||||
|
||||
import (
|
||||
"encoding/json"
|
||||
"os"
|
||||
"testing"
|
||||
)
|
||||
|
||||
type fixture struct {
|
||||
PluralForm string
|
||||
Fixture []int
|
||||
}
|
||||
|
||||
func TestCompiler(t *testing.T) {
|
||||
f, err := os.Open("testdata/pluralforms.json")
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
dec := json.NewDecoder(f)
|
||||
var fixtures []fixture
|
||||
err = dec.Decode(&fixtures)
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
for _, data := range fixtures {
|
||||
expr, err := Compile(data.PluralForm)
|
||||
if err != nil {
|
||||
t.Errorf("'%s' triggered error: %s", data.PluralForm, err)
|
||||
} else if expr == nil {
|
||||
t.Logf("'%s' compiled to nil", data.PluralForm)
|
||||
t.Fail()
|
||||
} else {
|
||||
for n, e := range data.Fixture {
|
||||
i := expr.Eval(uint32(n))
|
||||
if i != e {
|
||||
t.Logf("'%s' with n = %d, expected %d, got %d, compiled to %s", data.PluralForm, n, e, i, expr)
|
||||
t.Fail()
|
||||
}
|
||||
if i == -1 {
|
||||
break
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user