GenSVM
test_gensvm_sv.c
Go to the documentation of this file.
1 
27 #include "minunit.h"
28 #include "gensvm_sv.h"
29 
30 char *test_sv()
31 {
32  struct GenModel *model = gensvm_init_model();
33 
34  model->n = 5;
35  model->m = 3;
36  model->K = 3;
37  gensvm_allocate_model(model);
38 
39  // for a support vector we need less than 2 elements per row larger
40  // than 1
41 
42  // this is an sv
43  matrix_set(model->Q, model->K, 0, 0, 1.1);
44  matrix_set(model->Q, model->K, 0, 1, 0.0);
45  matrix_set(model->Q, model->K, 0, 2, 1.0);
46 
47  // this is an sv
48  matrix_set(model->Q, model->K, 1, 0, 0.5);
49  matrix_set(model->Q, model->K, 1, 1, 0.5);
50  matrix_set(model->Q, model->K, 1, 2, 0.5);
51 
52  // this is an sv
53  matrix_set(model->Q, model->K, 2, 0, -0.5);
54  matrix_set(model->Q, model->K, 2, 1, 0.5);
55  matrix_set(model->Q, model->K, 2, 2, -0.5);
56 
57  // this is not an sv
58  matrix_set(model->Q, model->K, 3, 0, 1.5);
59  matrix_set(model->Q, model->K, 3, 1, 1.5);
60  matrix_set(model->Q, model->K, 3, 2, 0.5);
61 
62  // this is not an sv
63  matrix_set(model->Q, model->K, 4, 0, 2.0);
64  matrix_set(model->Q, model->K, 4, 1, 2.0);
65  matrix_set(model->Q, model->K, 4, 2, 2.0);
66 
67  mu_assert(gensvm_num_sv(model) == 3, "number of svs incorrect");
68 
69  gensvm_free_model(model);
70  return NULL;
71 }
72 
73 char *all_tests()
74 {
77 
78  return NULL;
79 }
80 
Minimal unit testing framework for C.
#define mu_assert(test, message)
Definition: minunit.h:29
void gensvm_free_model(struct GenModel *model)
Free allocated GenModel struct.
Definition: gensvm_base.c:211
long gensvm_num_sv(struct GenModel *model)
Calculate the number of support vectors in a model.
Definition: gensvm_sv.c:46
#define mu_run_test(test)
Definition: minunit.h:35
double * Q
error matrix
Definition: gensvm_base.h:124
struct GenModel * gensvm_init_model(void)
Initialize a GenModel structure.
Definition: gensvm_base.c:102
A structure to represent a single GenSVM model.
Definition: gensvm_base.h:92
long n
number of instances in the dataset
Definition: gensvm_base.h:97
char * all_tests()
RUN_TESTS(all_tests)
void gensvm_allocate_model(struct GenModel *model)
Allocate memory for a GenModel.
Definition: gensvm_base.c:144
long K
number of classes in the dataset
Definition: gensvm_base.h:95
Header file for gensvm_sv.c.
#define matrix_set(M, cols, i, j, val)
char * test_sv()
long m
number of predictor variables in the dataset
Definition: gensvm_base.h:99
#define mu_suite_start()
Definition: minunit.h:24