root/library/tests/datalink_test.cpp @ 477

Revision 477, 1.8 kB (checked in by mido, 15 years ago)

panove, vite, jak jsem peclivej na upravu kodu.. snad se vam bude libit:) konfigurace je v souboru /system/astylerc

  • Property svn:eol-style set to native
Line 
1#define BDMLIB // not an ideal way to prevent double registration of UI factories...
2#include "../bdm/stat/exp_family.h"
3#include "UnitTest++.h"
4
5using namespace bdm;
6
7TEST ( test_datalink ) {
8        // RV names are global, and a, b and c are already taken by a
9        // different test...
10        RV a = RV ( "{dla }", "2" );
11        RV b = RV ( "{dlb }" );
12        RV c = RV ( "{dlc }" );
13
14        RV ab = a;
15        ab.add ( b );
16
17        RV abc = ab;
18        abc.add ( c );
19
20        datalink dl ( ab, abc );
21        vec total ( "0 37 42 66" );
22        vec filtered = dl.pushdown ( total );
23        int exp_f[] = { 0, 37, 42 };
24        int exp_sz = sizeof ( exp_f ) / sizeof ( exp_f[0] );
25        CHECK_EQUAL ( exp_sz, filtered.size() );
26        for ( int i = 0; i < exp_sz; ++i ) {
27                CHECK_EQUAL ( exp_f[i], filtered ( i ) );
28        }
29}
30
31TEST ( test_datalink_m2e ) {
32        RV a = RV ( "{dla }", "2" );
33        RV b = RV ( "{dlb }" );
34        RV c = RV ( "{dlc }" );
35
36        RV ab = a;
37        ab.add ( b );
38
39        RV ba = a;
40        ba.add ( b );
41
42        RV abc = ab;
43        abc.add ( c );
44
45        datalink_m2e dl;
46        dl.set_connection ( ba, c, abc );
47        vec total ( "0 37 42 66" );
48        vec cond = dl.get_cond ( total );
49        CHECK_EQUAL ( 1, cond.size() );
50        CHECK_EQUAL ( 66, cond ( 0 ) );
51}
52
53TEST ( test_datalink_m2m ) {
54        RV a = RV ( "{dla }", "2" );
55        RV b = RV ( "{dlb }" );
56        RV c = RV ( "{dlc }" );
57
58        datalink_m2m dl;
59        dl.set_connection ( a, concat ( b, c ), concat ( a, b ), c );
60
61        vec val ( "1 1.5 2" );
62        vec cond ( "3" );
63
64        vec p = dl.pushdown ( val );
65        double exp_p[] = { 1.0, 1.5 };
66        int exp_sz = sizeof ( exp_p ) / sizeof ( exp_p[0] );
67        CHECK_EQUAL ( exp_sz, p.size() );
68        for ( int i = 0; i < exp_sz; ++i ) {
69                CHECK_EQUAL ( exp_p[i], p ( i ) );
70        }
71
72        vec dlcond = dl.get_cond ( val, cond );
73        int exp_c[] = { 2, 3 };
74        exp_sz = sizeof ( exp_c ) / sizeof ( exp_c[0] );
75        CHECK_EQUAL ( exp_sz, dlcond.size() );
76        for ( int i = 0; i < exp_sz; ++i ) {
77                CHECK_EQUAL ( exp_c[i], dlcond ( i ) );
78        }
79}
Note: See TracBrowser for help on using the browser.