feat: remove unreachable routes

This commit is contained in:
Ilia Denisov
2026-01-23 00:43:21 +02:00
parent 812e0d4afd
commit abf72c16b4
3 changed files with 50 additions and 5 deletions
+24 -3
View File
@@ -144,7 +144,7 @@ func TestEnrouteGroups_SplitGroup(t *testing.T) {
assert.NoError(t, c.CreateShips(Race_0_idx, Race_0_Freighter, R0_Planet_0_num, 5)) // 21.0 per Ship
assert.Equal(t, 105., c.ShipGroup(0).CargoCapacity(c.ShipGroupShipClass(0)))
c.EnrouteGroups()
c.SendRoutedGroups()
assert.Len(t, slices.Collect(c.RaceShipGroups(Race_0_idx)), 2)
assert.Equal(t, game.StateInOrbit, c.ShipGroup(0).State())
@@ -171,7 +171,7 @@ func TestEnrouteGroups_GroupSorting(t *testing.T) {
assert.NoError(t, c.CreateShips(Race_0_idx, Race_0_Freighter, R0_Planet_0_num, 5)) // 21.0 per Ship
assert.Equal(t, 105., c.ShipGroup(1).CargoCapacity(c.ShipGroupShipClass(1)))
c.EnrouteGroups()
c.SendRoutedGroups()
assert.Len(t, slices.Collect(c.RaceShipGroups(Race_0_idx)), 2)
assert.Equal(t, game.StateInOrbit, c.ShipGroup(0).State())
@@ -207,7 +207,7 @@ func TestEnrouteGroups_LaunchOrder(t *testing.T) {
assert.NoError(t, c.CreateShips(Race_0_idx, Race_0_Freighter, R0_Planet_0_num, 5))
assert.Equal(t, 105., c.ShipGroup(2).CargoCapacity(c.ShipGroupShipClass(2)))
c.EnrouteGroups()
c.SendRoutedGroups()
assert.Len(t, slices.Collect(c.RaceShipGroups(Race_0_idx)), 5)
@@ -416,3 +416,24 @@ func TestTurnUnloadEnroutedGroups(t *testing.T) {
assert.Equal(t, game.ProductionCapital, c.MustPlanet(Uninhabited_Planet_4_num).Production.Type)
assert.Equal(t, 17.3, c.ShipGroup(3).Load)
}
func TestRemoveUnreachableRoutes(t *testing.T) {
c, g := newCache()
assert.NoError(t, g.SetRoute(Race_0.Name, "MAT", R0_Planet_2_num, R0_Planet_0_num))
assert.NoError(t, g.SetRoute(Race_0.Name, "CAP", R0_Planet_2_num, R0_Planet_0_num))
assert.NoError(t, g.SetRoute(Race_1.Name, "COL", R1_Planet_1_num, R0_Planet_0_num))
assert.NoError(t, g.SetRoute(Race_1.Name, "CAP", R1_Planet_1_num, Uninhabited_Planet_4_num))
assert.Error(t, g.SetRoute(Race_0.Name, "COL", R0_Planet_2_num, Uninhabited_Planet_3_num))
c.MustPlanet(R0_Planet_2_num).Route[game.RouteColonist] = Uninhabited_Planet_3_num
c.RemoveUnreachableRoutes()
assert.NotContains(t, c.MustPlanet(R0_Planet_2_num).Route, game.RouteColonist)
assert.Contains(t, c.MustPlanet(R0_Planet_2_num).Route, game.RouteMaterial)
assert.Contains(t, c.MustPlanet(R0_Planet_2_num).Route, game.RouteCapital)
assert.Contains(t, c.MustPlanet(R1_Planet_1_num).Route, game.RouteColonist)
assert.Contains(t, c.MustPlanet(R1_Planet_1_num).Route, game.RouteCapital)
}