| 8 | } |
| 9 | |
| 10 | void test() { |
| 11 | |
| 12 | point res1, res2; |
| 13 | // Circle circle intersection |
| 14 | assert_equal(intersect(point(0,0), 2, point(3,0), 2, res1, res2), 2); |
| 15 | assert_equal(intersect(point(0,0), 2, point(3,2), 2, res1, res2), 2); |
| 16 | assert_equal(intersect(point(0,0), 2, point(2,3), 2, res1, res2), 2); |
| 17 | assert_equal(intersect(point(0,0), 2, point(0,3), 2, res1, res2), 2); |
| 18 | assert_equal(intersect(point(0,0), 2, point(-2,3), 2, res1, res2), 2); |
| 19 | assert_equal(intersect(point(0,0), 2, point(-3,2), 2, res1, res2), 2); |
| 20 | assert_equal(intersect(point(0,0), 2, point(-3,0), 2, res1, res2), 2); |
| 21 | assert_equal(intersect(point(0,0), 2, point(-3,-2), 2, res1, res2), 2); |
| 22 | assert_equal(intersect(point(0,0), 2, point(-2,-3), 2, res1, res2), 2); |
| 23 | assert_equal(intersect(point(0,0), 2, point(0,3), 2, res1, res2), 2); |
| 24 | |
| 25 | assert_equal(intersect(point(0,0), 2, point(-3,2), 2, res1, res2), 2); |
| 26 | assert_equal(intersect(point(0,0), 2, point(-2,3), 2, res1, res2), 2); |
| 27 | assert_equal(intersect(point(0,0), 2, point(3,0), 2, res1, res2), 2); |
| 28 | |
| 29 | assert_equal(intersect(point(1000,0), 2, point(1003,0), 2, res1, res2), 2); |
| 30 | assert_equal(intersect(point(0,1000), 2, point(3,1002), 2, res1, res2), 2); |
| 31 | assert_equal(intersect(point(0,100000), 2, point(2,100003), 2, res1, res2), 2); |
| 32 | assert_equal(intersect(point(-1000,0), 2, point(-1000,3), 2, res1, res2), 2); |
| 33 | assert_equal(intersect(point(0,-1000), 2, point(-2,-1003), 2, res1, res2), 2); |
| 34 | assert_equal(intersect(point(0,0), 2, point(-3,2), 2, res1, res2), 2); |
| 35 | |
| 36 | assert_equal(intersect(point(0,0), 1, point(2,0), 1, res1, res2), 1); |
| 37 | assert_equal(intersect(point(0,0), 1, point(-2,0), 1, res1, res2), 1); |
| 38 | |
| 39 | assert_equal(intersect(point(0,0), 1, point(4,0), 1, res1, res2), 0); |
| 40 | assert_equal(intersect(point(0,0), 1, point(-2.3048,10034), 1, res1, res2), 0); |
| 41 | assert_equal(intersect(point(0,0), 1, point(-823.847,2.7872), 1, res1, res2), 0); |
| 42 | assert_equal(intersect(point(0,0), 1, point(-972.66283,0), 1, res1, res2), 0); |
| 43 | assert_equal(intersect(point(0,0), 1, point(-20973249,2938490.02983942), 1, res1, res2), 0); |
| 44 | |
| 45 | // Circle line intersection |
| 46 | // Field testing: Kattis redgem, Kattis garden |
| 47 | assert_equal(2, intersect(point(-5,0), point(5,0), point(0,0), 3, res1, res2)); |
| 48 | assert_equal(2, intersect(point(0,-5), point(0,5), point(0,0), 3, res1, res2)); |
| 49 | |
| 50 | assert_equal(0, intersect(point(-5,0), point(5,0), point(0,5), 3, res1, res2)); |
| 51 | assert_equal(0, intersect(point(0,-5), point(0,5), point(5,0), 3, res1, res2)); |
| 52 | |
| 53 | assert_equal(1, intersect(point(-5,0), point(5,0), point(0,3), 3, res1, res2)); |
| 54 | assert_equal(1, intersect(point(0,-5), point(0,5), point(3, -3234.234), 3, res1, res2)); |
| 55 | |
| 56 | intersect(point(1.67, 0), point(3.8, -1.6), point(0,0), 10.0, res1, res2); |
| 57 | assert(abs(point(8.56, -5.17) - res1) < 0.1); |
| 58 | assert(abs(point(-7.36, 6.77) - res2) < 0.1); |
| 59 | |
| 60 | intersect(point(3.8, -1.6), point(1.67, 0), point(0,0), 10.0, res1, res2); |
| 61 | assert(abs(point(8.56, -5.17) - res2) < 0.1); |
| 62 | assert(abs(point(-7.36, 6.77) - res1) < 0.1); |
| 63 | |
| 64 | // Point circle tangent |
| 65 | // Field testing: Kattis redgem, Kattis tomosynthesis |
| 66 | point M, N; |
| 67 | assert_equal(2, tangent(point(0,2), point(2,0), 2.0, M, N)); |
nothing calls this directly
no test coverage detected