diff options
author | tlatorre <tlatorre@uchicago.edu> | 2019-03-07 13:30:46 -0600 |
---|---|---|
committer | tlatorre <tlatorre@uchicago.edu> | 2019-03-07 13:30:46 -0600 |
commit | 05df06499f838eaeca1c35c9284f1929a23b8fb5 (patch) | |
tree | e551019fd4f6123f17d79836e243d81e89868e0a /src/test.c | |
parent | c627d518e482395acc214d47fb17ab374ba73cf2 (diff) | |
download | sddm-05df06499f838eaeca1c35c9284f1929a23b8fb5.tar.gz sddm-05df06499f838eaeca1c35c9284f1929a23b8fb5.tar.bz2 sddm-05df06499f838eaeca1c35c9284f1929a23b8fb5.zip |
fix a bug in path_init() when the direction was equal to (0,0,1)
Diffstat (limited to 'src/test.c')
-rw-r--r-- | src/test.c | 22 |
1 files changed, 14 insertions, 8 deletions
@@ -488,6 +488,7 @@ int test_path(char *err) double E, mom, beta0; double s; double theta0; + path *p; T0 = 1.0; range = 1.0; @@ -495,17 +496,17 @@ int test_path(char *err) init_genrand(0); - for (i = 0; i < 100; i++) { + for (i = 0; i < 100000; i++) { pos0[0] = genrand_real2(); pos0[1] = genrand_real2(); pos0[2] = genrand_real2(); rand_sphere(dir0); - path *p = path_init(pos0,dir0,T0,range,1000,0.1,getKineticEnergy,NULL,NULL,NULL,0,m); + p = path_init(pos0,dir0,T0,range,1000,0.1,getKineticEnergy,NULL,NULL,NULL,0,m); - for (j = 0; j < 100; j++) { - s = range*j/99; + for (j = 0; j < p->len; j++) { + s = range*j/(p->len-1); pos_expected[0] = pos0[0] + dir0[0]*s; pos_expected[1] = pos0[1] + dir0[1]*s; pos_expected[2] = pos0[2] + dir0[2]*s; @@ -522,25 +523,25 @@ int test_path(char *err) for (k = 0; k < 3; k++) { if (!isclose(pos[k], pos_expected[k], 1e-9, 1e-9)) { sprintf(err, "path_eval(%.2g) returned pos[%i] = %.5g, but expected %.5g", s, k, pos[k], pos_expected[k]); - return 1; + goto err; } } for (k = 0; k < 3; k++) { if (!isclose(dir[k], dir0[k], 1e-9, 1e-9)) { sprintf(err, "path_eval(%.2g) returned dir[%i] = %.5g, but expected %.5g", s, k, dir[k], dir0[k]); - return 1; + goto err; } } if (!isclose(beta, beta0, 1e-9, 1e-9)) { sprintf(err, "path_eval(%.2g) returned beta = %.5g, but expected %.5g", s, beta, beta0); - return 1; + goto err; } if (!isclose(t, t_expected, 1e-9, 1e-9)) { sprintf(err, "path_eval(%.2g) returned t = %.5g, but expected %.5g", s, t, t_expected); - return 1; + goto err; } } @@ -548,6 +549,11 @@ int test_path(char *err) } return 0; + +err: + path_free(p); + + return 1; } int test_interp1d(char *err) |