8f982278d2
* add multimodule * re-package modules
57 lines
1.9 KiB
Go
57 lines
1.9 KiB
Go
package util_test
|
|
|
|
import (
|
|
"fmt"
|
|
"testing"
|
|
|
|
"galaxy/util"
|
|
|
|
"github.com/stretchr/testify/assert"
|
|
)
|
|
|
|
func TestShortDistance(t *testing.T) {
|
|
for i, tc := range []struct {
|
|
w, h uint32
|
|
x1, y1, x2, y2, d float64
|
|
}{
|
|
{10, 10, 0, 0, 5, 5, 7.071},
|
|
{10, 10, 0, 0, 5.01, 5.01, 7.057},
|
|
{10, 10, 2, 2, 8, 2, 4.},
|
|
{10, 10, 8, 7, 1, 7, 3.},
|
|
} {
|
|
t.Run(fmt.Sprint(i), func(t *testing.T) {
|
|
d := util.ShortDistance(tc.w, tc.h, tc.x1, tc.y1, tc.x2, tc.y2)
|
|
assert.Equal(t, tc.d, util.Fixed3(d))
|
|
})
|
|
}
|
|
}
|
|
|
|
func TestNextTravelCoord(t *testing.T) {
|
|
for i, tc := range []struct {
|
|
w, h uint32
|
|
ox, oy, dx, dy, delta float64
|
|
tx, ty float64
|
|
arrived bool
|
|
}{
|
|
{w: 10, h: 10, ox: 0.0, oy: 0.0, dx: 2.0, dy: 0.0, delta: 1.0, tx: 1.0, ty: 0.0, arrived: false},
|
|
{w: 10, h: 10, ox: 0.0, oy: 0.0, dx: 0.0, dy: 2.0, delta: 1.0, tx: 0.0, ty: 1.0, arrived: false},
|
|
|
|
{w: 10, h: 10, ox: 1.0, oy: 1.0, dx: 9.0, dy: 1.0, delta: 1.0, tx: 0.0, ty: 1.0, arrived: false},
|
|
{w: 10, h: 10, ox: 1.0, oy: 9.5, dx: 1.0, dy: 1.0, delta: 1.0, tx: 1.0, ty: 0.5, arrived: false},
|
|
|
|
{w: 10, h: 10, ox: 1.0, oy: 1.0, dx: 5.0, dy: 5.0, delta: 2.0, tx: 2.414, ty: 2.414, arrived: false},
|
|
{w: 10, h: 10, ox: 1.0, oy: 1.0, dx: 9.0, dy: 9.0, delta: 2.0, tx: 9.586, ty: 9.586, arrived: false},
|
|
|
|
{w: 10, h: 10, ox: 5.0, oy: 5.0, dx: 9.0, dy: 9.0, delta: 6.0, tx: 9.0, ty: 9.0, arrived: true},
|
|
{w: 10, h: 10, ox: 6.0, oy: 6.0, dx: 10.0, dy: 10.0, delta: 6.0, tx: 10.0, ty: 10.0, arrived: true},
|
|
{w: 10, h: 10, ox: 1.0, oy: 2.0, dx: 7.0, dy: 8.0, delta: 6.0, tx: 7.0, ty: 8.0, arrived: true},
|
|
} {
|
|
t.Run(fmt.Sprint(i), func(t *testing.T) {
|
|
tx, ty, arrived := util.NextTravelCoord(tc.w, tc.h, tc.ox, tc.oy, tc.dx, tc.dy, tc.delta)
|
|
assert.Equal(t, tc.arrived, arrived)
|
|
assert.Equal(t, tc.tx, util.Fixed3(tx))
|
|
assert.Equal(t, tc.ty, util.Fixed3(ty))
|
|
})
|
|
}
|
|
}
|