arnaucube
arnaucube/gogame-oldPublic Self-hosted repository
gogame-old/models/calc_test.go
models/calc_test.goRaw
 1package models
 2
 3import (
 4	"testing"
 5
 6	"github.com/arnaucube/gogame/constants"
 7	"github.com/stretchr/testify/assert"
 8)
 9
10func TestGrowth(t *testing.T) {
11	// metal
12	assert.Equal(t, int64(33), MetalGrowth(1, 60)/constants.MineVelocity)
13	assert.Equal(t, int64(66), MetalGrowth(1, 120)/constants.MineVelocity)
14	assert.Equal(t, int64(72), MetalGrowth(2, 60)/constants.MineVelocity)
15
16	// crystal
17	assert.Equal(t, int64(22), CrystalGrowth(1, 60)/constants.MineVelocity)
18	assert.Equal(t, int64(44), CrystalGrowth(1, 120)/constants.MineVelocity)
19	assert.Equal(t, int64(48), CrystalGrowth(2, 60)/constants.MineVelocity)
20
21	// deuterium
22	assert.Equal(t, int64(8), DeuteriumGrowth(1, 60)/constants.MineVelocity)
23	assert.Equal(t, int64(17), DeuteriumGrowth(1, 120)/constants.MineVelocity)
24	assert.Equal(t, int64(19), DeuteriumGrowth(2, 60)/constants.MineVelocity)
25
26	// solar
27	assert.Equal(t, int64(22), SolarGrowth(1, 60)/constants.MineVelocity)
28	assert.Equal(t, int64(44), SolarGrowth(1, 120)/constants.MineVelocity)
29	assert.Equal(t, int64(48), SolarGrowth(2, 60)/constants.MineVelocity)
30
31	// fusion
32	assert.Equal(t, int64(31), FusionGrowth(1, 1, 60)/constants.MineVelocity)
33	assert.Equal(t, int64(63), FusionGrowth(1, 1, 120)/constants.MineVelocity)
34	assert.Equal(t, int64(34), FusionGrowth(2, 2, 60)/constants.MineVelocity)
35}
36
37func TestMineCost(t *testing.T) {
38	// metalmine
39	assert.Equal(t, Resources{Metal: 60, Crystal: 15}, MetalMineCost(1))
40	assert.Equal(t, Resources{Metal: 90, Crystal: 22}, MetalMineCost(2))
41	assert.Equal(t, Resources{Metal: 17515, Crystal: 4378}, MetalMineCost(15))
42
43	// crystalmine
44	assert.Equal(t, Resources{Metal: 48, Crystal: 24}, CrystalMineCost(1))
45	assert.Equal(t, Resources{Metal: 76, Crystal: 38}, CrystalMineCost(2))
46	assert.Equal(t, Resources{Metal: 34587, Crystal: 17293}, CrystalMineCost(15))
47
48	// deuteriummine
49	assert.Equal(t, Resources{Metal: 225, Crystal: 75}, DeuteriumMineCost(1))
50	assert.Equal(t, Resources{Metal: 337, Crystal: 112}, DeuteriumMineCost(2))
51	assert.Equal(t, Resources{Metal: 65684, Crystal: 21894}, DeuteriumMineCost(15))
52
53	// energymine
54	assert.Equal(t, Resources{Metal: 75, Crystal: 30}, EnergyMineCost(1))
55	assert.Equal(t, Resources{Metal: 112, Crystal: 45}, EnergyMineCost(2))
56	assert.Equal(t, Resources{Metal: 21894, Crystal: 8757}, EnergyMineCost(15))
57
58	// researchlab
59	assert.Equal(t, Resources{Metal: 200, Crystal: 400, Deuterium: 200}, RessearchLabCost(1))
60	assert.Equal(t, Resources{Metal: 400, Crystal: 800, Deuterium: 400}, RessearchLabCost(2))
61	assert.Equal(t, Resources{Metal: 3276800, Crystal: 6553600, Deuterium: 3276800}, RessearchLabCost(15))
62}