solstice

Compute collected power and efficiencies of a solar plant
git clone git://git.meso-star.com/solstice.git
Log | Files | Refs | README | LICENSE

commit 740756b2fa55e6241e36ea433da9eb4ee58f6d03
parent 6e76f955c8948a2a9bc706014e75b74e683331c0
Author: Christophe Coustet <christophe.coustet@meso-star.com>
Date:   Mon, 28 Nov 2016 13:24:20 +0100

Fix core tests.

Was mainly problems of BAD_ARG policy: API doesn't manage bad args
anymore; test codes cannot test these situations anymore.

Diffstat:
Msrc/core/solstice_core_node.c | 10+++++-----
Msrc/core/solstice_core_scene.c | 18+++++++++---------
Msrc/core/solstice_core_solver.c | 3+--
Msrc/core/test_core_device.c | 6------
Msrc/core/test_core_node.c | 21---------------------
Msrc/core/test_core_scene.c | 14--------------
6 files changed, 15 insertions(+), 57 deletions(-)

diff --git a/src/core/solstice_core_node.c b/src/core/solstice_core_node.c @@ -187,7 +187,7 @@ node_instanciate_any if (res != RES_OK) goto error; break; case NODE_INSTANCE_ROOT: - res = RES_BAD_ARG; + ASSERT(0); goto error; case NODE_TRACKING_TARGET: res = score_node_tracking_target_create(dev, &node); @@ -214,7 +214,7 @@ node_instanciate_any SANIM(node_set_rotations(&node->anim, v)); break; case NODE_INSTANCE: - res = RES_BAD_ARG; + ASSERT(0); goto error; case NODE_PIVOT: #ifndef NDEBUG @@ -362,7 +362,7 @@ score_node_object_setup struct ssol_object* object) { res_T res = RES_OK; - ASSERT(node && object && node->type != NODE_TEMPLATE); + ASSERT(node && object && node->type == NODE_TEMPLATE); /* TODO: deal with multiple setups */ res = sanim_node_initialize(node->device->allocator, &node->anim); if (res != RES_OK) goto error; @@ -387,7 +387,7 @@ score_node_pivot_setup const struct sanim_tracking* tracking) { res_T res = RES_OK; - ASSERT(node && pivot && tracking && node->type != NODE_PIVOT); + ASSERT(node && pivot && tracking && node->type == NODE_PIVOT); /* TODO: deal with multiple setups */ res = sanim_node_initialize_pivot( node->device->allocator, pivot, tracking, &node->anim); @@ -406,7 +406,7 @@ score_node_track_me (const struct score_node* node, struct sanim_tracking* tracking) { - ASSERT(node && tracking && node->type != NODE_TRACKING_TARGET); + ASSERT(node && tracking && node->type == NODE_TRACKING_TARGET); SANIM(node_track_me(&node->anim, tracking)); } diff --git a/src/core/solstice_core_scene.c b/src/core/solstice_core_scene.c @@ -127,7 +127,7 @@ node_to_solver(const struct sanim_node* node_, const double transform[12], void* node = CONTAINER_OF(node_, struct score_node, anim); switch (node->type) { case NODE_TEMPLATE_ROOT: - res = RES_BAD_ARG; + ASSERT(0); break; case NODE_INSTANCE_ROOT: /* the root doesn't include any solver-related item */ @@ -136,7 +136,7 @@ node_to_solver(const struct sanim_node* node_, const double transform[12], void* /* not a solver-related item */ break; case NODE_TEMPLATE: - res = RES_BAD_ARG; + ASSERT(0); break; case NODE_INSTANCE: SSOL(instance_set_transform( @@ -168,16 +168,16 @@ node_to_solver_update(const struct sanim_node* node_, const double transform[12] node = CONTAINER_OF(node_, struct score_node, anim); switch (node->type) { case NODE_TEMPLATE_ROOT: - res = RES_BAD_ARG; + ASSERT(0); break; case NODE_INSTANCE_ROOT: - res = RES_BAD_ARG; /* should only visit post-pivot nodes */ + ASSERT(0); /* should only visit post-pivot nodes */ break; case NODE_TRACKING_TARGET: /* not a solver-related item */ break; case NODE_TEMPLATE: - res = RES_BAD_ARG; + ASSERT(0); break; case NODE_INSTANCE: SSOL(instance_set_transform( @@ -243,7 +243,7 @@ score_scene_create { struct score_scene* scene; res_T res = RES_OK; - if (!dev || !out_scene) return RES_BAD_ARG; + ASSERT(dev && out_scene); scene = MEM_CALLOC(dev->allocator, 1, sizeof(struct score_scene)); if (!scene) { @@ -297,7 +297,7 @@ score_scene_attach_instance && !instance->data.instance_root.scene_attachment); anim = &instance->anim; SANIM(node_is_initialized(anim, &ok)); - if (!ok) return RES_BAD_ARG; + ASSERT(ok); res = darray_nodes_push_back(&scene->instances, &anim); if (res != RES_OK) goto error; instance->data.instance_root.scene_attachment = scene; @@ -395,7 +395,7 @@ score_scene_reset_simulation(struct score_scene* scene) size_t count = 0, i; struct sanim_node** instances; double sun_dir[3]; - if (!scene || !scene->sun) return RES_BAD_ARG; + ASSERT(scene && scene->sun); SSOL(sun_get_direction(scene->sun, sun_dir)); count = darray_nodes_size_get(&scene->instances); instances = darray_nodes_data_get(&scene->instances); @@ -427,7 +427,7 @@ score_scene_update_simulation(struct score_scene* scene) size_t p_count = 0, p; struct sanim_node** instances; double sun_dir[3]; - if (!scene || !scene->sun) return RES_BAD_ARG; + ASSERT(scene && scene->sun); SSOL(sun_get_direction(scene->sun, sun_dir)); count = darray_nodes_size_get(&scene->instances); instances = darray_nodes_data_get(&scene->instances); diff --git a/src/core/solstice_core_solver.c b/src/core/solstice_core_solver.c @@ -26,7 +26,6 @@ score_solve FILE* output, struct ssol_estimator* estimator) { - if (!scene || !rng || !realisations_count || !output || !estimator) - return RES_BAD_ARG; + ASSERT(scene && rng && realisations_count && output && estimator); return ssol_solve(scene->solver, rng, realisations_count, output, estimator); } \ No newline at end of file diff --git a/src/core/test_core_device.c b/src/core/test_core_device.c @@ -26,15 +26,12 @@ main(int argc, char** argv) struct score_device* dev; (void) argc, (void) argv; - CHECK(score_device_create(NULL, NULL, 0, 0, NULL), RES_BAD_ARG); CHECK(score_device_create(NULL, NULL, 1, 0, &dev), RES_OK); - score_device_ref_put(dev); mem_init_proxy_allocator(&allocator, &mem_default_allocator); CHECK(MEM_ALLOCATED_SIZE(&allocator), 0); - CHECK(score_device_create(NULL, &allocator, 2, 0, NULL), RES_BAD_ARG); CHECK(score_device_create(NULL, &allocator, 1, 0, &dev), RES_OK); score_device_ref_put(dev); CHECK(MEM_ALLOCATED_SIZE(&allocator), 0); @@ -44,15 +41,12 @@ main(int argc, char** argv) logger_set_stream(&logger, LOG_ERROR, log_stream, NULL); logger_set_stream(&logger, LOG_WARNING, log_stream, NULL); - CHECK(score_device_create(&logger, NULL, 4, 0, NULL), RES_BAD_ARG); CHECK(score_device_create(&logger, NULL, 1, 0, &dev), RES_OK); score_device_ref_put(dev); - CHECK(score_device_create(&logger, &allocator, 2, 0, NULL), RES_BAD_ARG); CHECK(score_device_create(&logger, &allocator, 1, 0, &dev), RES_OK); score_device_ref_put(dev); - CHECK(score_device_create(&logger, &allocator, 0, 0, &dev), RES_BAD_ARG); CHECK(score_device_create(&logger, &allocator, 1, 0, &dev), RES_OK); score_device_ref_put(dev); diff --git a/src/core/test_core_node.c b/src/core/test_core_node.c @@ -59,23 +59,15 @@ main(int argc, char** argv) score_device_create(&logger, &allocator, 1, 0, &dev); - CHECK(score_node_template_create(NULL, &temp), RES_BAD_ARG); - CHECK(score_node_template_create(dev, NULL), RES_BAD_ARG); CHECK(score_node_template_create(dev, &temp), RES_OK); score_node_ref_put(temp); - CHECK(score_node_create_object(NULL, &geom1), RES_BAD_ARG); - CHECK(score_node_create_object(dev, NULL), RES_BAD_ARG); CHECK(score_node_create_object(dev, &geom1), RES_OK); score_node_ref_put(geom1); - CHECK(score_node_pivot_create(NULL, &piv), RES_BAD_ARG); - CHECK(score_node_pivot_create(dev, NULL), RES_BAD_ARG); CHECK(score_node_pivot_create(dev, &piv), RES_OK); score_node_ref_put(piv); - CHECK(score_node_tracking_target_create(NULL, &tgt), RES_BAD_ARG); - CHECK(score_node_tracking_target_create(dev, NULL), RES_BAD_ARG); CHECK(score_node_tracking_target_create(dev, &tgt), RES_OK); score_node_ref_put(tgt); @@ -92,9 +84,6 @@ main(int argc, char** argv) CHECK(tracking.policy, TRACKING_NODE_TARGET); /* cannot check tracking.data.node_target.tracked_node validity */ - CHECK(score_node_instantiate(NULL, &inst), RES_BAD_ARG); - CHECK(score_node_instantiate(temp, NULL), RES_BAD_ARG); - CHECK(score_node_instantiate(geom1, &inst), RES_BAD_ARG); CHECK(score_node_instantiate(temp, &inst), RES_OK); score_node_ref_put(inst); @@ -120,8 +109,6 @@ main(int argc, char** argv) tracking.policy = TRACKING_SUN; pivot.type = PIVOT_SINGLE_AXIS; d3(pivot.data.pivot1.ref_normal, 0, 0, 1); - CHECK(score_node_object_setup(NULL, obj1), RES_BAD_ARG); - CHECK(score_node_object_setup(geom1, NULL), RES_BAD_ARG); CHECK(score_node_object_setup(geom1, obj1), RES_OK); CHECK(score_node_pivot_setup(piv, &pivot, &tracking), RES_OK); @@ -147,16 +134,8 @@ main(int argc, char** argv) CHECK(ssol_shape_ref_put(shape2), RES_OK); CHECK(ssol_device_ref_put(sol_dev), RES_OK); - CHECK(score_node_add_child(NULL, geom1), RES_BAD_ARG); - CHECK(score_node_add_child(temp, NULL), RES_BAD_ARG); - CHECK(score_node_add_child(tgt, geom1), RES_BAD_ARG); - CHECK(score_node_add_child(inst, geom1), RES_BAD_ARG); - CHECK(score_node_add_child(geom1, temp), RES_BAD_ARG); - CHECK(score_node_add_child(geom1, inst), RES_BAD_ARG); CHECK(score_node_add_child(temp, geom1), RES_OK); - CHECK(score_node_add_child(geom1, geom1), RES_BAD_ARG); CHECK(score_node_add_child(geom1, piv), RES_OK); - CHECK(score_node_add_child(piv, piv2), RES_BAD_ARG); score_node_ref_put(piv2); score_node_set_translation(inst, transl); diff --git a/src/core/test_core_scene.c b/src/core/test_core_scene.c @@ -146,9 +146,6 @@ main(int argc, char** argv) CHECK(ssol_device_ref_put(sol_dev), RES_OK); /* some scene API tests */ - - CHECK(score_scene_create(NULL, &scene), RES_BAD_ARG); - CHECK(score_scene_create(dev, NULL), RES_BAD_ARG); CHECK(score_scene_create(dev, &scene), RES_OK); score_scene_ref_put(scene); @@ -158,18 +155,7 @@ main(int argc, char** argv) NCHECK(tmp = tmpfile(), 0); CHECK(ssp_rng_create(&allocator, &ssp_rng_threefry, &rng), RES_OK); CHECK(ssol_estimator_create(sol_dev, &estimator), RES_OK); - CHECK(score_solve(scene, NULL, N__, tmp, estimator), RES_BAD_ARG); - CHECK(score_solve(scene, rng, 0, tmp, estimator), RES_BAD_ARG); - CHECK(score_solve(scene, rng, N__, NULL, estimator), RES_BAD_ARG); - CHECK(score_solve(scene, rng, N__, tmp, NULL), RES_BAD_ARG); - /* incomplete scene (see solver lib) */ - CHECK(score_solve(scene, rng, N__, tmp, estimator), RES_BAD_ARG); - - CHECK(score_scene_attach_instance(NULL, inst1), RES_BAD_ARG); - CHECK(score_scene_attach_instance(scene, NULL), RES_BAD_ARG); - CHECK(score_scene_attach_instance(scene, piv), RES_BAD_ARG); CHECK(score_scene_attach_instance(scene, inst1), RES_OK); - CHECK(score_scene_attach_instance(scene, inst1), RES_BAD_ARG); score_scene_detach_instance(scene, inst1);