edge.lua 1.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253
  1. local Point = (require "delaunay").Point
  2. local Edge = (require "delaunay").Edge
  3. context("Edge", function()
  4. test('an Edge is created passing two Points', function()
  5. local e = Edge(Point(), Point(1,1))
  6. assert_equal(getmetatable(e), Edge)
  7. end)
  8. test('an edge has two members named p1 and p2, which are points', function()
  9. local p1, p2 = Point(), Point(1,1)
  10. local e = Edge(p1, p2)
  11. assert_equal(e.p1, p1)
  12. assert_equal(e.p2, p2)
  13. end)
  14. it('can test if edges are equal without considering their orientation', function()
  15. local p1, p2, p3 = Point(), Point(1,1), Point(1,2)
  16. local e1 = Edge(p1, p2)
  17. local e2 = Edge(p1, p2)
  18. local e3 = Edge(p2, p1)
  19. local e4 = Edge(p1, p3)
  20. assert_true(e1:same(e2))
  21. assert_true(e1:same(e3))
  22. assert_false(e1:same(e4))
  23. end)
  24. it('can also test if edges are strictly the same', function()
  25. local p1, p2, p3 = Point(), Point(1,1), Point(1,2)
  26. local e1 = Edge(p1, p2)
  27. local e2 = Edge(p1, p2)
  28. local e3 = Edge(p2, p1)
  29. local e4 = Edge(p1, p3)
  30. assert_true(e1 == e2)
  31. assert_false(e1 == e3)
  32. assert_false(e1 == e4)
  33. end)
  34. it('can evaluate the edge mid-point coordinates', function()
  35. local e = Edge(Point(), Point(2,2))
  36. local x, y = e:getMidPoint()
  37. assert_equal(x, 1)
  38. assert_equal(y, 1)
  39. end)
  40. it('can evaluate the edge length', function()
  41. local e = Edge(Point(), Point(1,1))
  42. assert_equal(e:length(), math.sqrt(2))
  43. end)
  44. end)