aboutsummaryrefslogtreecommitdiff
path: root/tests/src/test_gensvm_copy.c
diff options
context:
space:
mode:
authorGertjan van den Burg <gertjanvandenburg@gmail.com>2016-05-17 23:02:04 +0200
committerGertjan van den Burg <gertjanvandenburg@gmail.com>2016-05-17 23:02:04 +0200
commit7d9f7e9341ab22599ea541959dbf9323661c777f (patch)
tree93b9262f64b606089b6b85aceafc47fa631887e8 /tests/src/test_gensvm_copy.c
parentmake blas and lapack calls more compact (diff)
downloadgensvm-7d9f7e9341ab22599ea541959dbf9323661c777f.tar.gz
gensvm-7d9f7e9341ab22599ea541959dbf9323661c777f.zip
start adding unit tests
Diffstat (limited to 'tests/src/test_gensvm_copy.c')
-rw-r--r--tests/src/test_gensvm_copy.c267
1 files changed, 267 insertions, 0 deletions
diff --git a/tests/src/test_gensvm_copy.c b/tests/src/test_gensvm_copy.c
new file mode 100644
index 0000000..a9636bb
--- /dev/null
+++ b/tests/src/test_gensvm_copy.c
@@ -0,0 +1,267 @@
+/**
+ * @file test_gensvm_copy.c
+ * @author Gertjan van den Burg
+ * @date May, 2016
+ * @brief Unit tests for gensvm_copy.c functions
+ */
+
+#include "minunit.h"
+#include "gensvm_copy.h"
+
+char *test_copy_model_linear()
+{
+ struct GenModel *from_model = gensvm_init_model();
+ struct GenModel *to_model = gensvm_init_model();
+
+ from_model->p = 2.0;
+ from_model->lambda = 1.0;
+ from_model->epsilon = 1e-8;
+ from_model->kappa = 1.0;
+ from_model->weight_idx = 2;
+ from_model->kerneltype = K_LINEAR;
+
+ gensvm_copy_model(from_model, to_model);
+
+ mu_assert(to_model->p == 2.0, "to_model->p incorrect.");
+ mu_assert(to_model->lambda == 1.0, "to_model->lambda incorrect.");
+ mu_assert(to_model->epsilon == 1e-8, "to_model->epsilon incorrect.");
+ mu_assert(to_model->kappa == 1.0, "to_model->kappa incorrect.");
+ mu_assert(to_model->weight_idx == 2,
+ "to_model->weight_idx incorrect.");
+ mu_assert(to_model->kerneltype == K_LINEAR, "to->kerneltype incorrect");
+
+ gensvm_free_model(from_model);
+ gensvm_free_model(to_model);
+
+ return NULL;
+}
+
+char *test_copy_model_poly_1()
+{
+ struct GenModel *from_model = gensvm_init_model();
+ struct GenModel *to_model = gensvm_init_model();
+
+ from_model->p = 2.0;
+ from_model->lambda = 1.0;
+ from_model->epsilon = 1e-8;
+ from_model->kappa = 1.0;
+ from_model->weight_idx = 2;
+ from_model->kerneltype = K_POLY;
+ from_model->kernelparam = Calloc(double, 3);
+ from_model->kernelparam[0] = 1.0;
+ from_model->kernelparam[1] = 2.0;
+ from_model->kernelparam[2] = 3.0;
+
+ gensvm_copy_model(from_model, to_model);
+
+ mu_assert(to_model->p == 2.0, "to->p incorrect.");
+ mu_assert(to_model->lambda == 1.0, "to->lambda incorrect.");
+ mu_assert(to_model->epsilon == 1e-8, "to->epsilon incorrect.");
+ mu_assert(to_model->kappa == 1.0, "to->kappa incorrect.");
+ mu_assert(to_model->weight_idx == 2, "to->weight_idx incorrect.");
+ mu_assert(to_model->kerneltype == K_POLY, "to->kerneltype incorrect");
+ mu_assert(to_model->kernelparam[0] == 1.0,
+ "to->kernelparam[0] is incorrect.");
+ mu_assert(to_model->kernelparam[1] == 2.0,
+ "to->kernelparam[1] is incorrect.");
+ mu_assert(to_model->kernelparam[2] == 3.0,
+ "to->kernelparam[2] is incorrect.");
+
+ gensvm_free_model(from_model);
+ gensvm_free_model(to_model);
+
+ return NULL;
+}
+
+char *test_copy_model_poly_2()
+{
+ struct GenModel *from_model = gensvm_init_model();
+ struct GenModel *to_model = gensvm_init_model();
+
+ from_model->p = 2.0;
+ from_model->lambda = 1.0;
+ from_model->epsilon = 1e-8;
+ from_model->kappa = 1.0;
+ from_model->weight_idx = 2;
+ from_model->kerneltype = K_POLY;
+ from_model->kernelparam = Calloc(double, 3);
+ from_model->kernelparam[0] = 1.0;
+ from_model->kernelparam[1] = 2.0;
+ from_model->kernelparam[2] = 3.0;
+ to_model->kernelparam = Calloc(double, 3);
+
+ gensvm_copy_model(from_model, to_model);
+
+ mu_assert(to_model->p == 2.0, "to_model->p incorrect.");
+ mu_assert(to_model->lambda == 1.0, "to_model->lambda incorrect.");
+ mu_assert(to_model->epsilon == 1e-8, "to_model->epsilon incorrect.");
+ mu_assert(to_model->kappa == 1.0, "to_model->kappa incorrect.");
+ mu_assert(to_model->weight_idx == 2,
+ "to_model->weight_idx incorrect.");
+ mu_assert(to_model->kerneltype == K_POLY, "to->kerneltype incorrect");
+ mu_assert(to_model->kernelparam[0] == 1.0,
+ "to->kernelparam[0] is incorrect.");
+ mu_assert(to_model->kernelparam[1] == 2.0,
+ "to->kernelparam[1] is incorrect.");
+ mu_assert(to_model->kernelparam[2] == 3.0,
+ "to->kernelparam[2] is incorrect.");
+
+ gensvm_free_model(from_model);
+ gensvm_free_model(to_model);
+
+ return NULL;
+}
+
+char *test_copy_model_rbf_1()
+{
+ struct GenModel *from_model = gensvm_init_model();
+ struct GenModel *to_model = gensvm_init_model();
+
+ from_model->p = 2.0;
+ from_model->lambda = 1.0;
+ from_model->epsilon = 1e-8;
+ from_model->kappa = 1.0;
+ from_model->weight_idx = 2;
+ from_model->kerneltype = K_RBF;
+ from_model->kernelparam = Calloc(double, 1);
+ from_model->kernelparam[0] = 5.0;
+
+ gensvm_copy_model(from_model, to_model);
+
+ mu_assert(to_model->p == 2.0, "to_model->p incorrect.");
+ mu_assert(to_model->lambda == 1.0, "to_model->lambda incorrect.");
+ mu_assert(to_model->epsilon == 1e-8, "to_model->epsilon incorrect.");
+ mu_assert(to_model->kappa == 1.0, "to_model->kappa incorrect.");
+ mu_assert(to_model->weight_idx == 2,
+ "to_model->weight_idx incorrect.");
+ mu_assert(to_model->kerneltype == K_RBF, "to->kerneltype incorrect");
+ mu_assert(to_model->kernelparam[0] == 5.0,
+ "to->kernelparam[0] is incorrect.");
+
+ gensvm_free_model(from_model);
+ gensvm_free_model(to_model);
+
+ return NULL;
+}
+
+char *test_copy_model_rbf_2()
+{
+ struct GenModel *from_model = gensvm_init_model();
+ struct GenModel *to_model = gensvm_init_model();
+
+ from_model->p = 2.0;
+ from_model->lambda = 1.0;
+ from_model->epsilon = 1e-8;
+ from_model->kappa = 1.0;
+ from_model->weight_idx = 2;
+ from_model->kerneltype = K_RBF;
+ from_model->kernelparam = Calloc(double, 1);
+ from_model->kernelparam[0] = 5.0;
+ to_model->kernelparam = Calloc(double, 1);
+
+ gensvm_copy_model(from_model, to_model);
+
+ mu_assert(to_model->p == 2.0, "to_model->p incorrect.");
+ mu_assert(to_model->lambda == 1.0, "to_model->lambda incorrect.");
+ mu_assert(to_model->epsilon == 1e-8, "to_model->epsilon incorrect.");
+ mu_assert(to_model->kappa == 1.0, "to_model->kappa incorrect.");
+ mu_assert(to_model->weight_idx == 2,
+ "to_model->weight_idx incorrect.");
+ mu_assert(to_model->kerneltype == K_RBF, "to->kerneltype incorrect");
+ mu_assert(to_model->kernelparam[0] == 5.0,
+ "to->kernelparam[0] is incorrect.");
+
+ gensvm_free_model(from_model);
+ gensvm_free_model(to_model);
+
+ return NULL;
+}
+
+char *test_copy_model_sigmoid_1()
+{
+ struct GenModel *from_model = gensvm_init_model();
+ struct GenModel *to_model = gensvm_init_model();
+
+ from_model->p = 2.0;
+ from_model->lambda = 1.0;
+ from_model->epsilon = 1e-8;
+ from_model->kappa = 1.0;
+ from_model->weight_idx = 2;
+ from_model->kerneltype = K_SIGMOID;
+ from_model->kernelparam = Calloc(double, 2);
+ from_model->kernelparam[0] = 5.0;
+ from_model->kernelparam[1] = 10.0;
+
+ gensvm_copy_model(from_model, to_model);
+
+ mu_assert(to_model->p == 2.0, "to_model->p incorrect.");
+ mu_assert(to_model->lambda == 1.0, "to_model->lambda incorrect.");
+ mu_assert(to_model->epsilon == 1e-8, "to_model->epsilon incorrect.");
+ mu_assert(to_model->kappa == 1.0, "to_model->kappa incorrect.");
+ mu_assert(to_model->weight_idx == 2,
+ "to_model->weight_idx incorrect.");
+ mu_assert(to_model->kerneltype == K_SIGMOID,
+ "to->kerneltype incorrect");
+ mu_assert(to_model->kernelparam[0] == 5.0,
+ "to->kernelparam[0] is incorrect.");
+ mu_assert(to_model->kernelparam[1] == 10.0,
+ "to->kernelparam[1] is incorrect.");
+
+ gensvm_free_model(from_model);
+ gensvm_free_model(to_model);
+
+ return NULL;
+}
+
+char *test_copy_model_sigmoid_2()
+{
+ struct GenModel *from_model = gensvm_init_model();
+ struct GenModel *to_model = gensvm_init_model();
+
+ from_model->p = 2.0;
+ from_model->lambda = 1.0;
+ from_model->epsilon = 1e-8;
+ from_model->kappa = 1.0;
+ from_model->weight_idx = 2;
+ from_model->kerneltype = K_SIGMOID;
+ from_model->kernelparam = Calloc(double, 2);
+ from_model->kernelparam[0] = 5.0;
+ from_model->kernelparam[1] = 10.0;
+ to_model->kernelparam = Calloc(double, 2);
+
+ gensvm_copy_model(from_model, to_model);
+
+ mu_assert(to_model->p == 2.0, "to_model->p incorrect.");
+ mu_assert(to_model->lambda == 1.0, "to_model->lambda incorrect.");
+ mu_assert(to_model->epsilon == 1e-8, "to_model->epsilon incorrect.");
+ mu_assert(to_model->kappa == 1.0, "to_model->kappa incorrect.");
+ mu_assert(to_model->weight_idx == 2,
+ "to_model->weight_idx incorrect.");
+ mu_assert(to_model->kerneltype == K_SIGMOID,
+ "to->kerneltype incorrect");
+ mu_assert(to_model->kernelparam[0] == 5.0,
+ "to->kernelparam[0] is incorrect.");
+ mu_assert(to_model->kernelparam[1] == 10.0,
+ "to->kernelparam[1] is incorrect.");
+
+ gensvm_free_model(from_model);
+ gensvm_free_model(to_model);
+
+ return NULL;
+}
+
+char *all_tests()
+{
+ mu_suite_start();
+ mu_run_test(test_copy_model_linear);
+ mu_run_test(test_copy_model_poly_1);
+ mu_run_test(test_copy_model_poly_2);
+ mu_run_test(test_copy_model_rbf_1);
+ mu_run_test(test_copy_model_rbf_2);
+ mu_run_test(test_copy_model_sigmoid_1);
+ mu_run_test(test_copy_model_sigmoid_2);
+
+ return NULL;
+}
+
+RUN_TESTS(all_tests);