Skip to content
Snippets Groups Projects
Commit da0a07ad authored by JM's avatar JM
Browse files

Test unitaires field_test

parent ca37e73a
No related branches found
No related tags found
No related merge requests found
......@@ -18,6 +18,10 @@ bool compute_e(charge_t c, vec2 p, double eps, vec2 *e);
// Return false if for some qiP, norm(qiP) < eps
bool compute_total_normalized_e(charge_t *charges, int num_charges, vec2 p, double eps, vec2 *e);
bool line_reach_charge(vec2 pos, charge_t * charges, double num_charges, double dx);
bool is_in_screen(coordinates_t pos);
void draw_everything(
struct gfx_context_t *ctxt,
charge_t *charges,
......
......@@ -34,7 +34,6 @@ bool dbl_eq(double a, double b)
test_result t_compute_e_0()
{
double test_charge_q[] = {0.25, -0.25, -0.75, 0.9, 0.5};
vec2 test_position[] = {
vec2_create(0.25, 0.6),
......@@ -70,26 +69,107 @@ test_result t_compute_e_0()
test_result t_compute_total_normalized_e_0()
{
double test_charge_q[] = {0.25, -0.25, -0.75, 0.9, 0.5};
vec2 test_position[] = {
vec2_create(0.25, 0.6),
vec2_create(0.01, 0.01),
vec2_create(0.9, 0.9),
vec2_create(0.5, 0.5),
vec2_create(0.25, 0.25)
};
vec2 awaited_result[] = {
vec2_create(0.037974, 0.999279),
vec2_create(-0.178064, -0.984019),
vec2_create(-0.108527, -0.994093),
vec2_create(1.000000, 0.000000),
vec2_create(0.192772, -0.981244)
};
uint32_t nb_tests = sizeof(test_charge_q) / sizeof(double);
bool passed = true;
for (uint32_t i = 0; i < nb_tests; i++)
{
charge_t c[2] = {
charge_create(-0.25, vec2_create(0.75, 0.5)),
charge_create(0.25, vec2_create(0.25, 0.5))
};
vec2 res = vec2_create_zero();
compute_total_normalized_e(c, 2, test_position[i], 0.01, &res);
if (!vec2_is_approx_equal(res, awaited_result[i], 0.0001))
{
passed = false;
break;
}
}
return (test_result){.passed = passed, .name = "Test compute_total_normalized 0"};
}
test_result t_compute_delta_x_0()
test_result t_line_reach_charge_0()
{
charge_t c[2] = {
charge_create(-0.25, vec2_create(0.75, 0.5)),
charge_create(0.25, vec2_create(0.25, 0.5))
};
vec2 test_position[] = {
vec2_create(0.231, 0.481),
vec2_create(0.731, 0.519),
vec2_create(0.78, 0.5),
vec2_create(0.75, 0.5),
vec2_create(0.25, 0.5),
vec2_create(0.24, 0.49)
};
bool results[] = {false, false, false, true, true, true};
uint32_t nb_tests = sizeof(results) / sizeof(bool);
bool passed = true;
return (test_result){.passed = passed, .name = "Test compute_delta_x 0"};
for (uint32_t i = 0; i < nb_tests; i++)
{
if (line_reach_charge(test_position[i], c, 2, 25) != results[i]){
passed = false;
break;
}
}
return (test_result){.passed = passed, .name = "Test line_reach_charge 0"};
}
test_result t_is_in_screen_0()
{
bool passed = true;
coordinates_t p[] = {
coordinates_create(99 / WID * 100, 1 / HEI * 100),
coordinates_create(50 / WID * 100, 50 / HEI * 100),
coordinates_create(1 / WID * 100, 99 / HEI * 100),
coordinates_create(WID, HEI),
coordinates_create(-1, HEI / 2),
coordinates_create(WID / 2, -1),
coordinates_create(-1, -1),
coordinates_create(WID + 10, HEI/2),
coordinates_create(WID / 2, HEI + 10),
coordinates_create(WID + 10, HEI + 10)
};
bool results[] = {true, true, true, true, false, false, false, false, false, false};
uint32_t nb_tests = sizeof(results) / sizeof(bool);
for (size_t i = 0; i < nb_tests; i++)
{
if(is_in_screen(p[i]) != results[i]){
passed = false;
break;
}
}
return (test_result){.passed = passed, .name = "Test is_in_screen 0"};
}
// Add or remove your test function name here
const unit_test_t tests[] = {t_compute_e_0, t_compute_total_normalized_e_0, t_compute_delta_x_0, t_is_in_screen_0};
const unit_test_t tests[] = {t_compute_e_0, t_compute_total_normalized_e_0, t_line_reach_charge_0, t_is_in_screen_0};
int main()
{
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment