|
- 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/position/testutil"
- "git.wtrh.nl/patterns/gopatterns/pkg/vector"
- "github.com/tdewolff/canvas"
- )
-
- func TestBetweenPoint_Position(t *testing.T) {
- p1 := point.NewAbsolutePoint(0, 0, 0, "1")
- p2 := point.NewAbsolutePoint(1, 1, 0, "2")
- p3 := point.NewBetweenPoint(p1, p2, 0.5, "3")
- testutil.EqualPosition(t, position.Position{
- Vector: vector.Vector{
- X: 0.5,
- Y: 0.5,
- },
- Rotation: -math.Pi / 4,
- }, p3.Position(), 1e-10)
-
- matrix := p3.Matrix()
- EqualMatrix(t, canvas.Matrix{
- {math.Cos(-math.Pi / 4), -math.Sin(-math.Pi / 4), 0.5},
- {math.Sin(-math.Pi / 4), math.Cos(-math.Pi / 4), 0.5},
- }, matrix, 1e-10)
-
- p4 := point.NewAbsolutePoint(0, 1, 0, "4")
- p5 := point.NewBetweenPoint(p3, p4, 0.5, "5")
-
- testutil.EqualPosition(t, position.Position{
- Vector: vector.Vector{
- X: 0.25,
- Y: 0.75,
- },
- Rotation: math.Pi / 4,
- }, p5.Position(), 1e-10)
-
- matrix2 := p5.Matrix()
- EqualMatrix(t, canvas.Matrix{
- {math.Cos(math.Pi / 4), -math.Sin(math.Pi / 4), 0.25},
- {math.Sin(math.Pi / 4), math.Cos(math.Pi / 4), 0.75},
- }, matrix2, 1e-10)
- }
|