Replace selectable name sets with a country that owns names and climate presets.

Create picks a country; climate is rolled from the school seed and stored. Old Slavic saves lift as Russia.

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
Leonid Pershin
2026-08-20 02:55:13 +03:00
co-authored by Cursor
parent 450495f666
commit 1b66c89cd7
58 changed files with 902 additions and 477 deletions
@@ -23,7 +23,7 @@ public class YearlyIntakeTests
Assert.Equal(4, before.Classes.Max(schoolClass => schoolClass.Year));
Assert.DoesNotContain(before.Classes, schoolClass => schoolClass.Year == 11);
var after = YearlyIntake.Apply(catalog, before, Fixtures.SchoolSeed, "Slavic", September);
var after = YearlyIntake.Apply(catalog, before, Fixtures.SchoolSeed, "Russia", September);
var demand = SchoolDemand.From(catalog, map);
Assert.True(RosterFit.Matches(after, demand));
@@ -46,8 +46,8 @@ public class YearlyIntakeTests
var map = Fixtures.Classrooms(4);
var catalog = Fixtures.Catalog();
var before = Fixtures.Generate(map);
var a = Snapshot(YearlyIntake.Apply(catalog, before, Fixtures.SchoolSeed, "Slavic", September));
var b = Snapshot(YearlyIntake.Apply(catalog, before, Fixtures.SchoolSeed, "Slavic", September));
var a = Snapshot(YearlyIntake.Apply(catalog, before, Fixtures.SchoolSeed, "Russia", September));
var b = Snapshot(YearlyIntake.Apply(catalog, before, Fixtures.SchoolSeed, "Russia", September));
Assert.Equal(a, b);
}
@@ -57,7 +57,7 @@ public class YearlyIntakeTests
var map = Fixtures.Classrooms(4);
var catalog = Fixtures.Catalog();
var before = Fixtures.Generate(map);
var after = YearlyIntake.Apply(catalog, before, Fixtures.SchoolSeed, "Slavic", September);
var after = YearlyIntake.Apply(catalog, before, Fixtures.SchoolSeed, "Russia", September);
var people = after.People.ToDictionary(person => person.Id, StringComparer.Ordinal);
var yearOf = after.Classes.ToDictionary(schoolClass => schoolClass.Id, schoolClass => schoolClass.Year, StringComparer.Ordinal);
@@ -106,7 +106,7 @@ public class YearlyIntakeTests
}
}
var after = YearlyIntake.Apply(catalog, before, Fixtures.SchoolSeed, "Slavic", September);
var after = YearlyIntake.Apply(catalog, before, Fixtures.SchoolSeed, "Russia", September);
var afterIds = after.People.Select(person => person.Id).ToHashSet(StringComparer.Ordinal);
Assert.NotEmpty(shouldLeave);
Assert.All(shouldLeave, id => Assert.DoesNotContain(id, afterIds));