MCPcopy Create free account
hub / github.com/SuprDewd/CompetitiveProgramming / test

Function test

code/geometry/circles.test.cpp:10–84  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

8}
9
10void 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));

Callers

nothing calls this directly

Calls 5

tangentFunction · 0.85
tangent_outerFunction · 0.85
assert_equalFunction · 0.70
intersectFunction · 0.70
pointClass · 0.70

Tested by

no test coverage detected