test: FleetSpeedAndMass
This commit is contained in:
@@ -1,6 +1,7 @@
|
||||
package controller_test
|
||||
|
||||
import (
|
||||
"math"
|
||||
"slices"
|
||||
"testing"
|
||||
|
||||
@@ -132,3 +133,45 @@ func TestJoinFleets(t *testing.T) {
|
||||
g.JoinFleets(Race_0.Name, fleetOnPlanet2, fleetTargetTwo),
|
||||
e.GenericErrorText(e.ErrShipsNotOnSamePlanet))
|
||||
}
|
||||
|
||||
func TestFleetSpeedAndMass(t *testing.T) {
|
||||
c, g := newCache()
|
||||
|
||||
c.MustPlanet(R0_Planet_0_num).Material = 100.
|
||||
c.MustPlanet(R0_Planet_0_num).Capital = 100.
|
||||
fleet := "Fleet"
|
||||
var speed, mass float64
|
||||
|
||||
assert.NoError(t, c.CreateShips(Race_0_idx, Race_0_Gunship, R0_Planet_0_num, 3)) // 1
|
||||
|
||||
s := c.ShipGroup(0).Speed(c.MustShipClass(Race_0_idx, Race_0_Gunship))
|
||||
m := c.ShipGroup(0).FullMass(c.MustShipClass(Race_0_idx, Race_0_Gunship))
|
||||
|
||||
assert.NoError(t, c.CreateShips(Race_0_idx, Race_0_Freighter, R0_Planet_0_num, 5)) // 2
|
||||
assert.NoError(t, g.LoadCargo(Race_0.Name, 2, "MAT", 10., 0))
|
||||
|
||||
assert.NoError(t, c.CreateShips(Race_0_idx, Race_0_Freighter, R0_Planet_0_num, 7)) // 3
|
||||
assert.NoError(t, g.LoadCargo(Race_0.Name, 3, "CAP", 10., 0))
|
||||
|
||||
assert.NoError(t, g.JoinShipGroupToFleet(Race_0.Name, fleet, 1, 0))
|
||||
fleetIndex := 0
|
||||
speed, mass = c.FleetSpeedAndMass(fleetIndex)
|
||||
assert.Equal(t, s, speed)
|
||||
assert.Equal(t, m, mass)
|
||||
|
||||
s = math.Min(s, c.ShipGroup(1).Speed(c.MustShipClass(Race_0_idx, Race_0_Freighter)))
|
||||
m += c.ShipGroup(1).FullMass(c.MustShipClass(Race_0_idx, Race_0_Freighter))
|
||||
|
||||
assert.NoError(t, g.JoinShipGroupToFleet(Race_0.Name, fleet, 2, 0))
|
||||
speed, mass = c.FleetSpeedAndMass(fleetIndex)
|
||||
assert.Equal(t, s, speed)
|
||||
assert.Equal(t, m, mass)
|
||||
|
||||
s = math.Min(s, c.ShipGroup(2).Speed(c.MustShipClass(Race_0_idx, Race_0_Freighter)))
|
||||
m += c.ShipGroup(2).FullMass(c.MustShipClass(Race_0_idx, Race_0_Freighter))
|
||||
|
||||
assert.NoError(t, g.JoinShipGroupToFleet(Race_0.Name, fleet, 3, 0))
|
||||
speed, mass = c.FleetSpeedAndMass(fleetIndex)
|
||||
assert.Equal(t, s, speed)
|
||||
assert.Equal(t, m, mass)
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user