diff --git a/travail_pratique/vec2/main.c b/travail_pratique/vec2/main.c index 841254d8ffc8a1b67585b76d3d42fdac1b16fece..ba07ee44fa0aac43a1d9b08b2d1d81da1297ed0b 100644 --- a/travail_pratique/vec2/main.c +++ b/travail_pratique/vec2/main.c @@ -1,15 +1,18 @@ #include <stdlib.h> +#include <stdio.h> #include "vec2.h" int main() { vec2 v1 = vec2_create(1.0, -1.0); // vec2_print(v1); - vec2 v2 = vec2_create(4.0, -2.0); + vec2 v2 = vec2_create(4.0, 2.0); // vec2_print(v2); vec2 v3 = vec2_sub(v1, v2); vec2_print(v3); + printf("%f\n", vec2_dot(v2, vec2_create(1.0, 0.0))); + return EXIT_SUCCESS; } \ No newline at end of file diff --git a/travail_pratique/vec2/tests/vec2_tests.c b/travail_pratique/vec2/tests/vec2_tests.c index 49af2f20c8fad82a3da059174b0110064f80fc81..b520144def7e38f523fbd4dcd970e6e9f0af307f 100644 --- a/travail_pratique/vec2/tests/vec2_tests.c +++ b/travail_pratique/vec2/tests/vec2_tests.c @@ -1,5 +1,6 @@ #include "minunit.h" #include "../vec2.h" +#include <math.h> static vec2 four_two; static vec2 minus_three_nine; @@ -84,18 +85,43 @@ MU_TEST(test_vec2_mul) { ); } - - -MU_TEST(test_vec2_scalar_product) { +MU_TEST(test_vec2_dot) { mu_assert_double_eq( - vec2_scalar_product(four_two, minus_three_nine), + vec2_dot(four_two, minus_three_nine), 6.0 ); mu_assert_double_eq( - vec2_scalar_product(e_x, e_y), + vec2_dot(e_x, e_y), 0.0 ); + + mu_assert_double_eq( + vec2_dot(four_two, e_x), + 4.0 + ); + + mu_assert_double_eq( + vec2_dot(four_two, e_y), + 2.0 + ); +} + +MU_TEST(test_vec2_norm) { + mu_assert_double_eq( + vec2_norm(e_x), + 1.0 + ); + + mu_assert_double_eq( + vec2_norm(e_y), + 1.0 + ); + + mu_assert_double_eq( + vec2_norm(four_two), + sqrt(20.0) + ); } MU_TEST_SUITE(test_suite) { @@ -106,7 +132,8 @@ MU_TEST_SUITE(test_suite) { MU_RUN_TEST(test_vec2_add); MU_RUN_TEST(test_vec2_sub); MU_RUN_TEST(test_vec2_mul); - MU_RUN_TEST(test_vec2_scalar_product); + MU_RUN_TEST(test_vec2_dot); + MU_RUN_TEST(test_vec2_norm); } int main() { diff --git a/travail_pratique/vec2/vec2.c b/travail_pratique/vec2/vec2.c index a2b787e6ee07f5ce9d9e79dda930ea7df5a0f221..494672414d9643fcc4524f318661a41fd0b50f65 100644 --- a/travail_pratique/vec2/vec2.c +++ b/travail_pratique/vec2/vec2.c @@ -28,12 +28,12 @@ vec2 vec2_mul(double scalar, vec2 lhs) { ); } -double vec2_scalar_product(vec2 lhs, vec2 rhs) { +double vec2_dot(vec2 lhs, vec2 rhs) { return lhs.x * rhs.x + lhs.y * rhs.y; } double vec2_norm_sqr(vec2 v) { - return vec2_scalar_product(v, v); + return vec2_dot(v, v); } double vec2_norm(vec2 v) { diff --git a/travail_pratique/vec2/vec2.h b/travail_pratique/vec2/vec2.h index d90a580b008471dcebb573ba40ae2834ec64b8b7..f085f0729629803a415e8455d0c61fc41f975ac6 100644 --- a/travail_pratique/vec2/vec2.h +++ b/travail_pratique/vec2/vec2.h @@ -15,7 +15,7 @@ vec2 vec2_sub(vec2 lhs, vec2 rhs); vec2 vec2_mul(double scalar, vec2 lhs); -double vec2_scalar_product(vec2 lhs, vec2 rhs); +double vec2_dot(vec2 lhs, vec2 rhs); double vec2_norm_sqr(vec2 v);