1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
|
/**
* @file test_gensvm_simplex.c
* @author Gertjan van den Burg
* @date May, 2016
* @brief Unit tests for gensvm_simplex.c functions
*/
#include "minunit.h"
#include "gensvm_simplex.h"
char *test_simplex_1()
{
double *U = Calloc(double, 2*1);
gensvm_simplex(2, U);
mu_assert(matrix_get(U, 1, 0, 0) == -0.5, "U(0, 0) incorrect.");
mu_assert(matrix_get(U, 1, 1, 0) == 0.5, "U(1, 0) incorrect.");
free(U);
return NULL;
}
char *test_simplex_2()
{
double *U = Calloc(double, 4*3);
gensvm_simplex(4, U);
mu_assert(matrix_get(U, 3, 0, 0) == -0.5, "U(0, 0) incorrect.");
mu_assert(matrix_get(U, 3, 1, 0) == 0.5, "U(1, 0) incorrect.");
mu_assert(matrix_get(U, 3, 2, 0) == 0.0, "U(2, 0) incorrect.");
mu_assert(matrix_get(U, 3, 3, 0) == 0.0, "U(3, 0) incorrect.");
mu_assert(fabs(matrix_get(U, 3, 0, 1) - -0.5/sqrt(3)) < 1e-14,
"U(0, 1) incorrect.");
mu_assert(fabs(matrix_get(U, 3, 1, 1) - -0.5/sqrt(3)) < 1e-14,
"U(1, 1) incorrect.");
mu_assert(fabs(matrix_get(U, 3, 2, 1) - 1.0/sqrt(3)) < 1e-14,
"U(2, 1) incorrect.");
mu_assert(fabs(matrix_get(U, 3, 3, 1) - 0.0) < 1e-14,
"U(3, 1) incorrect.");
mu_assert(fabs(matrix_get(U, 3, 0, 2) - -1.0/sqrt(24)) < 1e-14,
"U(0, 2) incorrect.");
mu_assert(fabs(matrix_get(U, 3, 1, 2) - -1.0/sqrt(24)) < 1e-14,
"U(1, 2) incorrect.");
mu_assert(fabs(matrix_get(U, 3, 2, 2) - -1.0/sqrt(24)) < 1e-14,
"U(2, 2) incorrect.");
mu_assert(fabs(matrix_get(U, 3, 3, 2) - 3.0/sqrt(24)) < 1e-14,
"U(3, 2) incorrect.");
free(U);
return NULL;
}
char *all_tests()
{
mu_suite_start();
mu_run_test(test_simplex_1);
mu_run_test(test_simplex_2);
return NULL;
}
RUN_TESTS(all_tests);
|