diff options
| author | Gertjan van den Burg <burg@ese.eur.nl> | 2016-09-20 16:46:41 +0200 |
|---|---|---|
| committer | Gertjan van den Burg <burg@ese.eur.nl> | 2016-09-20 16:46:41 +0200 |
| commit | 28497ecc371fd4c731892de91b07f635f1020452 (patch) | |
| tree | 6c1876f3e64e7d0d310f29d4f20fbf69d96f3ef4 /tests/src/test_gensvm_sv.c | |
| parent | Minor improvements and fixes (diff) | |
| download | gensvm-28497ecc371fd4c731892de91b07f635f1020452.tar.gz gensvm-28497ecc371fd4c731892de91b07f635f1020452.zip | |
Unit tests and corresponding data
Diffstat (limited to 'tests/src/test_gensvm_sv.c')
| -rw-r--r-- | tests/src/test_gensvm_sv.c | 62 |
1 files changed, 62 insertions, 0 deletions
diff --git a/tests/src/test_gensvm_sv.c b/tests/src/test_gensvm_sv.c new file mode 100644 index 0000000..f6ea0e2 --- /dev/null +++ b/tests/src/test_gensvm_sv.c @@ -0,0 +1,62 @@ +/** + * @file test_gensvm_sv.c + * @author Gertjan van den Burg + * @date May, 2016 + * @brief Unit tests for gensvm_sv.c functions + */ + +#include "minunit.h" +#include "gensvm_sv.h" + +char *test_sv() +{ + struct GenModel *model = gensvm_init_model(); + + model->n = 5; + model->m = 3; + model->K = 3; + gensvm_allocate_model(model); + + // for a support vector we need less than 2 elements per row larger + // than 1 + + // this is an sv + matrix_set(model->Q, model->K, 0, 0, 1.1); + matrix_set(model->Q, model->K, 0, 1, 0.0); + matrix_set(model->Q, model->K, 0, 2, 1.0); + + // this is an sv + matrix_set(model->Q, model->K, 1, 0, 0.5); + matrix_set(model->Q, model->K, 1, 1, 0.5); + matrix_set(model->Q, model->K, 1, 2, 0.5); + + // this is an sv + matrix_set(model->Q, model->K, 2, 0, -0.5); + matrix_set(model->Q, model->K, 2, 1, 0.5); + matrix_set(model->Q, model->K, 2, 2, -0.5); + + // this is not an sv + matrix_set(model->Q, model->K, 3, 0, 1.5); + matrix_set(model->Q, model->K, 3, 1, 1.5); + matrix_set(model->Q, model->K, 3, 2, 0.5); + + // this is not an sv + matrix_set(model->Q, model->K, 4, 0, 2.0); + matrix_set(model->Q, model->K, 4, 1, 2.0); + matrix_set(model->Q, model->K, 4, 2, 2.0); + + mu_assert(gensvm_num_sv(model) == 3, "number of svs incorrect"); + + gensvm_free_model(model); + return NULL; +} + +char *all_tests() +{ + mu_suite_start(); + mu_run_test(test_sv); + + return NULL; +} + +RUN_TESTS(all_tests); |
