aboutsummaryrefslogtreecommitdiff
path: root/src/test.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/test.c')
-rw-r--r--src/test.c55
1 files changed, 55 insertions, 0 deletions
diff --git a/src/test.c b/src/test.c
index 0828203..dddf235 100644
--- a/src/test.c
+++ b/src/test.c
@@ -21,6 +21,7 @@
#include <gsl/gsl_spline2d.h>
#include <gsl/gsl_errno.h> /* for gsl_strerror() */
#include <gsl/gsl_randist.h>
+#include <gsl/gsl_cdf.h>
typedef int testFunction(char *err);
@@ -1174,6 +1175,58 @@ int test_solid_angle_fast(char *err)
return 0;
}
+int test_norm(char *err)
+{
+ /* Tests the norm() function. */
+ size_t i;
+ double x, mean, sigma, value, expected;
+
+ init_genrand(0);
+
+ for (i = 0; i < 100; i++) {
+ x = genrand_real2();
+ mean = genrand_real2();
+ sigma = genrand_real2();
+
+ value = norm(x,mean,sigma);
+
+ expected = gsl_ran_ugaussian_pdf((x-mean)/sigma)/sigma;
+
+ if (!isclose(value, expected, 1e-9, 0)) {
+ sprintf(err, "norm = %.5f, but expected %.5f", value, expected);
+ return 1;
+ }
+ }
+
+ return 0;
+}
+
+int test_norm_cdf(char *err)
+{
+ /* Tests the norm_cdf() function. */
+ size_t i;
+ double x, mean, sigma, value, expected;
+
+ init_genrand(0);
+
+ for (i = 0; i < 100; i++) {
+ x = genrand_real2();
+ mean = genrand_real2();
+ sigma = genrand_real2();
+
+ value = norm_cdf(x,mean,sigma);
+
+ expected = gsl_cdf_gaussian_P(x-mean,sigma);
+
+ if (!isclose(value, expected, 1e-9, 0)) {
+ sprintf(err, "norm_cdf = %.5f, but expected %.5f", value, expected);
+ return 1;
+ }
+ }
+
+ return 0;
+}
+
struct tests {
testFunction *test;
char *name;
@@ -1208,6 +1261,8 @@ struct tests {
{test_solid_angle2, "test_solid_angle2"},
{test_solid_angle_lookup, "test_solid_angle_lookup"},
{test_solid_angle_fast, "test_solid_angle_fast"},
+ {test_norm, "test_norm"},
+ {test_norm_cdf, "test_norm_cdf"},
};
int main(int argc, char **argv)