root/library/tests/mat_checks.cpp @ 591

Revision 481, 1.7 kB (checked in by vbarta, 15 years ago)

doubled tolerance computed from variance, repeating failing tests (at most) 3 times; epdf tests pass

Line 
1#include "mat_checks.h"
2#include <sstream>
3
4namespace UnitTest {
5
6bool AreClose ( const itpp::vec &expected, const itpp::vec &actual,
7                double tolerance ) {
8        if ( expected.length() != actual.length() ) {
9                return false;
10        }
11
12        for ( int i = 0; i < expected.length(); ++i ) {
13                if ( !AreClose ( expected ( i ), actual ( i ), tolerance ) ) {
14                        return false;
15                }
16        }
17
18        return true;
19}
20
21bool AreClose ( const itpp::vec &expected, const itpp::vec &actual,
22                const itpp::vec &tolerance ) {
23        if ( ( expected.length() != actual.length() ) ||
24                ( actual.length() != tolerance.length() ) ) {
25                return false;
26        }
27
28        for ( int i = 0; i < expected.length(); ++i ) {
29                if ( !AreClose ( expected ( i ), actual ( i ), tolerance ( i ) ) ) {
30                        return false;
31                }
32        }
33
34        return true;
35}
36
37bool AreClose ( const itpp::mat &expected, const itpp::mat &actual, double tolerance ) {
38        if ( ( expected.rows() != actual.rows() ) ||
39                ( expected.cols() != actual.cols() ) ) {
40                return false;
41        }
42
43        for ( int i = 0; i < expected.rows(); ++i ) {
44                for ( int j = 0; j < expected.cols(); ++j ) {
45                        if ( !AreClose ( expected ( i, j ), actual ( i, j ), tolerance ) ) {
46                                return false;
47                        }
48                }
49        }
50
51        return true;
52}
53
54}
55
56const char *CurrentContext::config_name = "???";
57
58int CurrentContext::index = -1;
59
60CurrentContext::CurrentContext ( const char *name, int idx ) {
61        config_name = name;
62        index = idx;
63}
64
65CurrentContext::~CurrentContext() {
66        config_name = "???";
67        index = -1;
68}
69
70std::string CurrentContext::format_context(int ln) {
71        std::stringstream ss;
72        ss << "error at " << config_name << '[' << index << ']';
73
74        if ( ln >= 0 ) {
75                ss << ", harness line " << ln;
76        }
77
78        ss << ": ";
79        return ss.str();
80}
Note: See TracBrowser for help on using the browser.