point.lua 1.4 KB

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