package controller_test import ( "fmt" "github.com/google/uuid" "github.com/iliadenisov/galaxy/internal/controller" "github.com/iliadenisov/galaxy/internal/model/game" ) var ( Race_0 = game.Race{ ID: Race_0_ID, Vote: Race_0_ID, Name: "Race_0", Tech: map[game.Tech]float64{ game.TechDrive: 1.1, game.TechWeapons: 1.2, game.TechShields: 1.3, game.TechCargo: 1.4, }, Relations: []game.RaceRelation{{RaceID: Race_1_ID, Relation: game.RelationWar}}, } Race_1 = game.Race{ ID: Race_1_ID, Vote: Race_1_ID, Name: "Race_1", Tech: map[game.Tech]float64{ game.TechDrive: 2.1, game.TechWeapons: 2.2, game.TechShields: 2.3, game.TechCargo: 2.4, }, Relations: []game.RaceRelation{{RaceID: Race_0_ID, Relation: game.RelationPeace}}, } Race_0_ID = uuid.New() Race_0_idx = 0 Race_0_Gunship = "R0_Gunship" Race_0_Freighter = "R0_Freighter" R0_Planet_0_num uint = 0 R0_Planet_2_num uint = 2 Race_0_Gunship_idx = 0 Race_0_Freighter_idx = 1 Race_0_Cruiser_idx = 2 Race_1_ID = uuid.New() Race_1_idx = 1 Race_1_Gunship = "R1_Gunship" Race_1_Freighter = "R1_Freighter" R1_Planet_1_num uint = 1 Race_1_Gunship_idx = 0 Race_1_Freighter_idx = 1 Race_1_Cruiser_idx = 2 ShipType_Cruiser = "Cruiser" Cruiser = game.ShipType{ ShipTypeReport: game.ShipTypeReport{ Name: "Cruiser", Drive: 15, Armament: 1, Weapons: 15, Shields: 15, Cargo: 0, }, } ) func assertNoError(err error) { if err != nil { panic(fmt.Sprintf("init assertion failed: %v", err)) } } func newGame() *game.Game { g := &game.Game{ Race: []game.Race{ Race_0, Race_1, }, Map: game.Map{ Width: 1000, Height: 1000, Planet: []game.Planet{ controller.NewPlanet(R0_Planet_0_num, "Planet_0", Race_0.ID, 0, 0, 100, 100, 100, 0, game.ProductionNone.AsType(uuid.Nil)), controller.NewPlanet(R1_Planet_1_num, "Planet_1", Race_1.ID, 1, 1, 100, 0, 0, 0, game.ProductionNone.AsType(uuid.Nil)), controller.NewPlanet(R0_Planet_2_num, "Planet_2", Race_0.ID, 2, 2, 100, 0, 0, 0, game.ProductionNone.AsType(uuid.Nil)), controller.NewPlanet(3, "Planet_3", uuid.Nil, 500, 500, 100, 0, 0, 0, game.ProductionNone.AsType(uuid.Nil)), }, }, } assertNoError(g.CreateShipType(Race_0.Name, Race_0_Gunship, 60, 30, 100, 0, 3)) assertNoError(g.CreateShipType(Race_0.Name, Race_0_Freighter, 8, 0, 2, 10, 0)) assertNoError(g.CreateShipType(Race_0.Name, ShipType_Cruiser, Cruiser.Drive, Cruiser.Weapons, Cruiser.Shields, Cruiser.Cargo, int(Cruiser.Armament))) assertNoError(g.CreateShipType(Race_1.Name, Race_1_Gunship, 60, 30, 100, 0, 3)) assertNoError(g.CreateShipType(Race_1.Name, Race_1_Freighter, 8, 0, 2, 10, 0)) assertNoError(g.CreateShipType(Race_1.Name, ShipType_Cruiser, 15, 15, 15, 0, 2)) // same name - different type (why.) return g } func newCache() (*controller.Cache, *game.Game) { g := newGame() c := controller.NewCache(g) return c, g }