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 0c22f58629919ceb573e6f99624e9729fa0bc3d5
parent 98de196c85db9e375be5c8c3723073633449647a
Author: Vincent Forest <vincent.forest@meso-star.com>
Date:   Fri, 13 Jan 2017 15:14:02 +0100

Check the validity of the provided sun directions

Diffstat:
Msrc/solstice_args.c | 15+++++++++++++++
Msrc/test_solstice_args.c | 21+++++++++++++++++++++
2 files changed, 36 insertions(+), 0 deletions(-)

diff --git a/src/solstice_args.c b/src/solstice_args.c @@ -119,6 +119,21 @@ parse_sun_dir_list(const char* str, struct solstice_args* args) goto error; } + if(tmp[0] < 0 || tmp[0] >= 360) { + fprintf(stderr, + "Invalid azimuth angle `%g'. Azimuth must be in [0, 360[ degrees.\n", + tmp[0]); + res = RES_BAD_ARG; + goto error; + } + if(tmp[1] < 0 || tmp[1] > 90) { + fprintf(stderr, + "Invalid elevation angle `%g'. Elevation must be in [0, 90] degrees.\n", + tmp[1]); + res = RES_BAD_ARG; + goto error; + } + spherical.azimuth = MDEG2RAD(tmp[0]); spherical.elevation = MDEG2RAD(tmp[1]); sa_push(args->sun_dirs, spherical); diff --git a/src/test_solstice_args.c b/src/test_solstice_args.c @@ -205,6 +205,27 @@ test_sun_dirs(void) cmd = cmd_create(0, "test", "-D", "1.2,3.4:5.2,A", NULL); CHECK(solstice_args_init(&args, cmd_size(cmd), cmd), RES_BAD_ARG); cmd_delete(cmd); + + cmd = cmd_create(0, "test", "-D", "-0.1,2", NULL); + CHECK(solstice_args_init(&args, cmd_size(cmd), cmd), RES_BAD_ARG); + cmd_delete(cmd); + + cmd = cmd_create(0, "test", "-D", "360,2", NULL); + CHECK(solstice_args_init(&args, cmd_size(cmd), cmd), RES_BAD_ARG); + cmd_delete(cmd); + + cmd = cmd_create(0, "test", "-D", "0,-1", NULL); + CHECK(solstice_args_init(&args, cmd_size(cmd), cmd), RES_BAD_ARG); + cmd_delete(cmd); + + cmd = cmd_create(0, "test", "-D", "0,91", NULL); + CHECK(solstice_args_init(&args, cmd_size(cmd), cmd), RES_BAD_ARG); + cmd_delete(cmd); + + cmd = cmd_create(0, "test", "-D", "0,90", NULL); + CHECK(solstice_args_init(&args, cmd_size(cmd), cmd), RES_OK); + solstice_args_release(&args); + cmd_delete(cmd); } int