root/library/tests/testsuite/datalink_test.cpp @ 737

Revision 737, 2.4 kB (checked in by mido, 15 years ago)

ASTYLER RUN OVER THE WHOLE LIBRARY, JUPEE

  • Property svn:eol-style set to native
RevLine 
[386]1#include "../bdm/stat/exp_family.h"
[717]2#include "../mat_checks.h"
[424]3#include "UnitTest++.h"
4
[254]5using namespace bdm;
[190]6
[689]7TEST ( datalink_test ) {
[477]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 }" );
[192]13
[477]14        RV ab = a;
15        ab.add ( b );
[192]16
[477]17        RV abc = ab;
18        abc.add ( c );
[192]19
[477]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        }
[545]29
30        datalink unnamed;
31        unnamed.set_connection ( 1, 2, ivec ( "0" ) );
32        filtered = unnamed.pushdown ( vec ( "37 42" ) );
33        CHECK_EQUAL ( vec ( "37" ), filtered );
[424]34}
[192]35
[689]36TEST ( datalink_m2e_test ) {
[477]37        RV a = RV ( "{dla }", "2" );
38        RV b = RV ( "{dlb }" );
39        RV c = RV ( "{dlc }" );
[192]40
[477]41        RV ab = a;
42        ab.add ( b );
[190]43
[477]44        RV ba = a;
45        ba.add ( b );
[424]46
[477]47        RV abc = ab;
48        abc.add ( c );
[424]49
[477]50        datalink_m2e dl;
51        dl.set_connection ( ba, c, abc );
52        vec total ( "0 37 42 66" );
53        vec cond = dl.get_cond ( total );
54        CHECK_EQUAL ( 1, cond.size() );
55        CHECK_EQUAL ( 66, cond ( 0 ) );
[545]56
57        vec big ( 4 );
58        dl.pushup_cond ( big, vec ( "2 3 5" ), vec ( "7" ) );
59        CHECK_EQUAL ( vec ( "2 3 5 7" ), big );
[190]60}
[424]61
[689]62TEST ( datalink_m2m_test ) {
[477]63        RV a = RV ( "{dla }", "2" );
64        RV b = RV ( "{dlb }" );
65        RV c = RV ( "{dlc }" );
[424]66
[477]67        datalink_m2m dl;
68        dl.set_connection ( a, concat ( b, c ), concat ( a, b ), c );
[424]69
[477]70        vec val ( "1 1.5 2" );
71        vec cond ( "3" );
[424]72
[477]73        vec p = dl.pushdown ( val );
74        double exp_p[] = { 1.0, 1.5 };
75        int exp_sz = sizeof ( exp_p ) / sizeof ( exp_p[0] );
76        CHECK_EQUAL ( exp_sz, p.size() );
77        for ( int i = 0; i < exp_sz; ++i ) {
78                CHECK_EQUAL ( exp_p[i], p ( i ) );
79        }
[424]80
[477]81        vec dlcond = dl.get_cond ( val, cond );
82        int exp_c[] = { 2, 3 };
83        exp_sz = sizeof ( exp_c ) / sizeof ( exp_c[0] );
84        CHECK_EQUAL ( exp_sz, dlcond.size() );
85        for ( int i = 0; i < exp_sz; ++i ) {
86                CHECK_EQUAL ( exp_c[i], dlcond ( i ) );
87        }
[424]88}
[598]89
[689]90TEST ( datalink_buffered_test ) {
[598]91        RV a = RV ( "{dl_a }" );
92        RV b = RV ( "{dlb }" );
[722]93        RV ab = concat ( a, b );
[598]94        RV aa = a;
[722]95        a.t_plus ( -1 );
96        aa.add ( a );
[598]97
[722]98
[598]99        datalink_buffered dl;
[722]100        dl.set_connection ( concat ( aa, b ), ab );
[598]101
102        vec val_up ( "1 2" );
[737]103        dl.store_data ( val_up );
[722]104        val_up = "3 4";
105
106
[598]107        vec p = dl.pushdown ( val_up );
108        vec exp_p = " 3, 1, 4 ";
109        CHECK_EQUAL ( exp_p, p );
110
111}
Note: See TracBrowser for help on using the browser.