28 lines
607 B
Go
28 lines
607 B
Go
package generator
|
|
|
|
import (
|
|
"fmt"
|
|
"testing"
|
|
|
|
"github.com/iliadenisov/galaxy/internal/number"
|
|
"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) {
|
|
m := Map{Width: tc.w, Height: tc.h}
|
|
d := m.ShortDistance(Coordinate{tc.x1, tc.y1}, Coordinate{tc.x2, tc.y2})
|
|
assert.Equal(t, tc.d, number.Fixed3(d))
|
|
})
|
|
}
|
|
}
|