|
- package point_test
-
- import (
- "math"
- "testing"
-
- "git.wtrh.nl/patterns/gopatterns/pkg/point"
- "git.wtrh.nl/patterns/gopatterns/pkg/position"
- "git.wtrh.nl/patterns/gopatterns/pkg/util"
- "git.wtrh.nl/patterns/gopatterns/pkg/vector"
- "github.com/stretchr/testify/require"
- "github.com/tdewolff/canvas"
- )
-
- func EqualMatrix(t *testing.T, expected, actual canvas.Matrix, delta float64) {
- t.Helper()
-
- require.InDeltaSlice(t, expected[0][:], actual[0][:], delta)
- require.InDeltaSlice(t, expected[1][:], actual[1][:], delta)
- }
-
- func TestAbsolutePoint_Matrix(t *testing.T) {
- rotation := math.Pi/2 + 2
- newPoint := point.NewAbsolutePoint(1, 2, rotation, "1")
- actual := newPoint.Matrix()
-
- expected := canvas.Matrix{
- {math.Cos(rotation), -math.Sin(rotation), 1.0},
- {math.Sin(rotation), math.Cos(rotation), 2.0},
- }
-
- EqualMatrix(t, actual, expected, 1e-10)
- }
-
- func TestAbsolutePoint_ID(t *testing.T) {
- newPoint := point.NewAbsolutePoint(1, 2, 3, "this is a test value")
- require.Equal(t, util.ID("this is a test value"), newPoint.ID())
- }
-
- func TestAbsolutePoint_Name(t *testing.T) {
- require.Equal(t, "this is a test value", point.NewAbsolutePoint(1, 2, 3, "this is a test value").Name())
- }
-
- func TestAbsolutePoint_Position(t *testing.T) {
- actual := point.NewAbsolutePoint(1, 2, 3, "this is a test value").Position()
- expected := position.Position{
- Vector: vector.Vector{X: 1, Y: 2},
- Rotation: 3,
- }
-
- require.Equal(t, expected, actual)
- }
-
- func TestAbsolutePoint_Draw(t *testing.T) {
- newPoint := point.NewAbsolutePoint(1, 2, 3, "this is a test value")
- require.False(t, newPoint.Draw())
-
- newPoint.SetDraw()
- require.True(t, newPoint.Draw())
-
- newPoint.UnsetDraw()
- require.False(t, newPoint.Draw())
- }
-
- func TestAbsolutePoint_Hide(t *testing.T) {
- newPoint := point.NewAbsolutePoint(1, 2, 3, "this is a test value")
- require.False(t, newPoint.Hide())
-
- newPoint.SetHide()
- require.True(t, newPoint.Hide())
- }
|