From 62d235ba7e3a19d7cb65b2bdcb87d53fd65f11c4 Mon Sep 17 00:00:00 2001 From: Gertjan van den Burg Date: Tue, 6 Dec 2016 15:06:10 +0100 Subject: add unit tests for gensvm_train --- tests/aux/test_train.m | 52 ++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 52 insertions(+) create mode 100644 tests/aux/test_train.m (limited to 'tests/aux/test_train.m') diff --git a/tests/aux/test_train.m b/tests/aux/test_train.m new file mode 100644 index 0000000..86d3074 --- /dev/null +++ b/tests/aux/test_train.m @@ -0,0 +1,52 @@ +function [V] = test_train() + +clear; +more off; +rand('state', 123456); + +n = 10; +m = 3; +K = 4; + +X = rand(n, m); +Z = [ones(n, 1), X]; +set_matrix(Z, "data->Z", "data->m+1"); + +y = [2 1 3 2 3 2 4 1 3 4]; +set_matrix(y, "data->y", "1"); + +p = 1.2143; +kappa = 0.90298; +lambda = 0.00219038; +epsilon = 1e-15; +rho = ones(n, 1); +seedV = rand(m+1, K-1); +set_matrix(seedV, "seed->V", "data->K-1"); + +[W, t] = msvmmaj(X, y, rho, p, kappa, lambda, epsilon, 'show', 0, seedV); +V = [t'; W]; + +fprintf('\n'); +assert_matrix(V, "model->V", "model->K-1"); + +end + +function set_matrix(A, name, cols) + for ii=1:size(A, 1) + for jj=1:size(A, 2) + fprintf("matrix_set(%s, %s, %i, %i, %.16f);\n", name, cols, ii-1, jj-1, A(ii, jj)); + end + end + fprintf("\n"); +end + +function assert_matrix(A, name, cols) + for ii=1:size(A, 1) + for jj=1:size(A, 2) + fprintf(["mu_assert(fabs(matrix_get(%s, %s, %i, %i) -\n%.16f) <", ... + " eps,\n\"Incorrect %s at %i, %i\");\n"], name, cols, ... + ii-1, jj-1, A(ii, jj), name, ii-1, jj-1); + end + end + fprintf("\n"); +end \ No newline at end of file -- cgit v1.2.3