point.lua 1.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950
  1. require 'luacov'
  2. local Point = (require "delaunay").Point
  3. context("Point", function()
  4. test('a new point has x and y members which defaults to 0,0', function()
  5. local p = Point()
  6. assert_not_nil(p.x)
  7. assert_not_nil(p.y)
  8. assert_equal(p.x, 0)
  9. assert_equal(p.y, 0)
  10. end)
  11. it('can create a point via __call(...)', function()
  12. local p = Point(0,0)
  13. assert_equal(getmetatable(p), Point)
  14. assert_equal(p.x, 0)
  15. assert_equal(p.y, 0)
  16. end)
  17. it('can create a point via new(...)', function()
  18. local p = Point:new(1,2)
  19. assert_equal(getmetatable(p), Point)
  20. assert_equal(p.x, 1)
  21. assert_equal(p.y, 2)
  22. end)
  23. it('can test if two given points are equal points', function()
  24. assert_equal(Point(), Point())
  25. assert_not_equal(Point(1,1), Point(1,2))
  26. end)
  27. it('can evaluate the distance between two points', function()
  28. assert_equal((Point()):dist(Point(2,0)), 2)
  29. assert_equal((Point()):dist(Point(1,1)), math.sqrt(2))
  30. end)
  31. it('can evaluate the square distance', function()
  32. assert_equal((Point()):dist2(Point(2,0)), 4)
  33. assert_equal((Point()):dist2(Point(1,1)), 2)
  34. end)
  35. it('can test if a point lies in a circle', function()
  36. assert_true((Point()):isInCircle(0,0,1))
  37. assert_true((Point()):isInCircle(1,1,math.sqrt(2)))
  38. assert_false((Point()):isInCircle(1,1,1))
  39. assert_false((Point()):isInCircle(1,1,0.99))
  40. end)
  41. end)