edge.lua 1.5 KB

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