package generator_test import ( "fmt" "testing" "github.com/iliadenisov/galaxy/pkg/generator" "github.com/stretchr/testify/assert" ) func TestGenerator(t *testing.T) { for players := 10; players <= 50; players++ { var s generator.MapSetting m, err := generator.Generate(func(ms *generator.MapSetting) { ms.Players = uint32(players) s = *ms }) if err != nil { t.Errorf("generate: %s", err) break } assert.Equal(t, players, len(m.HomePlanets), "hw count") for i := range m.HomePlanets { assert.Equal(t, int(s.DWCount), len(m.HomePlanets[i].DW), "hw #%d: dw count", i) for dw := range m.HomePlanets[i].DW { d := m.ShortDistance(m.HomePlanets[i].HW.Position, m.HomePlanets[i].DW[dw].Position) assert.LessOrEqualf(t, float64(s.DWMinDistance), d, "HW[%.04f,%04f] - DW[%.04f,%04f]", m.HomePlanets[i].HW.Position.X, m.HomePlanets[i].HW.Position.Y, m.HomePlanets[i].DW[dw].Position.X, m.HomePlanets[i].DW[dw].Position.Y) assert.GreaterOrEqualf(t, float64(s.DWMaxDistance), d, "HW[%.04f,%04f] - DW[%.04f,%04f]", m.HomePlanets[i].HW.Position.X, m.HomePlanets[i].HW.Position.Y, m.HomePlanets[i].DW[dw].Position.X, m.HomePlanets[i].DW[dw].Position.Y) } } } } func BenchmarkGenerator(b *testing.B) { i := 0 for b.Loop() { i++ b.Run(fmt.Sprintf("instance #%02d", i), func(b *testing.B) { _, err := generator.Generate() if err != nil { b.Error(err) } }) } }