the lexicon owns the weekdays and the oblique small numbers (V-581)
Weekday names lived in four files outside internal/lexicon and each copy was short in a different direction. The habit map had the prepositional plural of Sunday and no dative of Wednesday. The plan refusal had the accusative of Wednesday and not the prepositional. cmd/mavend matched the stem. Weekdays hands out the seven nominatives whole, because every Russian case lemmatises to one of them and the case is morph's question. WeekdayEnglish is the half that has to be data: the vendored dictionary is Russian and leaves mondays as it found it. Cardinals gain the dative and instrumental of one to four. A spoken hour declines and five upward has one oblique form for the genitive, dative and prepositional, so pyati was already whole while dvum was missing and k dvum chasam is an hour he says.
This commit is contained in:
@@ -36,6 +36,46 @@ func TestClosedSetsAreComplete(t *testing.T) {
|
||||
if _, ok := Cardinal("бэкап"); ok {
|
||||
t.Error("Cardinal must not answer for a word that is not a number")
|
||||
}
|
||||
|
||||
// A spoken hour declines, and one to four decline further than the rest:
|
||||
// "к двум часам" and "к трём" are hours, and only the dative says so (V-581).
|
||||
for _, tc := range []struct {
|
||||
word string
|
||||
want int
|
||||
}{
|
||||
{"одному", 1}, {"двум", 2}, {"двумя", 2}, {"трём", 3}, {"трем", 3},
|
||||
{"четырём", 4}, {"четырем", 4}, {"пяти", 5}, {"семи", 7},
|
||||
} {
|
||||
if got, ok := Cardinal(tc.word); !ok || got != tc.want {
|
||||
t.Errorf("Cardinal(%q) = %d, %v; want %d, true", tc.word, got, ok, tc.want)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// TestWeekdaysAreOneList — the second copy of a closed class is the bug (V-581).
|
||||
// Weekdays lived in four files outside this one, so the list is handed out whole
|
||||
// and the English forms, which the Russian dictionary cannot lemmatise, are here.
|
||||
func TestWeekdaysAreOneList(t *testing.T) {
|
||||
days := Weekdays()
|
||||
if len(days) != 7 || days[0] != "воскресенье" || days[1] != "понедельник" {
|
||||
t.Fatalf("Weekdays() = %v; want the seven, Sunday first", days)
|
||||
}
|
||||
for i, name := range days {
|
||||
if Weekday(i) != name {
|
||||
t.Errorf("Weekdays()[%d] = %q, but Weekday(%d) = %q", i, name, i, Weekday(i))
|
||||
}
|
||||
}
|
||||
for _, tc := range []struct {
|
||||
word string
|
||||
want int
|
||||
}{{"sunday", 0}, {"monday", 1}, {"mondays", 1}, {"Friday", 5}, {"saturdays", 6}} {
|
||||
if got, ok := WeekdayEnglish(tc.word); !ok || got != tc.want {
|
||||
t.Errorf("WeekdayEnglish(%q) = %d, %v; want %d, true", tc.word, got, ok, tc.want)
|
||||
}
|
||||
}
|
||||
if _, ok := WeekdayEnglish("понедельник"); ok {
|
||||
t.Error("WeekdayEnglish answered for a Russian word; that side is morph's")
|
||||
}
|
||||
}
|
||||
|
||||
// TestDayOffsetHasNoOrderingTrap — the defect a lookup removes. The callers this
|
||||
|
||||
Reference in New Issue
Block a user