summaryrefslogtreecommitdiff
path: root/digital/avr/modules/math/geometry/test
diff options
context:
space:
mode:
authorNicolas Schodet2012-05-05 16:13:45 +0200
committerNicolas Schodet2012-05-05 16:13:45 +0200
commit9524de0dfededc83dba3944d0fc872e859bcf449 (patch)
treee5ceaca9fa600854b9730ad3e501f439281350a6 /digital/avr/modules/math/geometry/test
parent4c2c509aad3740528df96248c9d14289770da1be (diff)
digital/avr/modules/math/geometry: add intersection code
Diffstat (limited to 'digital/avr/modules/math/geometry/test')
-rw-r--r--digital/avr/modules/math/geometry/test/test_geometry.c21
1 files changed, 21 insertions, 0 deletions
diff --git a/digital/avr/modules/math/geometry/test/test_geometry.c b/digital/avr/modules/math/geometry/test/test_geometry.c
index 17afb787..7b3c5e47 100644
--- a/digital/avr/modules/math/geometry/test/test_geometry.c
+++ b/digital/avr/modules/math/geometry/test/test_geometry.c
@@ -26,6 +26,7 @@
#include "modules/math/geometry/geometry.h"
#include "modules/math/geometry/vect.h"
#include "modules/math/geometry/distance.h"
+#include "modules/math/geometry/intersection.h"
#include "modules/utils/utils.h"
#include "modules/uart/uart.h"
@@ -236,6 +237,25 @@ test_distance (void)
test (d == 670);
}
+void
+test_intersection (void)
+{
+ vect_t v00 = { 0, 0 };
+ vect_t v02 = { 0, 20 };
+ vect_t v20 = { 20, 0 };
+ vect_t v22 = { 20, 20 };
+ vect_t v44 = { 40, 40 };
+ test (intersection_segment_segment (&v00, &v22, &v20, &v02) == 1);
+ test (intersection_segment_segment (&v00, &v22, &v02, &v20) == 1);
+ test (intersection_segment_segment (&v22, &v00, &v20, &v02) == 1);
+ test (intersection_segment_segment (&v22, &v00, &v02, &v20) == 1);
+ test (intersection_segment_segment (&v00, &v22, &v00, &v22) == 0);
+ test (intersection_segment_segment (&v00, &v22, &v00, &v44) == 0);
+ test (intersection_segment_segment (&v22, &v44, &v02, &v20) == 0);
+ test (intersection_segment_segment (&v00, &v44, &v02, &v20) == 1);
+ test (intersection_segment_segment (&v44, &v00, &v02, &v20) == 1);
+}
+
int
main (void)
{
@@ -243,6 +263,7 @@ main (void)
test_geometry ();
test_vect ();
test_distance ();
+ test_intersection ();
uart0_putc ('o');
uart0_putc ('k');
uart0_putc ('\n');