Ви не можете вибрати більше 25 тем Теми мають розпочинатися з літери або цифри, можуть містити дефіси (-) і не повинні перевищувати 35 символів.

49 рядки
1.2KB

  1. package point_test
  2. import (
  3. "math"
  4. "testing"
  5. "git.wtrh.nl/patterns/gopatterns/pkg/point"
  6. "git.wtrh.nl/patterns/gopatterns/pkg/position"
  7. "git.wtrh.nl/patterns/gopatterns/pkg/position/testutil"
  8. "git.wtrh.nl/patterns/gopatterns/pkg/vector"
  9. "github.com/tdewolff/canvas"
  10. )
  11. func TestBetweenPoint_Position(t *testing.T) {
  12. p1 := point.NewAbsolutePoint(0, 0, 0, "1")
  13. p2 := point.NewAbsolutePoint(1, 1, 0, "2")
  14. p3 := point.NewBetweenPoint(p1, p2, 0.5, "3")
  15. testutil.EqualPosition(t, position.Position{
  16. Vector: vector.Vector{
  17. X: 0.5,
  18. Y: 0.5,
  19. },
  20. Rotation: -math.Pi / 4,
  21. }, p3.Position(), 1e-10)
  22. matrix := p3.Matrix()
  23. EqualMatrix(t, canvas.Matrix{
  24. {math.Cos(-math.Pi / 4), -math.Sin(-math.Pi / 4), 0.5},
  25. {math.Sin(-math.Pi / 4), math.Cos(-math.Pi / 4), 0.5},
  26. }, matrix, 1e-10)
  27. p4 := point.NewAbsolutePoint(0, 1, 0, "4")
  28. p5 := point.NewBetweenPoint(p3, p4, 0.5, "5")
  29. testutil.EqualPosition(t, position.Position{
  30. Vector: vector.Vector{
  31. X: 0.25,
  32. Y: 0.75,
  33. },
  34. Rotation: math.Pi / 4,
  35. }, p5.Position(), 1e-10)
  36. matrix2 := p5.Matrix()
  37. EqualMatrix(t, canvas.Matrix{
  38. {math.Cos(math.Pi / 4), -math.Sin(math.Pi / 4), 0.25},
  39. {math.Sin(math.Pi / 4), math.Cos(math.Pi / 4), 0.75},
  40. }, matrix2, 1e-10)
  41. }