tests: produce on planets, unload on routes
This commit is contained in:
@@ -229,3 +229,61 @@ func TestListProducingPlanets(t *testing.T) {
|
||||
assert.Equal(t, R0_Planet_2_num, c.MustPlanet(planets[0]).Number)
|
||||
assert.Equal(t, R0_Planet_0_num, c.MustPlanet(planets[1]).Number)
|
||||
}
|
||||
|
||||
func TestTurnPlanetProductions(t *testing.T) {
|
||||
c, g := newCache()
|
||||
assert.NoError(t, c.CreateShipType(Race_0_idx, "Drone", 1, 0, 0, 0, 0))
|
||||
assert.NoError(t, g.CreateScience(Race_0.Name, "Equality", 0.25, 0.25, 0.25, 0.25))
|
||||
c.MustPlanet(R0_Planet_0_num).Resources = 10.
|
||||
c.MustPlanet(R0_Planet_0_num).Size = 1000.
|
||||
c.MustPlanet(R0_Planet_0_num).Population = 1000.
|
||||
c.MustPlanet(R0_Planet_0_num).Industry = 1000.
|
||||
|
||||
pn := int(R0_Planet_0_num)
|
||||
|
||||
assert.NoError(t, g.PlanetProduction(Race_0.Name, pn, "CAP", ""))
|
||||
assert.Equal(t, 0.0, c.MustPlanet(R0_Planet_0_num).Capital)
|
||||
assert.Equal(t, 0.0, c.MustPlanet(R0_Planet_0_num).Colonists)
|
||||
c.TurnPlanetProductions()
|
||||
assert.InDelta(t, 196., c.MustPlanet(R0_Planet_0_num).Capital, 0.1)
|
||||
assert.InDelta(t, 10.0, c.MustPlanet(R0_Planet_0_num).Colonists, 0.000001) // FIXME: should store more exact value
|
||||
|
||||
assert.NoError(t, g.PlanetProduction(Race_0.Name, pn, "MAT", ""))
|
||||
assert.Equal(t, 0.0, c.MustPlanet(R0_Planet_0_num).Material)
|
||||
c.TurnPlanetProductions()
|
||||
assert.Equal(t, 10000., c.MustPlanet(R0_Planet_0_num).Material)
|
||||
assert.InDelta(t, 20.0, c.MustPlanet(R0_Planet_0_num).Colonists, 0.000001)
|
||||
|
||||
assert.NoError(t, g.PlanetProduction(Race_0.Name, pn, "DRIVE", ""))
|
||||
assert.Equal(t, 1.1, c.Race(Race_0_idx).TechLevel(game.TechDrive))
|
||||
c.TurnPlanetProductions()
|
||||
assert.Equal(t, 1.3, c.Race(Race_0_idx).TechLevel(game.TechDrive))
|
||||
|
||||
assert.NoError(t, g.PlanetProduction(Race_0.Name, pn, "WEAPONS", ""))
|
||||
assert.Equal(t, 1.2, c.Race(Race_0_idx).TechLevel(game.TechWeapons))
|
||||
c.TurnPlanetProductions()
|
||||
assert.Equal(t, 1.4, c.Race(Race_0_idx).TechLevel(game.TechWeapons))
|
||||
|
||||
assert.NoError(t, g.PlanetProduction(Race_0.Name, pn, "SHIELDS", ""))
|
||||
assert.Equal(t, 1.3, c.Race(Race_0_idx).TechLevel(game.TechShields))
|
||||
c.TurnPlanetProductions()
|
||||
assert.Equal(t, 1.5, c.Race(Race_0_idx).TechLevel(game.TechShields))
|
||||
|
||||
assert.NoError(t, g.PlanetProduction(Race_0.Name, pn, "CARGO", ""))
|
||||
assert.Equal(t, 1.4, c.Race(Race_0_idx).TechLevel(game.TechCargo))
|
||||
c.TurnPlanetProductions()
|
||||
assert.InDelta(t, 1.6, c.Race(Race_0_idx).TechLevel(game.TechCargo), 0.1) // FIXME: 1.5999999999999999 -> 1.6
|
||||
|
||||
assert.NoError(t, g.PlanetProduction(Race_0.Name, pn, "SCIENCE", "Equality"))
|
||||
c.TurnPlanetProductions()
|
||||
assert.Equal(t, 1.35, c.Race(Race_0_idx).TechLevel(game.TechDrive))
|
||||
assert.Equal(t, 1.45, c.Race(Race_0_idx).TechLevel(game.TechWeapons))
|
||||
assert.Equal(t, 1.55, c.Race(Race_0_idx).TechLevel(game.TechShields))
|
||||
assert.Equal(t, 1.65, c.Race(Race_0_idx).TechLevel(game.TechCargo))
|
||||
|
||||
assert.NoError(t, g.PlanetProduction(Race_0.Name, pn, "SHIP", "Drone"))
|
||||
assert.Len(t, slices.Collect(c.RaceShipGroups(Race_0_idx)), 0)
|
||||
c.TurnPlanetProductions()
|
||||
assert.Len(t, slices.Collect(c.RaceShipGroups(Race_0_idx)), 1)
|
||||
assert.Equal(t, uint(100), c.ShipGroup(0).Number)
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user