Show
Ignore:
Timestamp:
06/09/10 14:00:40 (14 years ago)
Author:
mido
Message:

astyle applied all over the library

Location:
library/tests/testsuite
Files:
17 modified

Legend:

Unmodified
Added
Removed
  • library/tests/testsuite/LQG_test.cpp

    r737 r1064  
    66 
    77TEST ( LQG_test ) { 
    8         LQG reg; 
    9         shared_ptr<StateSpace<chmat> > stsp = new StateSpace<chmat>; 
    10         // 2 x 1 x 1 
    11         stsp-> set_parameters ( eye ( 2 ), ones ( 2, 1 ), ones ( 1, 2 ), ones ( 1, 1 ), /* Q,R */ eye ( 2 ), eye ( 1 ) ); 
    12         reg.set_system ( stsp ); // A, B, C 
    13         reg.set_control_parameters ( eye ( 1 ), eye ( 1 ),  vec_1 ( 1.0 ), 6 ); //Qy, Qu, horizon 
    14         reg.validate(); 
     8    LQG reg; 
     9    shared_ptr<StateSpace<chmat> > stsp = new StateSpace<chmat>; 
     10    // 2 x 1 x 1 
     11    stsp-> set_parameters ( eye ( 2 ), ones ( 2, 1 ), ones ( 1, 2 ), ones ( 1, 1 ), /* Q,R */ eye ( 2 ), eye ( 1 ) ); 
     12    reg.set_system ( stsp ); // A, B, C 
     13    reg.set_control_parameters ( eye ( 1 ), eye ( 1 ),  vec_1 ( 1.0 ), 6 ); //Qy, Qu, horizon 
     14    reg.validate(); 
    1515 
    16         reg.redesign(); 
    17         double reg_apply = reg.ctrlaction ( "0.5, 1.1", "0.0" ) ( 0 ); /*convert vec to double*/ 
    18         CHECK_CLOSE ( reg_apply, -0.248528137234392, 0.0001 ); 
     16    reg.redesign(); 
     17    double reg_apply = reg.ctrlaction ( "0.5, 1.1", "0.0" ) ( 0 ); /*convert vec to double*/ 
     18    CHECK_CLOSE ( reg_apply, -0.248528137234392, 0.0001 ); 
    1919} 
    2020 
    2121TEST ( to_state_test ) { 
    22         mlnorm<fsqmat> ml; 
    23         mat A = "1.1, 2.3"; 
    24         ml.set_parameters ( A, vec_1 ( 1.3 ), eye ( 1 ) ); 
    25         RV yr = RV ( "y", 1 ); 
    26         RV ur = RV ( "u", 1 ); 
    27         ml.set_rv ( yr ); 
    28         yr.t_plus ( -1 ); 
    29         ml.set_rvc ( concat ( yr, ur ) ); 
     22    mlnorm<fsqmat> ml; 
     23    mat A = "1.1, 2.3"; 
     24    ml.set_parameters ( A, vec_1 ( 1.3 ), eye ( 1 ) ); 
     25    RV yr = RV ( "y", 1 ); 
     26    RV ur = RV ( "u", 1 ); 
     27    ml.set_rv ( yr ); 
     28    yr.t_plus ( -1 ); 
     29    ml.set_rvc ( concat ( yr, ur ) ); 
    3030 
    31         shared_ptr<StateCanonical > Stsp = new StateCanonical; 
    32         Stsp->connect_mlnorm ( ml ); 
     31    shared_ptr<StateCanonical > Stsp = new StateCanonical; 
     32    Stsp->connect_mlnorm ( ml ); 
    3333 
    34         /* results from 
    35         [A,B,C,D]=tf2ss([2.3 0],[1 -1.1]) 
    36         */ 
    37         CHECK_CLOSE_EX ( Stsp->_A().get_row ( 0 ), vec ( "1.1" ), 0.0001 ); 
    38         CHECK_CLOSE_EX ( Stsp->_C().get_row ( 0 ), vec ( "2.53" ), 0.0001 ); 
    39         CHECK_CLOSE_EX ( Stsp->_D().get_row ( 0 ), vec ( "2.30" ), 0.0001 ); 
     34    /* results from 
     35    [A,B,C,D]=tf2ss([2.3 0],[1 -1.1]) 
     36    */ 
     37    CHECK_CLOSE_EX ( Stsp->_A().get_row ( 0 ), vec ( "1.1" ), 0.0001 ); 
     38    CHECK_CLOSE_EX ( Stsp->_C().get_row ( 0 ), vec ( "2.53" ), 0.0001 ); 
     39    CHECK_CLOSE_EX ( Stsp->_D().get_row ( 0 ), vec ( "2.30" ), 0.0001 ); 
    4040} 
    4141 
    4242TEST ( to_state_arx_test ) { 
    43         mlnorm<chmat> ml; 
    44         mat A = "1.1, 2.3, 3.4"; 
    45         ml.set_parameters ( A, vec_1 ( 1.3 ), eye ( 1 ) ); 
    46         RV yr = RV ( "y", 1 ); 
    47         RV ur = RV ( "u", 1 ); 
    48         ml.set_rv ( yr ); 
    49         ml.set_rvc ( concat ( yr.copy_t ( -1 ), concat ( ur, ur.copy_t ( -1 ) ) ) ); 
     43    mlnorm<chmat> ml; 
     44    mat A = "1.1, 2.3, 3.4"; 
     45    ml.set_parameters ( A, vec_1 ( 1.3 ), eye ( 1 ) ); 
     46    RV yr = RV ( "y", 1 ); 
     47    RV ur = RV ( "u", 1 ); 
     48    ml.set_rv ( yr ); 
     49    ml.set_rvc ( concat ( yr.copy_t ( -1 ), concat ( ur, ur.copy_t ( -1 ) ) ) ); 
    5050 
    51         shared_ptr<StateFromARX> Stsp = new StateFromARX; 
    52         RV xrv; 
    53         RV urv; 
    54         Stsp->connect_mlnorm ( ml, xrv, urv ); 
     51    shared_ptr<StateFromARX> Stsp = new StateFromARX; 
     52    RV xrv; 
     53    RV urv; 
     54    Stsp->connect_mlnorm ( ml, xrv, urv ); 
    5555 
    56         /* results from 
    57         [A,B,C,D]=tf2ss([2.3 0],[1 -1.1]) 
    58         */ 
    59         CHECK_CLOSE_EX ( Stsp->_A().get_row ( 0 ), vec ( "1.1, 3.4, 1.3" ), 0.0001 ); 
    60         CHECK_CLOSE_EX ( Stsp->_B().get_row ( 0 ), vec ( "2.3" ), 0.0001 ); 
    61         CHECK_CLOSE_EX ( Stsp->_C().get_row ( 0 ), vec ( "1, 0, 0" ), 0.0001 ); 
     56    /* results from 
     57    [A,B,C,D]=tf2ss([2.3 0],[1 -1.1]) 
     58    */ 
     59    CHECK_CLOSE_EX ( Stsp->_A().get_row ( 0 ), vec ( "1.1, 3.4, 1.3" ), 0.0001 ); 
     60    CHECK_CLOSE_EX ( Stsp->_B().get_row ( 0 ), vec ( "2.3" ), 0.0001 ); 
     61    CHECK_CLOSE_EX ( Stsp->_C().get_row ( 0 ), vec ( "1, 0, 0" ), 0.0001 ); 
    6262} 
    6363 
    6464TEST ( arx_LQG_test ) { 
    65         mlnorm<chmat> ml; 
    66         mat A = "1.81, -.81, .00468, .00438"; 
    67         ml.set_parameters ( A, vec_1 ( 0.0 ), 0.00001*eye ( 1 ) ); 
    68         RV yr = RV ( "y", 1 ); 
    69         RV ur = RV ( "u", 1 ); 
    70         RV rgr = yr.copy_t ( -1 ); 
    71         rgr.add ( yr.copy_t ( -2 ) ); 
    72         rgr.add ( yr.copy_t ( -2 ) ); 
    73         rgr.add ( ur.copy_t ( -1 ) ); 
    74         rgr.add ( ur ); 
     65    mlnorm<chmat> ml; 
     66    mat A = "1.81, -.81, .00468, .00438"; 
     67    ml.set_parameters ( A, vec_1 ( 0.0 ), 0.00001*eye ( 1 ) ); 
     68    RV yr = RV ( "y", 1 ); 
     69    RV ur = RV ( "u", 1 ); 
     70    RV rgr = yr.copy_t ( -1 ); 
     71    rgr.add ( yr.copy_t ( -2 ) ); 
     72    rgr.add ( yr.copy_t ( -2 ) ); 
     73    rgr.add ( ur.copy_t ( -1 ) ); 
     74    rgr.add ( ur ); 
    7575 
    76         ml.set_rv ( yr ); 
    77         ml.set_rvc ( rgr ); 
    78         ml.validate(); 
     76    ml.set_rv ( yr ); 
     77    ml.set_rvc ( rgr ); 
     78    ml.validate(); 
    7979 
    80         shared_ptr<StateFromARX> Stsp = new StateFromARX; 
    81         RV xrv; 
    82         RV urv; 
    83         Stsp->connect_mlnorm ( ml, xrv, urv ); 
     80    shared_ptr<StateFromARX> Stsp = new StateFromARX; 
     81    RV xrv; 
     82    RV urv; 
     83    Stsp->connect_mlnorm ( ml, xrv, urv ); 
    8484 
    85         LQG L; 
    86         L.set_system ( Stsp ); 
    87         L.set_control_parameters ( eye ( 1 ), sqrt ( 1.0 / 1000 ) *eye ( 1 ), vec_1 ( 0.0 ), 100 ); 
    88         L.validate(); 
     85    LQG L; 
     86    L.set_system ( Stsp ); 
     87    L.set_control_parameters ( eye ( 1 ), sqrt ( 1.0 / 1000 ) *eye ( 1 ), vec_1 ( 0.0 ), 100 ); 
     88    L.validate(); 
    8989 
    90         L.redesign(); 
    91         cout << L.to_string() << endl; 
     90    L.redesign(); 
     91    cout << L.to_string() << endl; 
    9292} 
  • library/tests/testsuite/arx_straux_test.cpp

    r722 r1064  
    66TEST ( arx_straux_test ) { 
    77 
    8         UIFile F ( "arx_straux_test.cfg" ); 
     8    UIFile F ( "arx_straux_test.cfg" ); 
    99 
    10         Setting &tests = F.getRoot() ["tests"]; 
    11         for ( int i = 0; i < tests.getLength(); i++ ) { 
    12                 mat A; 
    13                 mat B; 
    14                 ivec o1_ok; 
    15                 UI::get ( A, tests[i], "A", UI::compulsory ); 
    16                 UI::get ( B, tests[i], "B", UI::compulsory ); 
    17                 UI::get ( o1_ok, tests[i], "o1", UI::compulsory ); 
     10    Setting &tests = F.getRoot() ["tests"]; 
     11    for ( int i = 0; i < tests.getLength(); i++ ) { 
     12        mat A; 
     13        mat B; 
     14        ivec o1_ok; 
     15        UI::get ( A, tests[i], "A", UI::compulsory ); 
     16        UI::get ( B, tests[i], "B", UI::compulsory ); 
     17        UI::get ( o1_ok, tests[i], "o1", UI::compulsory ); 
    1818 
    1919//when updateing matrices do not forget to update CHECK_EQUAL below!!! 
    2020 
    21                 ldmat Ld0 ( 3 ); 
    22                 Ld0.ldform ( A, ones ( A.rows() ) ); 
    23                 ldmat Ld1 ( 3 ); 
    24                 Ld1.ldform ( A + B, ones ( A.rows() ) ); 
     21        ldmat Ld0 ( 3 ); 
     22        Ld0.ldform ( A, ones ( A.rows() ) ); 
     23        ldmat Ld1 ( 3 ); 
     24        Ld1.ldform ( A + B, ones ( A.rows() ) ); 
    2525 
    2626 
    27                 ivec belief = vec_1 ( 2 );        // default belief 
    28                 int nbest = 3;           // nbest: how many regressors are returned 
    29                 int nrep = 5;         // nrep: number of random repetions of structure estimation 
    30                 double lambda   = 0.9; 
    31                 int k = 2; 
     27        ivec belief = vec_1 ( 2 );        // default belief 
     28        int nbest = 3;           // nbest: how many regressors are returned 
     29        int nrep = 5;         // nrep: number of random repetions of structure estimation 
     30        double lambda   = 0.9; 
     31        int k = 2; 
    3232 
    3333//[strout, rgrsout, statistics] = 
    3434//          straux1(L, d, nu, L0, d0, nu0, belief, nbest, max_nrep, lambda, 
    3535//          order_k); 
    36                 Array<str_aux> o2; 
    37                 ivec o1 = straux1 ( Ld1, 20, Ld0, 10,  belief, nbest, nrep, lambda, k, o2 ); 
     36        Array<str_aux> o2; 
     37        ivec o1 = straux1 ( Ld1, 20, Ld0, 10,  belief, nbest, nrep, lambda, k, o2 ); 
    3838 
    3939//o1 is messed up in matlab's straux 
    40                 sort ( o1_ok ); 
    41                 sort ( o1 ); 
    42                 CHECK_EQUAL ( o1_ok, o1 ); 
    43         } 
     40        sort ( o1_ok ); 
     41        sort ( o1 ); 
     42        CHECK_EQUAL ( o1_ok, o1 ); 
     43    } 
    4444 
    4545} 
  • library/tests/testsuite/datalink_test.cpp

    r737 r1064  
    66 
    77TEST ( datalink_test ) { 
    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 }" ); 
     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 }" ); 
    1313 
    14         RV ab = a; 
    15         ab.add ( b ); 
     14    RV ab = a; 
     15    ab.add ( b ); 
    1616 
    17         RV abc = ab; 
    18         abc.add ( c ); 
     17    RV abc = ab; 
     18    abc.add ( c ); 
    1919 
    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         } 
     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    } 
    2929 
    30         datalink unnamed; 
    31         unnamed.set_connection ( 1, 2, ivec ( "0" ) ); 
    32         filtered = unnamed.pushdown ( vec ( "37 42" ) ); 
    33         CHECK_EQUAL ( vec ( "37" ), filtered ); 
     30    datalink unnamed; 
     31    unnamed.set_connection ( 1, 2, ivec ( "0" ) ); 
     32    filtered = unnamed.pushdown ( vec ( "37 42" ) ); 
     33    CHECK_EQUAL ( vec ( "37" ), filtered ); 
    3434} 
    3535 
    3636TEST ( datalink_m2e_test ) { 
    37         RV a = RV ( "{dla }", "2" ); 
    38         RV b = RV ( "{dlb }" ); 
    39         RV c = RV ( "{dlc }" ); 
     37    RV a = RV ( "{dla }", "2" ); 
     38    RV b = RV ( "{dlb }" ); 
     39    RV c = RV ( "{dlc }" ); 
    4040 
    41         RV ab = a; 
    42         ab.add ( b ); 
     41    RV ab = a; 
     42    ab.add ( b ); 
    4343 
    44         RV ba = a; 
    45         ba.add ( b ); 
     44    RV ba = a; 
     45    ba.add ( b ); 
    4646 
    47         RV abc = ab; 
    48         abc.add ( c ); 
     47    RV abc = ab; 
     48    abc.add ( c ); 
    4949 
    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 ) ); 
     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 ) ); 
    5656 
    57         vec big ( 4 ); 
    58         dl.pushup_cond ( big, vec ( "2 3 5" ), vec ( "7" ) ); 
    59         CHECK_EQUAL ( vec ( "2 3 5 7" ), big ); 
     57    vec big ( 4 ); 
     58    dl.pushup_cond ( big, vec ( "2 3 5" ), vec ( "7" ) ); 
     59    CHECK_EQUAL ( vec ( "2 3 5 7" ), big ); 
    6060} 
    6161 
    6262TEST ( datalink_m2m_test ) { 
    63         RV a = RV ( "{dla }", "2" ); 
    64         RV b = RV ( "{dlb }" ); 
    65         RV c = RV ( "{dlc }" ); 
     63    RV a = RV ( "{dla }", "2" ); 
     64    RV b = RV ( "{dlb }" ); 
     65    RV c = RV ( "{dlc }" ); 
    6666 
    67         datalink_m2m dl; 
    68         dl.set_connection ( a, concat ( b, c ), concat ( a, b ), c ); 
     67    datalink_m2m dl; 
     68    dl.set_connection ( a, concat ( b, c ), concat ( a, b ), c ); 
    6969 
    70         vec val ( "1 1.5 2" ); 
    71         vec cond ( "3" ); 
     70    vec val ( "1 1.5 2" ); 
     71    vec cond ( "3" ); 
    7272 
    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         } 
     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    } 
    8080 
    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         } 
     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    } 
    8888} 
    8989 
    9090TEST ( datalink_buffered_test ) { 
    91         RV a = RV ( "{dl_a }" ); 
    92         RV b = RV ( "{dlb }" ); 
    93         RV ab = concat ( a, b ); 
    94         RV aa = a; 
    95         a.t_plus ( -1 ); 
    96         aa.add ( a ); 
     91    RV a = RV ( "{dl_a }" ); 
     92    RV b = RV ( "{dlb }" ); 
     93    RV ab = concat ( a, b ); 
     94    RV aa = a; 
     95    a.t_plus ( -1 ); 
     96    aa.add ( a ); 
    9797 
    9898 
    99         datalink_buffered dl; 
    100         dl.set_connection ( concat ( aa, b ), ab ); 
     99    datalink_buffered dl; 
     100    dl.set_connection ( concat ( aa, b ), ab ); 
    101101 
    102         vec val_up ( "1 2" ); 
    103         dl.store_data ( val_up ); 
    104         val_up = "3 4"; 
     102    vec val_up ( "1 2" ); 
     103    dl.store_data ( val_up ); 
     104    val_up = "3 4"; 
    105105 
    106106 
    107         vec p = dl.pushdown ( val_up ); 
    108         vec exp_p = " 3, 1, 4 "; 
    109         CHECK_EQUAL ( exp_p, p ); 
     107    vec p = dl.pushdown ( val_up ); 
     108    vec exp_p = " 3, 1, 4 "; 
     109    CHECK_EQUAL ( exp_p, p ); 
    110110 
    111111} 
  • library/tests/testsuite/datasource_test.cpp

    r907 r1064  
    77 
    88TEST ( EpdfDS_test ) { 
    9         UIFile uif ( "epdfds.cfg" ); 
    10         shared_ptr<EpdfDS> ds = UI::build<EpdfDS> ( uif, "ds" ); 
     9    UIFile uif ( "epdfds.cfg" ); 
     10    shared_ptr<EpdfDS> ds = UI::build<EpdfDS> ( uif, "ds" ); 
    1111 
    12         vec mean = zeros ( 2 ); 
    13         vec dt = zeros ( 2 ); 
    14         for ( int i = 0; i < 100; i++ ) { 
    15                 ds->step(); 
    16                 ds->getdata ( dt ); 
    17                 mean += dt; 
    18         } 
    19         CHECK_CLOSE_EX ( vec_2 ( 1.0, 2.0 ) , mean / 100, 1e-2 ); 
     12    vec mean = zeros ( 2 ); 
     13    vec dt = zeros ( 2 ); 
     14    for ( int i = 0; i < 100; i++ ) { 
     15        ds->step(); 
     16        ds->getdata ( dt ); 
     17        mean += dt; 
     18    } 
     19    CHECK_CLOSE_EX ( vec_2 ( 1.0, 2.0 ) , mean / 100, 1e-2 ); 
    2020} 
    2121 
    2222TEST ( PdfDS_test ) { 
    23         UIFile uif ( "pdfds.cfg" ); 
     23    UIFile uif ( "pdfds.cfg" ); 
    2424 
    25         shared_ptr<PdfDS> ds = UI::build<PdfDS> ( uif, "ds", UI::compulsory ); 
     25    shared_ptr<PdfDS> ds = UI::build<PdfDS> ( uif, "ds", UI::compulsory ); 
    2626 
    27         vec dt = zeros ( 2 ); 
    28         vec ut = "1.0"; 
    29         ds->write ( ut ); 
    30         for ( int i = 0; i < 100; i++ ) { 
    31                 ds->step(); 
    32         } 
    33         ds->getdata ( dt ); 
    34         CHECK_CLOSE ( -0.2 , dt ( 0 ), 1e-4 ); 
     27    vec dt = zeros ( 2 ); 
     28    vec ut = "1.0"; 
     29    ds->write ( ut ); 
     30    for ( int i = 0; i < 100; i++ ) { 
     31        ds->step(); 
     32    } 
     33    ds->getdata ( dt ); 
     34    CHECK_CLOSE ( -0.2 , dt ( 0 ), 1e-4 ); 
    3535 
    36         ut = "2.0"; 
    37         ds->write ( ut ); 
    38         for ( int i = 0; i < 100; i++ ) { 
    39                 ds->step(); 
    40         } 
    41         ds->getdata ( dt ); 
    42         CHECK_CLOSE ( -0.4 , dt ( 0 ), 1e-4 ); 
     36    ut = "2.0"; 
     37    ds->write ( ut ); 
     38    for ( int i = 0; i < 100; i++ ) { 
     39        ds->step(); 
     40    } 
     41    ds->getdata ( dt ); 
     42    CHECK_CLOSE ( -0.4 , dt ( 0 ), 1e-4 ); 
    4343} 
    4444 
    4545TEST ( StateDS_test ) { 
    46         RV y ( "y", 1 ); 
    47         RV u ( "u", 1 ); 
    48         RV x ( "x", 2 ); 
     46    RV y ( "y", 1 ); 
     47    RV u ( "u", 1 ); 
     48    RV x ( "x", 2 ); 
    4949 
    50         shared_ptr<mlnorm<fsqmat> > IM = new mlnorm<fsqmat>; 
    51         IM->set_parameters ( mat ( "1 2 0.5; 0 1 0.3" ), zeros ( 2 ), fsqmat ( 1e-10*eye ( 2 ) ) ); 
    52         IM->set_rv ( x ); 
    53         IM->set_rvc ( concat ( x.copy_t ( -1 ), u ) ); 
    54         IM->validate(); 
     50    shared_ptr<mlnorm<fsqmat> > IM = new mlnorm<fsqmat>; 
     51    IM->set_parameters ( mat ( "1 2 0.5; 0 1 0.3" ), zeros ( 2 ), fsqmat ( 1e-10*eye ( 2 ) ) ); 
     52    IM->set_rv ( x ); 
     53    IM->set_rvc ( concat ( x.copy_t ( -1 ), u ) ); 
     54    IM->validate(); 
    5555 
    56         shared_ptr<mlnorm<fsqmat> > OM = new mlnorm<fsqmat>; 
    57         OM->set_parameters ( mat ( "1 0" ), zeros ( 1 ), fsqmat ( 1e-10*eye ( 1 ) ) ); 
    58         OM->set_rv ( y ); 
    59         OM->set_rvc ( x ); 
    60         OM->validate(); 
     56    shared_ptr<mlnorm<fsqmat> > OM = new mlnorm<fsqmat>; 
     57    OM->set_parameters ( mat ( "1 0" ), zeros ( 1 ), fsqmat ( 1e-10*eye ( 1 ) ) ); 
     58    OM->set_rv ( y ); 
     59    OM->set_rvc ( x ); 
     60    OM->validate(); 
    6161 
    62         StateDS sds; 
    63         sds.set_parameters ( IM, OM ); 
    64         sds.validate(); 
     62    StateDS sds; 
     63    sds.set_parameters ( IM, OM ); 
     64    sds.validate(); 
    6565 
    66         for ( int t = 1; t < 10; t++ ) { 
    67                 sds.write ( vec_1 ( double ( t ) ) ); 
    68                 // TODO ZDE TO SPADNE 
    69                 sds.step(); 
    70         } 
     66    for ( int t = 1; t < 10; t++ ) { 
     67        sds.write ( vec_1 ( double ( t ) ) ); 
     68        // TODO ZDE TO SPADNE 
     69        sds.step(); 
     70    } 
    7171 
    72         vec dt; 
    73         sds.getdata ( dt ); 
    74         CHECK_CLOSE ( vec ( "94.5, 94.5, 13.5, 9" ), dt, 1e-2 ); 
     72    vec dt; 
     73    sds.getdata ( dt ); 
     74    CHECK_CLOSE ( vec ( "94.5, 94.5, 13.5, 9" ), dt, 1e-2 ); 
    7575} 
  • library/tests/testsuite/egiw_test.cpp

    r722 r1064  
    1313 
    1414TEST ( egiw_test ) { 
    15         epdf_harness::test_config ( "egiw.cfg" ); 
     15    epdf_harness::test_config ( "egiw.cfg" ); 
    1616} 
    1717 
    1818TEST ( egiw_1_2_test ) { 
    19         // Setup model 
    20         double mu = 1.1; //unit step parametr 
    21         double b = 3.0; // sequence of <1 -1 1 -1...> 
    22         double s = 0.1; 
     19    // Setup model 
     20    double mu = 1.1; //unit step parametr 
     21    double b = 3.0; // sequence of <1 -1 1 -1...> 
     22    double s = 0.1; 
    2323 
    2424 
    25         // TEST 1x1 EGIW 
    26         mat V ( 3, 3 ); 
    27         V ( 0, 0 ) = pow ( mu, 2 ) + pow ( b, 2 ) + s; 
    28         V ( 1, 0 ) = mu; 
    29         V ( 2, 0 ) = b; 
     25    // TEST 1x1 EGIW 
     26    mat V ( 3, 3 ); 
     27    V ( 0, 0 ) = pow ( mu, 2 ) + pow ( b, 2 ) + s; 
     28    V ( 1, 0 ) = mu; 
     29    V ( 2, 0 ) = b; 
    3030 
    31         V ( 0, 1 ) = V ( 1, 0 ); 
    32         V ( 1, 1 ) = 1.0; 
    33         V ( 2, 1 ) = 0.0; 
     31    V ( 0, 1 ) = V ( 1, 0 ); 
     32    V ( 1, 1 ) = 1.0; 
     33    V ( 2, 1 ) = 0.0; 
    3434 
    35         V ( 0, 2 ) = V ( 2, 0 ); 
    36         V ( 1, 2 ) = V ( 2, 1 ); 
    37         V ( 2, 2 ) = 1.0; 
     35    V ( 0, 2 ) = V ( 2, 0 ); 
     36    V ( 1, 2 ) = V ( 2, 1 ); 
     37    V ( 2, 2 ) = 1.0; 
    3838 
    39         double nu = 20; 
     39    double nu = 20; 
    4040 
    41         egiw E ( 1, nu * V, nu ); 
    42         CHECK_CLOSE ( vec ( "1.1 3.0 0.142857" ), E.mean(), epsilon ); 
    43         CHECK_CLOSE ( 7.36731, E.lognc(), epsilon ); 
     41    egiw E ( 1, nu * V, nu ); 
     42    CHECK_CLOSE ( vec ( "1.1 3.0 0.142857" ), E.mean(), epsilon ); 
     43    CHECK_CLOSE ( 7.36731, E.lognc(), epsilon ); 
    4444 
    45         int n = 100; 
    46         rectangular_support Sup; 
    47         Sup.set_parameters ( "{[-2.,4.], [1.,5.], [0.,2.]} ", n*ones_i ( E.dimension() ) ); 
     45    int n = 100; 
     46    rectangular_support Sup; 
     47    Sup.set_parameters ( "{[-2.,4.], [1.,5.], [0.,2.]} ", n*ones_i ( E.dimension() ) ); 
    4848 
    49         double summ = exp ( E.evallog ( Sup.first_vec() ) ); 
    50         // sum all likelihood at all points of support 
    51         for ( int k = 1; k < Sup.points(); k++ ) { // ALL b 
    52                 summ += exp ( E.evallog ( Sup.next_vec() ) ); 
    53         } 
     49    double summ = exp ( E.evallog ( Sup.first_vec() ) ); 
     50    // sum all likelihood at all points of support 
     51    for ( int k = 1; k < Sup.points(); k++ ) { // ALL b 
     52        summ += exp ( E.evallog ( Sup.next_vec() ) ); 
     53    } 
    5454 
    55         CHECK_CLOSE ( 1.0, summ*prod ( Sup._steps() ), 0.01 ); 
     55    CHECK_CLOSE ( 1.0, summ*prod ( Sup._steps() ), 0.01 ); 
    5656} 
    5757 
  • library/tests/testsuite/emix_test.cpp

    r799 r1064  
    1616 
    1717TEST ( emix_test ) { 
    18         pdf_harness::test_config ( "emix.cfg" ); 
     18    pdf_harness::test_config ( "emix.cfg" ); 
    1919} 
    2020 
    2121TEST ( emix_1_test ) { 
    22         RV x ( "{emixx }" ); 
    23         RV y ( "{emixy }" ); 
    24         RV xy = concat ( x, y ); 
    25         vec mu0 ( "1.00054 1.0455" ); 
     22    RV x ( "{emixx }" ); 
     23    RV y ( "{emixy }" ); 
     24    RV xy = concat ( x, y ); 
     25    vec mu0 ( "1.00054 1.0455" ); 
    2626 
    27         enorm_ldmat_ptr E1; 
    28         E1->set_rv ( xy ); 
    29         E1->set_parameters ( mu0 , mat ( "0.740142 -0.259015; -0.259015 1.0302" ) ); 
     27    enorm_ldmat_ptr E1; 
     28    E1->set_rv ( xy ); 
     29    E1->set_parameters ( mu0 , mat ( "0.740142 -0.259015; -0.259015 1.0302" ) ); 
    3030 
    31         enorm_ldmat_ptr E2; 
    32         E2->set_rv ( xy ); 
    33         E2->set_parameters ( "-1.2 -0.1" , mat ( "1 0.4; 0.4 0.5" ) ); 
     31    enorm_ldmat_ptr E2; 
     32    E2->set_rv ( xy ); 
     33    E2->set_parameters ( "-1.2 -0.1" , mat ( "1 0.4; 0.4 0.5" ) ); 
    3434 
    35         epdf_array A1 ( 1 ); 
    36         A1 ( 0 ) = E1; 
     35    epdf_array A1 ( 1 ); 
     36    A1 ( 0 ) = E1; 
    3737 
    38         emix M1; 
    39         M1.set_rv ( xy ); 
    40         M1._Coms() = A1; 
    41         M1._w() = vec_1(1.0); 
    42         M1.validate(); 
     38    emix M1; 
     39    M1.set_rv ( xy ); 
     40    M1._Coms() = A1; 
     41    M1._w() = vec_1(1.0); 
     42    M1.validate(); 
    4343 
    44         // test if ARX and emix with one ARX are the same 
    45         epdf_ptr Mm = M1.marginal ( y ); 
    46         epdf_ptr Am = E1->marginal ( y ); 
    47         pdf_ptr Mc = M1.condition ( y ); 
    48         pdf_ptr Ac = E1->condition ( y ); 
     44    // test if ARX and emix with one ARX are the same 
     45    epdf_ptr Mm = M1.marginal ( y ); 
     46    epdf_ptr Am = E1->marginal ( y ); 
     47    pdf_ptr Mc = M1.condition ( y ); 
     48    pdf_ptr Ac = E1->condition ( y ); 
    4949 
    50         mlnorm<ldmat> *wacnd = dynamic_cast<mlnorm<ldmat> *> ( Ac.get() ); 
    51         CHECK ( wacnd ); 
    52         if ( wacnd ) { 
    53                 CHECK_CLOSE ( mat ( "-0.349953" ), wacnd->_A(), epsilon ); 
    54                 CHECK_CLOSE ( vec ( "1.39564" ), wacnd->_mu_const(), epsilon ); 
    55                 CHECK_CLOSE ( mat ( "0.939557" ), wacnd->_R(), epsilon ); 
    56         } 
     50    mlnorm<ldmat> *wacnd = dynamic_cast<mlnorm<ldmat> *> ( Ac.get() ); 
     51    CHECK ( wacnd ); 
     52    if ( wacnd ) { 
     53        CHECK_CLOSE ( mat ( "-0.349953" ), wacnd->_A(), epsilon ); 
     54        CHECK_CLOSE ( vec ( "1.39564" ), wacnd->_mu_const(), epsilon ); 
     55        CHECK_CLOSE ( mat ( "0.939557" ), wacnd->_R(), epsilon ); 
     56    } 
    5757 
    58         double same = -1.46433; 
    59         CHECK_CLOSE ( same, Mm->evallog ( vec_1 ( 0.0 ) ), epsilon ); 
    60         CHECK_CLOSE ( same, Am->evallog ( vec_1 ( 0.0 ) ), epsilon ); 
    61         CHECK_CLOSE ( 0.145974, Mc->evallogcond ( vec_1 ( 0.0 ), vec_1 ( 0.0 ) ), epsilon ); 
    62         CHECK_CLOSE ( -1.92433, Ac->evallogcond ( vec_1 ( 0.0 ), vec_1 ( 0.0 ) ), epsilon ); 
     58    double same = -1.46433; 
     59    CHECK_CLOSE ( same, Mm->evallog ( vec_1 ( 0.0 ) ), epsilon ); 
     60    CHECK_CLOSE ( same, Am->evallog ( vec_1 ( 0.0 ) ), epsilon ); 
     61    CHECK_CLOSE ( 0.145974, Mc->evallogcond ( vec_1 ( 0.0 ), vec_1 ( 0.0 ) ), epsilon ); 
     62    CHECK_CLOSE ( -1.92433, Ac->evallogcond ( vec_1 ( 0.0 ), vec_1 ( 0.0 ) ), epsilon ); 
    6363 
    64         // mixture with two components 
    65         epdf_array A2 ( 2 ); 
    66         A2 ( 0 ) = E1; 
    67         A2 ( 1 ) = E2; 
     64    // mixture with two components 
     65    epdf_array A2 ( 2 ); 
     66    A2 ( 0 ) = E1; 
     67    A2 ( 1 ) = E2; 
    6868 
    69         emix M2; 
    70         M2.set_rv ( xy ); 
    71         M2._Coms() = A2; 
    72         M2._w() = vec_2(.5,.5); 
    73         M2.validate(); 
     69    emix M2; 
     70    M2.set_rv ( xy ); 
     71    M2._Coms() = A2; 
     72    M2._w() = vec_2(.5,.5); 
     73    M2.validate(); 
    7474 
    75         // mixture normalization 
    76         CHECK_CLOSE ( 1.0, normcoef ( &M2, vec ( "-3 3 " ), vec ( "-3 3 " ) ), 0.1 ); 
     75    // mixture normalization 
     76    CHECK_CLOSE ( 1.0, normcoef ( &M2, vec ( "-3 3 " ), vec ( "-3 3 " ) ), 0.1 ); 
    7777 
    78         int N = 6; 
    79         mat Smp = M2.sample_mat ( N ); 
     78    int N = 6; 
     79    mat Smp = M2.sample_mat ( N ); 
    8080 
    81         vec exp_ll ( "-5.0 -2.53563 -2.62171 -5.0 -2.53563 -2.62171" ); 
    82         vec ll = M2.evallog_mat ( Smp ); 
    83         CHECK_CLOSE ( exp_ll, ll, 5.0 ); 
     81    vec exp_ll ( "-5.0 -2.53563 -2.62171 -5.0 -2.53563 -2.62171" ); 
     82    vec ll = M2.evallog_mat ( Smp ); 
     83    CHECK_CLOSE ( exp_ll, ll, 5.0 ); 
    8484 
    85         check_mean ( M2, N, 0.5*mu0+0.5*vec("-1.2 -0.1"), 1.0 ); 
     85    check_mean ( M2, N, 0.5*mu0+0.5*vec("-1.2 -0.1"), 1.0 ); 
    8686 
    87         mat observedR ( "0.740142 -0.259015; -0.259015 1.0302" ); 
    88         check_covariance ( M2, N, observedR, 2.0 ); 
     87    mat observedR ( "0.740142 -0.259015; -0.259015 1.0302" ); 
     88    check_covariance ( M2, N, observedR, 2.0 ); 
    8989 
    90         epdf_ptr Mg = M2.marginal ( y ); 
    91         CHECK ( Mg.get() ); 
    92         pdf_ptr Cn = M2.condition ( x ); 
    93         CHECK ( Cn.get() ); 
     90    epdf_ptr Mg = M2.marginal ( y ); 
     91    CHECK ( Mg.get() ); 
     92    pdf_ptr Cn = M2.condition ( x ); 
     93    CHECK ( Cn.get() ); 
    9494 
    95         // marginal mean 
    96         CHECK_CLOSE ( vec ( "0.5" ), Mg->mean(), 0.1 ); 
     95    // marginal mean 
     96    CHECK_CLOSE ( vec ( "0.5" ), Mg->mean(), 0.1 ); 
    9797} 
    9898 
    9999 
    100100static void check_mean ( emix &distrib_obj, int nsamples, const vec &mean, double tolerance ) { 
    101         int tc = 0; 
    102         Array<vec> actual ( CurrentContext::max_trial_count ); 
    103         do { 
    104                 mat smp = distrib_obj.sample_mat ( nsamples ); 
    105                 vec emu = sum ( smp, 2 ) / nsamples; 
    106                 actual ( tc ) = emu; 
    107                 ++tc; 
    108         } while ( ( tc < CurrentContext::max_trial_count ) && 
    109                   !UnitTest::AreClose ( mean, actual ( tc - 1 ), tolerance ) ); 
    110         if ( ( tc == CurrentContext::max_trial_count ) && 
    111                 ( !UnitTest::AreClose ( mean, actual ( CurrentContext::max_trial_count - 1 ), tolerance ) ) ) { 
    112                 UnitTest::MemoryOutStream stream; 
    113                 UnitTest::TestDetails details ( *UnitTest::CurrentTest::Details(), __LINE__ ); 
    114                 stream << "Expected " << mean << " +/- " << tolerance << " but was " << actual; 
     101    int tc = 0; 
     102    Array<vec> actual ( CurrentContext::max_trial_count ); 
     103    do { 
     104        mat smp = distrib_obj.sample_mat ( nsamples ); 
     105        vec emu = sum ( smp, 2 ) / nsamples; 
     106        actual ( tc ) = emu; 
     107        ++tc; 
     108    } while ( ( tc < CurrentContext::max_trial_count ) && 
     109              !UnitTest::AreClose ( mean, actual ( tc - 1 ), tolerance ) ); 
     110    if ( ( tc == CurrentContext::max_trial_count ) && 
     111            ( !UnitTest::AreClose ( mean, actual ( CurrentContext::max_trial_count - 1 ), tolerance ) ) ) { 
     112        UnitTest::MemoryOutStream stream; 
     113        UnitTest::TestDetails details ( *UnitTest::CurrentTest::Details(), __LINE__ ); 
     114        stream << "Expected " << mean << " +/- " << tolerance << " but was " << actual; 
    115115 
    116                 UnitTest::CurrentTest::Results()->OnTestFailure ( details, stream.GetText() ); 
    117         } 
     116        UnitTest::CurrentTest::Results()->OnTestFailure ( details, stream.GetText() ); 
     117    } 
    118118} 
    119119 
    120120static void check_covariance ( emix &distrib_obj, int nsamples, const mat &R, double tolerance ) { 
    121         int tc = 0; 
    122         Array<mat> actual ( CurrentContext::max_trial_count ); 
    123         do { 
    124                 mat smp = distrib_obj.sample_mat ( nsamples ); 
    125                 vec emu = sum ( smp, 2 ) / nsamples; 
    126                 mat er = ( smp * smp.T() ) / nsamples - outer_product ( emu, emu ); 
    127                 actual ( tc ) = er; 
    128                 ++tc; 
    129         } while ( ( tc < CurrentContext::max_trial_count ) && 
    130                   !UnitTest::AreClose ( R, actual ( tc - 1 ), tolerance ) ); 
    131         if ( ( tc == CurrentContext::max_trial_count ) && 
    132                 ( !UnitTest::AreClose ( R, actual ( CurrentContext::max_trial_count - 1 ), tolerance ) ) ) { 
    133                 UnitTest::MemoryOutStream stream; 
    134                 UnitTest::TestDetails details ( *UnitTest::CurrentTest::Details(), __LINE__ ); 
    135                 stream << "Expected " << R << " +/- " << tolerance << " but was " << actual; 
     121    int tc = 0; 
     122    Array<mat> actual ( CurrentContext::max_trial_count ); 
     123    do { 
     124        mat smp = distrib_obj.sample_mat ( nsamples ); 
     125        vec emu = sum ( smp, 2 ) / nsamples; 
     126        mat er = ( smp * smp.T() ) / nsamples - outer_product ( emu, emu ); 
     127        actual ( tc ) = er; 
     128        ++tc; 
     129    } while ( ( tc < CurrentContext::max_trial_count ) && 
     130              !UnitTest::AreClose ( R, actual ( tc - 1 ), tolerance ) ); 
     131    if ( ( tc == CurrentContext::max_trial_count ) && 
     132            ( !UnitTest::AreClose ( R, actual ( CurrentContext::max_trial_count - 1 ), tolerance ) ) ) { 
     133        UnitTest::MemoryOutStream stream; 
     134        UnitTest::TestDetails details ( *UnitTest::CurrentTest::Details(), __LINE__ ); 
     135        stream << "Expected " << R << " +/- " << tolerance << " but was " << actual; 
    136136 
    137                 UnitTest::CurrentTest::Results()->OnTestFailure ( details, stream.GetText() ); 
    138         } 
     137        UnitTest::CurrentTest::Results()->OnTestFailure ( details, stream.GetText() ); 
     138    } 
    139139} 
  • library/tests/testsuite/epdf_test.cpp

    r1033 r1064  
    99 
    1010TEST ( egamma_test ) { 
    11         epdf_harness::test_config ( "egamma.cfg" ); 
     11    epdf_harness::test_config ( "egamma.cfg" ); 
    1212} 
    1313 
    1414TEST ( enorm_test ) { 
    15         epdf_harness::test_config ( "enorm.cfg" );       
     15    epdf_harness::test_config ( "enorm.cfg" ); 
    1616} 
    1717 
    1818TEST ( estudent_test ) { 
    19         epdf_harness::test_config ( "estudent.cfg" ); 
     19    epdf_harness::test_config ( "estudent.cfg" ); 
    2020} 
    2121 
    2222// not using epdf_harness because eprod isn't configurable (yet?) 
    2323TEST ( eprod_test ) { 
    24          
    25         RV a ( "{eprod_a }", "1" ); 
    26         RV b ( "{eprod_b }", "2" ); 
    27          
    28         egamma_ptr g0; 
    29         g0->set_parameters ( vec ( "2" ), vec ( "2" ) ); 
    30         g0->validate(); 
    31         g0->set_rv ( a ); 
    32          
    33         egamma_ptr g1; 
    34         g1->set_parameters ( vec ( "100000 10000" ), vec ( "10000 1000" ) ); 
    35         g1->validate(); 
    36         g1->set_rv ( b ); 
    37          
    38         Array<shared_ptr<epdf> > coms ( 2 ); 
    39         coms ( 0 ) = g0; 
    40         coms ( 1 ) = g1; 
    41          
    42         eprod p; 
    43         // set_parameters doesn't say so, but it actually requires 
    44         // pointers in the array to outlast the eprod instance... 
    45         p.set_parameters ( coms ); 
    46         p.validate(); 
    47          
    48         CHECK_EQUAL ( vec ( "1 10 10" ), p.mean() ); 
    49         CHECK_EQUAL ( vec ( "0 0 0" ), p.variance() ); 
     24 
     25    RV a ( "{eprod_a }", "1" ); 
     26    RV b ( "{eprod_b }", "2" ); 
     27 
     28    egamma_ptr g0; 
     29    g0->set_parameters ( vec ( "2" ), vec ( "2" ) ); 
     30    g0->validate(); 
     31    g0->set_rv ( a ); 
     32 
     33    egamma_ptr g1; 
     34    g1->set_parameters ( vec ( "100000 10000" ), vec ( "10000 1000" ) ); 
     35    g1->validate(); 
     36    g1->set_rv ( b ); 
     37 
     38    Array<shared_ptr<epdf> > coms ( 2 ); 
     39    coms ( 0 ) = g0; 
     40    coms ( 1 ) = g1; 
     41 
     42    eprod p; 
     43    // set_parameters doesn't say so, but it actually requires 
     44    // pointers in the array to outlast the eprod instance... 
     45    p.set_parameters ( coms ); 
     46    p.validate(); 
     47 
     48    CHECK_EQUAL ( vec ( "1 10 10" ), p.mean() ); 
     49    CHECK_EQUAL ( vec ( "0 0 0" ), p.variance() ); 
    5050} 
    5151 
    5252TEST ( ewishart_test ) { 
    53         mat wM = "1.1 0.9; 0.9 1.0"; 
    54         eWishartCh eW; 
    55         eW.set_parameters ( wM / 100, 100 ); 
    56         eW.validate(); 
    57         mat mea = zeros ( 2, 2 ); 
    58         mat Ch; 
    59         for ( int i = 0; i < 100; i++ ) { 
    60                 Ch = eW.sample_mat(); 
    61                 mea += Ch.T() * Ch; 
    62         } 
    63          
    64         mat actual = mea / 100; 
    65         CHECK_CLOSE ( wM, actual, 0.1 ); 
     53    mat wM = "1.1 0.9; 0.9 1.0"; 
     54    eWishartCh eW; 
     55    eW.set_parameters ( wM / 100, 100 ); 
     56    eW.validate(); 
     57    mat mea = zeros ( 2, 2 ); 
     58    mat Ch; 
     59    for ( int i = 0; i < 100; i++ ) { 
     60        Ch = eW.sample_mat(); 
     61        mea += Ch.T() * Ch; 
     62    } 
     63 
     64    mat actual = mea / 100; 
     65    CHECK_CLOSE ( wM, actual, 0.1 ); 
    6666} 
    6767 
    6868TEST ( rwiwishart_test ) { 
    69         mat wM = "1.0 0.9; 0.9 1.0"; 
    70         rwiWishartCh rwW; 
    71         rwW.set_parameters ( 2, 0.1, "1 1", 0.9 ); 
    72         rwW.validate(); 
    73         mat mea = zeros ( 2, 2 ); 
    74         mat wMch = chol ( wM ); 
    75         mat Ch ( 2, 2 ); 
    76          
    77         for ( int i = 0; i < 100; i++ ) { 
    78                 vec tmp = rwW.samplecond ( vec ( wMch._data(), 4 ) ); 
    79                 copy_vector ( 4, tmp._data(), Ch._data() ); 
    80                 mea += Ch.T() * Ch; 
    81                  
    82         } 
    83          
    84         mat observed ( "0.99464 0.885458; 0.885458 1.01853" ); 
    85         mat actual = mea / 100; 
    86         CHECK_CLOSE ( observed, actual, 0.1 ); 
     69    mat wM = "1.0 0.9; 0.9 1.0"; 
     70    rwiWishartCh rwW; 
     71    rwW.set_parameters ( 2, 0.1, "1 1", 0.9 ); 
     72    rwW.validate(); 
     73    mat mea = zeros ( 2, 2 ); 
     74    mat wMch = chol ( wM ); 
     75    mat Ch ( 2, 2 ); 
     76 
     77    for ( int i = 0; i < 100; i++ ) { 
     78        vec tmp = rwW.samplecond ( vec ( wMch._data(), 4 ) ); 
     79        copy_vector ( 4, tmp._data(), Ch._data() ); 
     80        mea += Ch.T() * Ch; 
     81 
     82    } 
     83 
     84    mat observed ( "0.99464 0.885458; 0.885458 1.01853" ); 
     85    mat actual = mea / 100; 
     86    CHECK_CLOSE ( observed, actual, 0.1 ); 
    8787} 
    8888 
    8989TEST ( dirich_test ) { 
    90         epdf_harness::test_config ( "edirich.cfg" ); 
     90    epdf_harness::test_config ( "edirich.cfg" ); 
    9191} 
    9292TEST ( ebeta_test ) { 
    93         epdf_harness::test_config ( "ebeta.cfg" ); 
     93    epdf_harness::test_config ( "ebeta.cfg" ); 
    9494} 
  • library/tests/testsuite/logger_test.cpp

    r916 r1064  
    1515 
    1616int get_file_size ( const char *fname ) { 
    17         struct stat st; 
    18         if ( stat ( fname, &st ) ) { 
    19                 std::string msg = "can't stat "; 
    20                 msg += fname; 
    21                 throw std::runtime_error ( msg ); 
    22         } 
     17    struct stat st; 
     18    if ( stat ( fname, &st ) ) { 
     19        std::string msg = "can't stat "; 
     20        msg += fname; 
     21        throw std::runtime_error ( msg ); 
     22    } 
    2323 
    24         int sz = static_cast<int> ( st.st_size ); 
    25         if ( sz != st.st_size ) { 
    26                 std::string msg = fname; 
    27                 msg += " too big"; 
    28                 throw std::runtime_error ( msg ); 
    29         } 
     24    int sz = static_cast<int> ( st.st_size ); 
     25    if ( sz != st.st_size ) { 
     26        std::string msg = fname; 
     27        msg += " too big"; 
     28        throw std::runtime_error ( msg ); 
     29    } 
    3030 
    31         return sz; 
     31    return sz; 
    3232} 
    3333 
    3434class log_tester : public root 
    3535{ 
    36         LOG_LEVEL(log_tester,logr,logth,logpol); 
     36    LOG_LEVEL(log_tester,logr,logth,logpol); 
    3737public: 
    38         RV th, r; 
    39         int pol, i; 
     38    RV th, r; 
     39    int pol, i; 
    4040 
    41         log_tester() { 
    42                 th = RV ( "{alog blog }" ); 
    43                 r = RV ( "{r }", "2" ); 
    44                 pol = 11; 
     41    log_tester() { 
     42        th = RV ( "{alog blog }" ); 
     43        r = RV ( "{r }", "2" ); 
     44        pol = 11; 
    4545 
    46                 log_level[logr] = true; 
    47                 log_level[logth] = true; 
    48                 log_level[logpol] = true; 
    49         } 
     46        log_level[logr] = true; 
     47        log_level[logth] = true; 
     48        log_level[logpol] = true; 
     49    } 
    5050 
    51         void log_register( logger &L, const string prefix ) { 
    52                 root::log_register( L, prefix ); 
    53                 L.add_vector( log_level, logr, r, prefix ); 
    54                 L.add_vector( log_level, logth, th, prefix ); 
    55                 L.add_setting( log_level, logpol, prefix, 0 ); 
    56                 L.add_setting( log_level, logpol, prefix, 1 ); 
    57         } 
     51    void log_register( logger &L, const string prefix ) { 
     52        root::log_register( L, prefix ); 
     53        L.add_vector( log_level, logr, r, prefix ); 
     54        L.add_vector( log_level, logth, th, prefix ); 
     55        L.add_setting( log_level, logpol, prefix, 0 ); 
     56        L.add_setting( log_level, logpol, prefix, 1 ); 
     57    } 
    5858 
    59         void log_write() const { 
    60                 root::log_write(); 
    61                 log_level.store( logr, vec_2 ( ( double ) i, ( double ) ( i + 1 ) ) ); 
    62                 log_level.store( logth, vec_2 ( ( double ) ( 100 - i ), ( double ) ( i - 50 ) ) ); 
    63                 log_level.store( logpol, pol, 0 ); 
    64                 log_level.store( logpol, pol^2, 1 ); 
    65         } 
     59    void log_write() const { 
     60        root::log_write(); 
     61        log_level.store( logr, vec_2 ( ( double ) i, ( double ) ( i + 1 ) ) ); 
     62        log_level.store( logth, vec_2 ( ( double ) ( 100 - i ), ( double ) ( i - 50 ) ) ); 
     63        log_level.store( logpol, pol, 0 ); 
     64        log_level.store( logpol, pol^2, 1 ); 
     65    } 
    6666 
    6767}; 
    6868 
    6969TEST ( memlog_test ) { 
    70         string ls ( "memlog_test" ); 
    71         remove_all ( ls.c_str() ); 
     70    string ls ( "memlog_test" ); 
     71    remove_all ( ls.c_str() ); 
    7272 
    73         memlog logger ( 100, ls ); 
     73    memlog logger ( 100, ls ); 
    7474 
    7575 
    76         log_tester tester; 
    77         tester.log_register( logger, "memlog" ); 
    78          
    79         logger.init(); 
     76    log_tester tester; 
     77    tester.log_register( logger, "memlog" ); 
    8078 
    81         for ( tester.i = 0; tester.i < 10; tester.i++ ) { 
    82                 tester.log_write(); 
    83                 logger.step(); 
    84         } 
     79    logger.init(); 
    8580 
    86         logger.finalize(); 
     81    for ( tester.i = 0; tester.i < 10; tester.i++ ) { 
     82        tester.log_write(); 
     83        logger.step(); 
     84    } 
    8785 
    88         CHECK_EQUAL ( get_file_size ( "logger_test.matrix" ), get_file_size ( ( ls + ".it" ).c_str() ) ); 
    89         CHECK_EQUAL ( get_file_size ( ( ls + ".cfg.check" ).c_str() ), get_file_size ( ( ls + ".cfg" ).c_str() ) ); 
     86    logger.finalize(); 
     87 
     88    CHECK_EQUAL ( get_file_size ( "logger_test.matrix" ), get_file_size ( ( ls + ".it" ).c_str() ) ); 
     89    CHECK_EQUAL ( get_file_size ( ( ls + ".cfg.check" ).c_str() ), get_file_size ( ( ls + ".cfg" ).c_str() ) ); 
    9090} 
    9191 
     
    9393 
    9494 
    95         string ls ( "exp" ); 
    96         remove_all ( ls.c_str() ); 
    97         makedir ( ls, false ); 
    98         remove_all ( "dirfilelog_files" ); 
     95    string ls ( "exp" ); 
     96    remove_all ( ls.c_str() ); 
     97    makedir ( ls, false ); 
     98    remove_all ( "dirfilelog_files" ); 
    9999 
    100         dirfilelog logger ( "dirfilelog_files", 10 ); 
     100    dirfilelog logger ( "dirfilelog_files", 10 ); 
    101101 
    102         log_tester tester; 
    103         tester.log_register( logger, "dirfilelog" );     
     102    log_tester tester; 
     103    tester.log_register( logger, "dirfilelog" ); 
    104104 
    105         logger.init(); 
     105    logger.init(); 
    106106 
    107         for ( tester.i = 0; tester.i < 150; tester.i++ ) { 
    108                 tester.log_write(); 
    109                 logger.step(); 
    110         } 
     107    for ( tester.i = 0; tester.i < 150; tester.i++ ) { 
     108        tester.log_write(); 
     109        logger.step(); 
     110    } 
    111111 
    112         logger.finalize(); 
     112    logger.finalize(); 
    113113 
    114         std::string expected ( load_test_file ( "logger_test_dirfile_format.matrix" ) ); 
    115         std::string actual ( load_test_file ( "dirfilelog_files/format" ) ); 
    116         CHECK_EQUAL ( expected, actual ); 
     114    std::string expected ( load_test_file ( "logger_test_dirfile_format.matrix" ) ); 
     115    std::string actual ( load_test_file ( "dirfilelog_files/format" ) ); 
     116    CHECK_EQUAL ( expected, actual ); 
    117117} 
  • library/tests/testsuite/merger_test.cpp

    r722 r1064  
    99 
    1010TEST ( merger_base_test ) { 
    11         RV x ( "{xmerger }", "1" ); 
     11    RV x ( "{xmerger }", "1" ); 
    1212 
    13         RV z ( x ); 
     13    RV z ( x ); 
    1414 
    15         enorm_fsqmat_ptr f1; 
    16         f1->set_rv ( x ); 
    17         enorm_fsqmat_ptr f2; 
    18         f2->set_rv ( x ); 
     15    enorm_fsqmat_ptr f1; 
     16    f1->set_rv ( x ); 
     17    enorm_fsqmat_ptr f2; 
     18    f2->set_rv ( x ); 
    1919 
    20         f1->set_parameters ( "-5", mat ( "2" ) ); 
    21         f2->set_parameters ( "5", mat ( "10" ) ); 
     20    f1->set_parameters ( "-5", mat ( "2" ) ); 
     21    f2->set_parameters ( "5", mat ( "10" ) ); 
    2222 
    23         pdf_array A ( 2 ); 
    24         A ( 0 ) = f1; 
    25         A ( 1 ) = f2; 
     23    pdf_array A ( 2 ); 
     24    A ( 0 ) = f1; 
     25    A ( 1 ) = f2; 
    2626 
    27         int Npoints = 100; 
    28         mat x_grid ( 1, Npoints ); 
    29         x_grid.set_row ( 0, linspace ( -10.0, 10.0 ) ); 
     27    int Npoints = 100; 
     28    mat x_grid ( 1, Npoints ); 
     29    x_grid.set_row ( 0, linspace ( -10.0, 10.0 ) ); 
    3030 
    31         vec l_f1 = f1->evallog_mat ( x_grid ); 
    32         vec l_f2 = f2->evallog_mat ( x_grid ); 
    33         mat lW ( 2, Npoints ); 
    34         lW.set_row ( 0, l_f1 ); 
    35         lW.set_row ( 1, l_f2 ); 
     31    vec l_f1 = f1->evallog_mat ( x_grid ); 
     32    vec l_f2 = f2->evallog_mat ( x_grid ); 
     33    mat lW ( 2, Npoints ); 
     34    lW.set_row ( 0, l_f1 ); 
     35    lW.set_row ( 1, l_f2 ); 
    3636 
    37         merger_base M ( A ); 
    38         enorm<fsqmat> g0; 
    39         g0.set_rv ( x ); 
    40         g0.set_parameters ( vec ( "0.0" ), mat ( "100.0" ) ); 
     37    merger_base M ( A ); 
     38    enorm<fsqmat> g0; 
     39    g0.set_rv ( x ); 
     40    g0.set_parameters ( vec ( "0.0" ), mat ( "100.0" ) ); 
    4141 
    42         M.set_method ( LOGNORMAL, 1.2 ); 
    43         M.set_support ( g0, 200 ); 
    44         M.merge (); 
     42    M.set_method ( LOGNORMAL, 1.2 ); 
     43    M.set_support ( g0, 200 ); 
     44    M.merge (); 
    4545 
    46         vec m2 = M.merge_points ( lW ); 
     46    vec m2 = M.merge_points ( lW ); 
    4747 
    48         vec exp_f1 ( "-7.51551 -7.02066 " 
    49                      "-6.54622 -6.09219 " 
    50                      "-5.65856 -5.24534 " 
    51                      "-4.85252 -4.48011 -4.1281 " 
    52                      "-3.7965 -3.48531 -3.19452 " 
    53                      "-2.92414 -2.67417 -2.4446 -2.23544 -2.04668 " 
    54                      "-1.87833 -1.73039 -1.60285 -1.49572 -1.40899 -1.34267 -1.29676 -1.27125 -1.26615 -1.28145 -1.31717 -1.37328 -1.4498 -1.54673 -1.66407 -1.80181 -1.95996 " 
    55                      "-2.13851 -2.33747 -2.55683 -2.79661 " 
    56                      "-3.05678 -3.33737 -3.63836 -3.95975 " 
    57                      "-4.30155 -4.66376 " 
    58                      "-5.04638 -5.4494 -5.87282 " 
    59                      "-6.31665 -6.78089 " 
    60                      "-7.26554 -7.77059 " 
    61                      "-8.29604 -8.84191 " 
    62                      "-9.40818 -9.99485 " 
    63                      "-10.6019 " 
    64                      "-11.2294 -11.8773 " 
    65                      "-12.5456 " 
    66                      "-13.2343 -13.9434 " 
    67                      "-14.6729 " 
    68                      "-15.4229 " 
    69                      "-16.1932 -16.9839 " 
    70                      "-17.7951 " 
    71                      "-18.6266 " 
    72                      "-19.4786 " 
    73                      "-20.3509 " 
    74                      "-21.2437 " 
    75                      "-22.1569 " 
    76                      "-23.0905 " 
    77                      "-24.0444 " 
    78                      "-25.0188 " 
    79                      "-26.0136 " 
    80                      "-27.0288 " 
    81                      "-28.0644 " 
    82                      "-29.1205 " 
    83                      "-30.1969 " 
    84                      "-31.2937 " 
    85                      "-32.4109 " 
    86                      "-33.5486 " 
    87                      "-34.7066 " 
    88                      "-35.8851 " 
    89                      "-37.0839 " 
    90                      "-38.3032 " 
    91                      "-39.5429 " 
    92                      "-40.8029 " 
    93                      "-42.0834 " 
    94                      "-43.3843 " 
    95                      "-44.7056 " 
    96                      "-46.0473 " 
    97                      "-47.4094 " 
    98                      "-48.7919 " 
    99                      "-50.1948 " 
    100                      "-51.6182 " 
    101                      "-53.0619 " 
    102                      "-54.526 " 
    103                      "-56.0106 " 
    104                      "-57.5155" ); 
    105         CHECK_CLOSE ( exp_f1, l_f1, epsilon ); 
     48    vec exp_f1 ( "-7.51551 -7.02066 " 
     49                 "-6.54622 -6.09219 " 
     50                 "-5.65856 -5.24534 " 
     51                 "-4.85252 -4.48011 -4.1281 " 
     52                 "-3.7965 -3.48531 -3.19452 " 
     53                 "-2.92414 -2.67417 -2.4446 -2.23544 -2.04668 " 
     54                 "-1.87833 -1.73039 -1.60285 -1.49572 -1.40899 -1.34267 -1.29676 -1.27125 -1.26615 -1.28145 -1.31717 -1.37328 -1.4498 -1.54673 -1.66407 -1.80181 -1.95996 " 
     55                 "-2.13851 -2.33747 -2.55683 -2.79661 " 
     56                 "-3.05678 -3.33737 -3.63836 -3.95975 " 
     57                 "-4.30155 -4.66376 " 
     58                 "-5.04638 -5.4494 -5.87282 " 
     59                 "-6.31665 -6.78089 " 
     60                 "-7.26554 -7.77059 " 
     61                 "-8.29604 -8.84191 " 
     62                 "-9.40818 -9.99485 " 
     63                 "-10.6019 " 
     64                 "-11.2294 -11.8773 " 
     65                 "-12.5456 " 
     66                 "-13.2343 -13.9434 " 
     67                 "-14.6729 " 
     68                 "-15.4229 " 
     69                 "-16.1932 -16.9839 " 
     70                 "-17.7951 " 
     71                 "-18.6266 " 
     72                 "-19.4786 " 
     73                 "-20.3509 " 
     74                 "-21.2437 " 
     75                 "-22.1569 " 
     76                 "-23.0905 " 
     77                 "-24.0444 " 
     78                 "-25.0188 " 
     79                 "-26.0136 " 
     80                 "-27.0288 " 
     81                 "-28.0644 " 
     82                 "-29.1205 " 
     83                 "-30.1969 " 
     84                 "-31.2937 " 
     85                 "-32.4109 " 
     86                 "-33.5486 " 
     87                 "-34.7066 " 
     88                 "-35.8851 " 
     89                 "-37.0839 " 
     90                 "-38.3032 " 
     91                 "-39.5429 " 
     92                 "-40.8029 " 
     93                 "-42.0834 " 
     94                 "-43.3843 " 
     95                 "-44.7056 " 
     96                 "-46.0473 " 
     97                 "-47.4094 " 
     98                 "-48.7919 " 
     99                 "-50.1948 " 
     100                 "-51.6182 " 
     101                 "-53.0619 " 
     102                 "-54.526 " 
     103                 "-56.0106 " 
     104                 "-57.5155" ); 
     105    CHECK_CLOSE ( exp_f1, l_f1, epsilon ); 
    106106 
    107         vec exp_f2 ( "-13.3202 -13.0192 " 
    108                      "-12.7223 -12.4295 -12.1408 " 
    109                      "-11.8561 -11.5755 -11.299 -11.0266 " 
    110                      "-10.7582 -10.494 -10.2338 " 
    111                      "-9.97772 -9.7257 -9.47777 -9.23391 " 
    112                      "-8.99414 -8.75845 -8.52684 -8.29931 -8.07587 " 
    113                      "-7.8565 -7.64122 -7.43002 -7.22289 -7.01985 " 
    114                      "-6.82089 -6.62602 -6.43522 -6.2485 -6.06587 " 
    115                      "-5.88732 -5.71284 -5.54245 -5.37614 -5.21392 -5.05577 " 
    116                      "-4.9017 -4.75172 -4.60581 -4.46399 -4.32625 -4.19259 -4.06301 " 
    117                      "-3.93752 -3.8161 -3.69876 -3.58551 -3.47634 -3.37125 -3.27024 -3.17331 -3.08046 " 
    118                      "-2.99169 -2.90701 -2.8264 -2.74988 -2.67744 -2.60908 -2.5448 -2.4846 -2.42849 -2.37645 -2.3285 -2.28462 -2.24483 -2.20912 -2.17749 -2.14994 -2.12648 -2.10709 -2.09179 -2.08056 -2.07342 -2.07036 -2.07138 -2.07648 -2.08566 -2.09893 -2.11627 -2.1377 -2.16321 -2.1928 -2.22647 -2.26422 -2.30605 -2.35196 -2.40196 -2.45603 -2.51419 -2.57643 -2.64275 -2.71315 -2.78763 -2.8662 -2.94884 " 
    119                      "-3.03557 -3.12637 -3.22126 -3.32023" ); 
    120         CHECK_CLOSE ( exp_f2, l_f2, epsilon ); 
     107    vec exp_f2 ( "-13.3202 -13.0192 " 
     108                 "-12.7223 -12.4295 -12.1408 " 
     109                 "-11.8561 -11.5755 -11.299 -11.0266 " 
     110                 "-10.7582 -10.494 -10.2338 " 
     111                 "-9.97772 -9.7257 -9.47777 -9.23391 " 
     112                 "-8.99414 -8.75845 -8.52684 -8.29931 -8.07587 " 
     113                 "-7.8565 -7.64122 -7.43002 -7.22289 -7.01985 " 
     114                 "-6.82089 -6.62602 -6.43522 -6.2485 -6.06587 " 
     115                 "-5.88732 -5.71284 -5.54245 -5.37614 -5.21392 -5.05577 " 
     116                 "-4.9017 -4.75172 -4.60581 -4.46399 -4.32625 -4.19259 -4.06301 " 
     117                 "-3.93752 -3.8161 -3.69876 -3.58551 -3.47634 -3.37125 -3.27024 -3.17331 -3.08046 " 
     118                 "-2.99169 -2.90701 -2.8264 -2.74988 -2.67744 -2.60908 -2.5448 -2.4846 -2.42849 -2.37645 -2.3285 -2.28462 -2.24483 -2.20912 -2.17749 -2.14994 -2.12648 -2.10709 -2.09179 -2.08056 -2.07342 -2.07036 -2.07138 -2.07648 -2.08566 -2.09893 -2.11627 -2.1377 -2.16321 -2.1928 -2.22647 -2.26422 -2.30605 -2.35196 -2.40196 -2.45603 -2.51419 -2.57643 -2.64275 -2.71315 -2.78763 -2.8662 -2.94884 " 
     119                 "-3.03557 -3.12637 -3.22126 -3.32023" ); 
     120    CHECK_CLOSE ( exp_f2, l_f2, epsilon ); 
    121121 
    122         vec exp_m2 ( "-7.95304 -7.47281 -7.01175 " 
    123                      "-6.56987 -6.14716 " 
    124                      "-5.74362 -5.35927 " 
    125                      "-4.99408 -4.64808 -4.32125 -4.01359 " 
    126                      "-3.72511 -3.45581 -3.20568 " 
    127                      "-2.97473 -2.76295 -2.57035 -2.39692 -2.24267 -2.1076 " 
    128                      "-1.9917 -1.89498 -1.81743 -1.75905 -1.71986 -1.69984 -1.69899 -1.71732 -1.75483 -1.81151 -1.88736 -1.9824 " 
    129                      "-2.0966 -2.22999 -2.38255 -2.55428 -2.74519 -2.95528 " 
    130                      "-3.18454 -3.43298 -3.70059 -3.98738 " 
    131                      "-4.2008 -4.10829 -4.0211 " 
    132                      "-3.93921 -3.86263 -3.79137 -3.72542 -3.66478 -3.60945 -3.55944 -3.51473 -3.47534 -3.44126 -3.41249 -3.38903 -3.37088 -3.35805 -3.35053 -3.34831 -3.35141 -3.35983 -3.37355 -3.39259 -3.41693 -3.44659 -3.48156 -3.52185 -3.56744 -3.61835 -3.67457 -3.73609 -3.80294 -3.87509 -3.95255 " 
    133                      "-4.03533 -4.12342 -4.21682 -4.31553 -4.41955 -4.52889 -4.64353 -4.76349 -4.88876 " 
    134                      "-5.01934 -5.15524 -5.29644 -5.44296 -5.59479 -5.75193 -5.91438 " 
    135                      "-6.08214 -6.25522 -6.4336 -6.6173 -6.80631 " 
    136                      "-7.00064 -7.20027 -7.40522" ); 
    137         CHECK_CLOSE ( exp_m2, m2, epsilon ); 
     122    vec exp_m2 ( "-7.95304 -7.47281 -7.01175 " 
     123                 "-6.56987 -6.14716 " 
     124                 "-5.74362 -5.35927 " 
     125                 "-4.99408 -4.64808 -4.32125 -4.01359 " 
     126                 "-3.72511 -3.45581 -3.20568 " 
     127                 "-2.97473 -2.76295 -2.57035 -2.39692 -2.24267 -2.1076 " 
     128                 "-1.9917 -1.89498 -1.81743 -1.75905 -1.71986 -1.69984 -1.69899 -1.71732 -1.75483 -1.81151 -1.88736 -1.9824 " 
     129                 "-2.0966 -2.22999 -2.38255 -2.55428 -2.74519 -2.95528 " 
     130                 "-3.18454 -3.43298 -3.70059 -3.98738 " 
     131                 "-4.2008 -4.10829 -4.0211 " 
     132                 "-3.93921 -3.86263 -3.79137 -3.72542 -3.66478 -3.60945 -3.55944 -3.51473 -3.47534 -3.44126 -3.41249 -3.38903 -3.37088 -3.35805 -3.35053 -3.34831 -3.35141 -3.35983 -3.37355 -3.39259 -3.41693 -3.44659 -3.48156 -3.52185 -3.56744 -3.61835 -3.67457 -3.73609 -3.80294 -3.87509 -3.95255 " 
     133                 "-4.03533 -4.12342 -4.21682 -4.31553 -4.41955 -4.52889 -4.64353 -4.76349 -4.88876 " 
     134                 "-5.01934 -5.15524 -5.29644 -5.44296 -5.59479 -5.75193 -5.91438 " 
     135                 "-6.08214 -6.25522 -6.4336 -6.6173 -6.80631 " 
     136                 "-7.00064 -7.20027 -7.40522" ); 
     137    CHECK_CLOSE ( exp_m2, m2, epsilon ); 
    138138} 
    139139 
    140140TEST ( merger_base_sources_test ) { 
    141         UIFile in ( "merger.cfg" ); 
     141    UIFile in ( "merger.cfg" ); 
    142142 
    143         shared_ptr<merger_base> mb = 
    144             UI::build<merger_base> ( in, "Merger", UI::compulsory ); 
     143    shared_ptr<merger_base> mb = 
     144        UI::build<merger_base> ( in, "Merger", UI::compulsory ); 
    145145 
    146         pdf_array sources; 
    147         UI::get ( sources, in, "Sources", UI::compulsory ); 
    148         mb->set_sources ( sources ); 
     146    pdf_array sources; 
     147    UI::get ( sources, in, "Sources", UI::compulsory ); 
     148    mb->set_sources ( sources ); 
    149149 
    150         shared_ptr<rectangular_support> support = 
    151             UI::build<rectangular_support> ( in, "Support", UI::compulsory ); 
    152         mb->set_support ( *support ); 
     150    shared_ptr<rectangular_support> support = 
     151        UI::build<rectangular_support> ( in, "Support", UI::compulsory ); 
     152    mb->set_support ( *support ); 
    153153 
    154         mb->merge(); 
    155         vec m = mb->mean(); 
    156         CHECK_EQUAL ( 2, m.size() ); 
     154    mb->merge(); 
     155    vec m = mb->mean(); 
     156    CHECK_EQUAL ( 2, m.size() ); 
    157157} 
    158158 
    159159TEST ( merger_base_sources_error_test ) { 
    160         UIFile in ( "merger_error.cfg" ); 
     160    UIFile in ( "merger_error.cfg" ); 
    161161 
    162         pdf_array sources; 
    163         try { 
    164                 UI::get ( sources, in, "Sources", UI::compulsory ); 
    165                 CHECK ( false ); 
    166         } catch ( UISettingException &exc ) { 
    167                 CHECK ( exc.what() ); 
    168         } 
     162    pdf_array sources; 
     163    try { 
     164        UI::get ( sources, in, "Sources", UI::compulsory ); 
     165        CHECK ( false ); 
     166    } catch ( UISettingException &exc ) { 
     167        CHECK ( exc.what() ); 
     168    } 
    169169} 
  • library/tests/testsuite/pdf_test.cpp

    r721 r1064  
    1010 
    1111TEST ( mgamma_test ) { 
    12         pdf_harness::test_config ( "mgamma.cfg" ); 
     12    pdf_harness::test_config ( "mgamma.cfg" ); 
    1313} 
    1414 
    1515TEST ( mlnorm_test ) { 
    16         pdf_harness::test_config ( "mlnorm.cfg" ); 
     16    pdf_harness::test_config ( "mlnorm.cfg" ); 
    1717} 
    1818 
    1919TEST ( mprod_test ) { 
    20         pdf_harness::test_config ( "mprod.cfg" ); 
     20    pdf_harness::test_config ( "mprod.cfg" ); 
    2121} 
    2222 
    2323TEST ( mmix_test ) { 
    24         pdf_harness::test_config ( "mmix.cfg" ); 
     24    pdf_harness::test_config ( "mmix.cfg" ); 
    2525} 
  • library/tests/testsuite/randun_test.cpp

    r738 r1064  
    66 
    77TEST ( randun_test ) { 
    8         // matlab output obtained by 
    9         // >>clear all 
    10         // >>randun(10); 
    11         vec matlab_out = " 0.695964974209650, 0.083321541586575, 0.385149445564090, 0.206731595660901, 0.537928272754852, 0.960480190795139, 0.790566693893898, 0.054424274738144, 0.708785523990535, 0.558301708920999"; 
     8    // matlab output obtained by 
     9    // >>clear all 
     10    // >>randun(10); 
     11    vec matlab_out = " 0.695964974209650, 0.083321541586575, 0.385149445564090, 0.206731595660901, 0.537928272754852, 0.960480190795139, 0.790566693893898, 0.054424274738144, 0.708785523990535, 0.558301708920999"; 
    1212 
    13         //ASSUMING randun was not used yet! 
    14         vec x = randun ( 10 ); 
    15         CHECK_CLOSE ( matlab_out, x, 1e-6 ); 
     13    //ASSUMING randun was not used yet! 
     14    vec x = randun ( 10 ); 
     15    CHECK_CLOSE ( matlab_out, x, 1e-6 ); 
    1616} 
    1717 
  • library/tests/testsuite/rectangular_support_test.cpp

    r722 r1064  
    88 
    99TEST ( rectangular_support_test ) { 
    10         rectangular_support rs; 
    11         CHECK_EQUAL ( rs.first_vec(), vec ( 0 ) ); 
     10    rectangular_support rs; 
     11    CHECK_EQUAL ( rs.first_vec(), vec ( 0 ) ); 
    1212 
    13         Array<vec> range ( 2 ); 
    14         range ( 0 ) = vec ( "0 1" ); 
    15         range ( 1 ) = vec ( "-1 1" ); 
    16         ivec gridsize ( 2 ); 
    17         gridsize ( 0 ) = 10; 
    18         gridsize ( 1 ) = 20; 
    19         rs.set_parameters ( range, gridsize ); 
    20         CHECK_EQUAL ( 200, rs.points() ); 
     13    Array<vec> range ( 2 ); 
     14    range ( 0 ) = vec ( "0 1" ); 
     15    range ( 1 ) = vec ( "-1 1" ); 
     16    ivec gridsize ( 2 ); 
     17    gridsize ( 0 ) = 10; 
     18    gridsize ( 1 ) = 20; 
     19    rs.set_parameters ( range, gridsize ); 
     20    CHECK_EQUAL ( 200, rs.points() ); 
    2121 
    22         vec v = rs.get_vec ( ivec ( "1 2" ) ); 
    23         CHECK_CLOSE ( vec ( "0.15 -0.75" ), v, epsilon ); 
     22    vec v = rs.get_vec ( ivec ( "1 2" ) ); 
     23    CHECK_CLOSE ( vec ( "0.15 -0.75" ), v, epsilon ); 
    2424} 
    2525 
  • library/tests/testsuite/rv_test.cpp

    r1008 r1064  
    77 
    88TEST ( rv_test ) { 
    9         RV::clear_all(); 
     9    RV::clear_all(); 
    1010 
    11         RV a = RV ( "{a_in_test_rv }", "3" ); 
    12         CHECK ( a.equal ( a ) ); 
    13         CHECK_EQUAL ( 1, a.length() ); 
    14         CHECK_EQUAL ( 3, a.size ( 0 ) ); 
    15         CHECK_EQUAL ( std::string ( "a_in_test_rv" ), a.name ( 0 ) ); 
     11    RV a = RV ( "{a_in_test_rv }", "3" ); 
     12    CHECK ( a.equal ( a ) ); 
     13    CHECK_EQUAL ( 1, a.length() ); 
     14    CHECK_EQUAL ( 3, a.size ( 0 ) ); 
     15    CHECK_EQUAL ( std::string ( "a_in_test_rv" ), a.name ( 0 ) ); 
    1616 
    17         RV b = RV ( "{b_in_test_rv }", "2" ); 
    18         CHECK ( !b.equal ( a ) ); 
    19         CHECK_EQUAL ( 0, b.mint() ); 
     17    RV b = RV ( "{b_in_test_rv }", "2" ); 
     18    CHECK ( !b.equal ( a ) ); 
     19    CHECK_EQUAL ( 0, b.mint() ); 
    2020 
    21         RV c = RV ( "{c_in_test_rv }" ); 
    22         CHECK_EQUAL ( 1, c.length() ); 
    23         CHECK_EQUAL ( 1, c.size ( 0 ) ); 
     21    RV c = RV ( "{c_in_test_rv }" ); 
     22    CHECK_EQUAL ( 1, c.length() ); 
     23    CHECK_EQUAL ( 1, c.size ( 0 ) ); 
    2424 
    25         RV trv = RV ( "{e_in_test_rv f_in_test_rv }", "1 2", "3 4" ); 
    26         CHECK_EQUAL ( 2, trv.length() ); 
    27         CHECK_EQUAL ( 3, trv.mint() ); 
     25    RV trv = RV ( "{e_in_test_rv f_in_test_rv }", "1 2", "3 4" ); 
     26    CHECK_EQUAL ( 2, trv.length() ); 
     27    CHECK_EQUAL ( 3, trv.mint() ); 
    2828 
    29         // add a and b 
    30         RV ab = a; 
    31         bool added = ab.add ( b ); 
    32         CHECK ( added ); 
    33         CHECK_EQUAL ( 2, ab.length() ); 
    34         CHECK_EQUAL ( 3, ab.size ( 0 ) ); 
    35         CHECK_EQUAL ( std::string ( "a_in_test_rv" ), ab.name ( 0 ) ); 
    36         CHECK_EQUAL ( 2, ab.size ( 1 ) ); 
    37         CHECK_EQUAL ( std::string ( "b_in_test_rv" ), ab.name ( 1 ) ); 
     29    // add a and b 
     30    RV ab = a; 
     31    bool added = ab.add ( b ); 
     32    CHECK ( added ); 
     33    CHECK_EQUAL ( 2, ab.length() ); 
     34    CHECK_EQUAL ( 3, ab.size ( 0 ) ); 
     35    CHECK_EQUAL ( std::string ( "a_in_test_rv" ), ab.name ( 0 ) ); 
     36    CHECK_EQUAL ( 2, ab.size ( 1 ) ); 
     37    CHECK_EQUAL ( std::string ( "b_in_test_rv" ), ab.name ( 1 ) ); 
    3838 
    39         std::stringstream abss; 
    40         abss << ab; 
    41         CHECK_EQUAL ( std::string ( "[a_in_test_rv(3)_{0}; b_in_test_rv(2)_{0}; ]" ), abss.str() ); 
     39    std::stringstream abss; 
     40    abss << ab; 
     41    CHECK_EQUAL ( std::string ( "[a_in_test_rv(3)_{0}; b_in_test_rv(2)_{0}; ]" ), abss.str() ); 
    4242 
    43         // concat a, b and c 
    44         RV abc = concat ( ab, c ); 
    45         CHECK_EQUAL ( 3, abc.length() ); 
    46         std::stringstream abcss; 
    47         abcss << abc; 
    48         CHECK_EQUAL ( std::string ( "[a_in_test_rv(3)_{0}; b_in_test_rv(2)_{0}; c_in_test_rv(1)_{0}; ]" ), abcss.str() ); 
     43    // concat a, b and c 
     44    RV abc = concat ( ab, c ); 
     45    CHECK_EQUAL ( 3, abc.length() ); 
     46    std::stringstream abcss; 
     47    abcss << abc; 
     48    CHECK_EQUAL ( std::string ( "[a_in_test_rv(3)_{0}; b_in_test_rv(2)_{0}; c_in_test_rv(1)_{0}; ]" ), abcss.str() ); 
    4949 
    50         // structure of a, b, c 
    51         str s = abc.tostr(); 
    52         int exp_ids[] = { 1, 1, 1, 2, 2, 3 }; 
    53         int exp_sz = sizeof ( exp_ids ) / sizeof ( exp_ids[0] ); 
    54         CHECK_EQUAL ( exp_sz, s.ids.size() ); 
    55         CHECK_EQUAL ( exp_sz, s.times.size() ); 
    56         for ( int i = 0; i < exp_sz; ++i ) { 
    57                 CHECK_EQUAL ( exp_ids[i], s.ids ( i ) ); 
    58                 CHECK_EQUAL ( 0, s.times ( i ) ); 
    59         } 
     50    // structure of a, b, c 
     51    str s = abc.tostr(); 
     52    int exp_ids[] = { 1, 1, 1, 2, 2, 3 }; 
     53    int exp_sz = sizeof ( exp_ids ) / sizeof ( exp_ids[0] ); 
     54    CHECK_EQUAL ( exp_sz, s.ids.size() ); 
     55    CHECK_EQUAL ( exp_sz, s.times.size() ); 
     56    for ( int i = 0; i < exp_sz; ++i ) { 
     57        CHECK_EQUAL ( exp_ids[i], s.ids ( i ) ); 
     58        CHECK_EQUAL ( 0, s.times ( i ) ); 
     59    } 
    6060 
    61         RV slice = abc ( 1, 2 ); 
    62         CHECK_EQUAL ( 1, slice.length() ); 
    63         CHECK_EQUAL ( 3, slice.size ( 0 ) ); 
    64         CHECK_EQUAL ( std::string ( "a_in_test_rv" ), slice.name ( 0 ) ); 
     61    RV slice = abc ( 1, 2 ); 
     62    CHECK_EQUAL ( 1, slice.length() ); 
     63    CHECK_EQUAL ( 3, slice.size ( 0 ) ); 
     64    CHECK_EQUAL ( std::string ( "a_in_test_rv" ), slice.name ( 0 ) ); 
    6565 
    66         // find a in abc 
    67         ivec f = a.findself ( abc ); 
    68         CHECK_EQUAL ( 1, f.length() ); 
    69         CHECK_EQUAL ( 0, f ( 0 ) ); 
     66    // find a in abc 
     67    ivec f = a.findself ( abc ); 
     68    CHECK_EQUAL ( 1, f.length() ); 
     69    CHECK_EQUAL ( 0, f ( 0 ) ); 
    7070 
    71         // find abc in a 
    72         f = abc.findself ( a ); 
    73         int exp_indices[] = { 0, -1, -1 }; 
    74         CHECK_EQUAL ( 3, f.length() ); 
    75         for ( unsigned i = 0; 
    76                 i < sizeof ( exp_indices ) / sizeof ( exp_indices[0] ); 
    77                 ++i ) { 
    78                 CHECK_EQUAL ( exp_indices[i], f ( i ) ); 
    79         } 
     71    // find abc in a 
     72    f = abc.findself ( a ); 
     73    int exp_indices[] = { 0, -1, -1 }; 
     74    CHECK_EQUAL ( 3, f.length() ); 
     75    for ( unsigned i = 0; 
     76            i < sizeof ( exp_indices ) / sizeof ( exp_indices[0] ); 
     77            ++i ) { 
     78        CHECK_EQUAL ( exp_indices[i], f ( i ) ); 
     79    } 
    8080 
    81         // subtract b from abc 
    82         RV ac = abc.subt ( b ); 
    83         std::stringstream acss; 
    84         acss << ac; 
    85         CHECK_EQUAL ( std::string ( "[a_in_test_rv(3)_{0}; c_in_test_rv(1)_{0}; ]" ), acss.str() ); 
     81    // subtract b from abc 
     82    RV ac = abc.subt ( b ); 
     83    std::stringstream acss; 
     84    acss << ac; 
     85    CHECK_EQUAL ( std::string ( "[a_in_test_rv(3)_{0}; c_in_test_rv(1)_{0}; ]" ), acss.str() ); 
    8686 
    87         // data index of ac in abc 
    88         ivec di = ac.dataind ( abc ); 
    89         int exp_di[] = { 0, 1, 2, 5 }; 
    90         exp_sz = sizeof ( exp_di ) / sizeof ( exp_di[0] ); 
    91         CHECK_EQUAL ( exp_sz, di.size() ); 
    92         for ( int i = 0; i < exp_sz; ++i ) { 
    93                 CHECK_EQUAL ( exp_di[i], di ( i ) ); 
    94         } 
     87    // data index of ac in abc 
     88    ivec di = ac.dataind ( abc ); 
     89    int exp_di[] = { 0, 1, 2, 5 }; 
     90    exp_sz = sizeof ( exp_di ) / sizeof ( exp_di[0] ); 
     91    CHECK_EQUAL ( exp_sz, di.size() ); 
     92    for ( int i = 0; i < exp_sz; ++i ) { 
     93        CHECK_EQUAL ( exp_di[i], di ( i ) ); 
     94    } 
    9595 
    96         // subselect 
    97         RV bc = abc ( ivec ( "1 2" ) ); 
    98         std::stringstream bcss; 
    99         bcss << bc; 
    100         CHECK_EQUAL ( std::string ( "[b_in_test_rv(2)_{0}; c_in_test_rv(1)_{0}; ]" ), bcss.str() ); 
     96    // subselect 
     97    RV bc = abc ( ivec ( "1 2" ) ); 
     98    std::stringstream bcss; 
     99    bcss << bc; 
     100    CHECK_EQUAL ( std::string ( "[b_in_test_rv(2)_{0}; c_in_test_rv(1)_{0}; ]" ), bcss.str() ); 
    101101 
    102102#if 0 
    103         // actually doesn't select, just reorders the variables - 
    104         // wonder if that's correct... 
    105         bc = abc ( 1, 2 ); 
    106         bcss << bc; 
    107         CHECK_EQUAL ( std::string ( "2(2)=b_in_test_rv_{0}; 3(1)=c_in_test_rv_{0}; " ), bcss.str() ); 
     103    // actually doesn't select, just reorders the variables - 
     104    // wonder if that's correct... 
     105    bc = abc ( 1, 2 ); 
     106    bcss << bc; 
     107    CHECK_EQUAL ( std::string ( "2(2)=b_in_test_rv_{0}; 3(1)=c_in_test_rv_{0}; " ), bcss.str() ); 
    108108#endif 
    109109 
    110         // Copy indices between ba and ab 
    111         RV ba = b; 
    112         ba.add ( a ); 
     110    // Copy indices between ba and ab 
     111    RV ba = b; 
     112    ba.add ( a ); 
    113113 
    114         ivec ai; 
    115         ivec bi; 
    116         ba.dataind ( ac, ai, bi ); 
     114    ivec ai; 
     115    ivec bi; 
     116    ba.dataind ( ac, ai, bi ); 
    117117 
    118         int exp_ai[] = { 2, 3, 4 }; 
    119         exp_sz = sizeof ( exp_ai ) / sizeof ( exp_ai[0] ); 
    120         CHECK_EQUAL ( exp_sz, ai.size() ); 
    121         for ( unsigned i = 0; 
    122                 i < sizeof ( exp_ai ) / sizeof ( exp_ai[0] ); 
    123                 ++i ) { 
    124                 CHECK_EQUAL ( exp_ai[i], ai ( i ) ); 
    125         } 
     118    int exp_ai[] = { 2, 3, 4 }; 
     119    exp_sz = sizeof ( exp_ai ) / sizeof ( exp_ai[0] ); 
     120    CHECK_EQUAL ( exp_sz, ai.size() ); 
     121    for ( unsigned i = 0; 
     122            i < sizeof ( exp_ai ) / sizeof ( exp_ai[0] ); 
     123            ++i ) { 
     124        CHECK_EQUAL ( exp_ai[i], ai ( i ) ); 
     125    } 
    126126 
    127         int exp_bi[] = { 0, 1, 2 }; 
    128         exp_sz = sizeof ( exp_bi ) / sizeof ( exp_bi[0] ); 
    129         CHECK_EQUAL ( exp_sz, bi.size() ); 
    130         for ( unsigned i = 0; 
    131                 i < sizeof ( exp_bi ) / sizeof ( exp_bi[0] ); 
    132                 ++i ) { 
    133                 CHECK_EQUAL ( exp_bi[i], bi ( i ) ); 
    134         } 
     127    int exp_bi[] = { 0, 1, 2 }; 
     128    exp_sz = sizeof ( exp_bi ) / sizeof ( exp_bi[0] ); 
     129    CHECK_EQUAL ( exp_sz, bi.size() ); 
     130    for ( unsigned i = 0; 
     131            i < sizeof ( exp_bi ) / sizeof ( exp_bi[0] ); 
     132            ++i ) { 
     133        CHECK_EQUAL ( exp_bi[i], bi ( i ) ); 
     134    } 
    135135 
    136         // check uniqueness 
    137         RV join = a; 
    138         join.add ( b ); 
    139         RV tmp = a; 
    140         tmp.t_plus ( 1 ); 
    141         join.add ( tmp ); 
    142         tmp = b; 
    143         tmp.t_plus ( -1 ); 
    144         join.add ( tmp ); 
     136    // check uniqueness 
     137    RV join = a; 
     138    join.add ( b ); 
     139    RV tmp = a; 
     140    tmp.t_plus ( 1 ); 
     141    join.add ( tmp ); 
     142    tmp = b; 
     143    tmp.t_plus ( -1 ); 
     144    join.add ( tmp ); 
    145145 
    146         CHECK_EQUAL ( unique ( join._ids() ), vec_2 ( a.id ( 0 ), b.id ( 0 ) ) ); // find only ids of a and b 
    147         CHECK_EQUAL ( unique_complement ( join._ids(), vec_1 ( a.id ( 0 ) ) ), vec_1 ( b.id ( 0 ) ) ); // complemnet of a in previous is b 
     146    CHECK_EQUAL ( unique ( join._ids() ), vec_2 ( a.id ( 0 ), b.id ( 0 ) ) ); // find only ids of a and b 
     147    CHECK_EQUAL ( unique_complement ( join._ids(), vec_1 ( a.id ( 0 ) ) ), vec_1 ( b.id ( 0 ) ) ); // complemnet of a in previous is b 
    148148 
    149         //test if unique names work 
    150         RV uniq1 ( "y", 1 ); 
    151         RV uniq2 ( "y", 1 ); 
     149    //test if unique names work 
     150    RV uniq1 ( "y", 1 ); 
     151    RV uniq2 ( "y", 1 ); 
    152152 
    153         CHECK_EQUAL ( uniq1.id ( 0 ), uniq2.id ( 0 ) ); 
     153    CHECK_EQUAL ( uniq1.id ( 0 ), uniq2.id ( 0 ) ); 
    154154 
    155         // check scalarname 
    156         CHECK_EQUAL ( "a_in_test_rv_2", abc.scalarname ( 2 ) ); 
    157         CHECK_EQUAL ( "b_in_test_rv_0", abc.scalarname ( 3 ) ); 
     155    // check scalarname 
     156    CHECK_EQUAL ( "a_in_test_rv_2", abc.scalarname ( 2 ) ); 
     157    CHECK_EQUAL ( "b_in_test_rv_0", abc.scalarname ( 3 ) ); 
    158158} 
  • library/tests/testsuite/shared_ptr_test.cpp

    r722 r1064  
    66class Foo { 
    77private: 
    8         int x; 
     8    int x; 
    99 
    1010public: 
    11         Foo ( int x ) : x ( x ) { } 
     11    Foo ( int x ) : x ( x ) { } 
    1212 
    13         int get_x() const { 
    14                 return x; 
    15         } 
     13    int get_x() const { 
     14        return x; 
     15    } 
    1616 
    17         void set_x ( int nx ) { 
    18                 x = nx; 
    19         } 
     17    void set_x ( int nx ) { 
     18        x = nx; 
     19    } 
    2020}; 
    2121 
     
    2525 
    2626TEST ( shared_ptr_test ) { 
    27         TFooVector v; 
     27    TFooVector v; 
    2828 
    29         bdm::shared_ptr<Foo> zero; 
    30         CHECK_EQUAL ( 0l, zero.use_count() ); 
    31         bdm::shared_ptr<Foo> z2 ( zero ); 
    32         CHECK_EQUAL ( 0l, z2.use_count() ); 
     29    bdm::shared_ptr<Foo> zero; 
     30    CHECK_EQUAL ( 0l, zero.use_count() ); 
     31    bdm::shared_ptr<Foo> z2 ( zero ); 
     32    CHECK_EQUAL ( 0l, z2.use_count() ); 
    3333 
    34         bdm::shared_ptr<Foo> one ( new Foo ( 1 ) ); 
    35         v.push_back ( one ); 
    36         CHECK ( !one.unique() ); 
     34    bdm::shared_ptr<Foo> one ( new Foo ( 1 ) ); 
     35    v.push_back ( one ); 
     36    CHECK ( !one.unique() ); 
    3737 
    38         v.push_back ( one ); 
    39         v.push_back ( bdm::shared_ptr<Foo> ( new Foo ( 2 ) ) ); 
    40         CHECK_EQUAL ( static_cast<TFooVector::size_type> ( 3 ), v.size() ); 
     38    v.push_back ( one ); 
     39    v.push_back ( bdm::shared_ptr<Foo> ( new Foo ( 2 ) ) ); 
     40    CHECK_EQUAL ( static_cast<TFooVector::size_type> ( 3 ), v.size() ); 
    4141 
    42         CHECK ( v[0] == v[1] ); 
    43         CHECK ( v[1] != v[2] ); 
     42    CHECK ( v[0] == v[1] ); 
     43    CHECK ( v[1] != v[2] ); 
    4444 
    45         Foo c ( * ( v[0] ) ); 
    46         CHECK_EQUAL ( 1, c.get_x() ); 
     45    Foo c ( * ( v[0] ) ); 
     46    CHECK_EQUAL ( 1, c.get_x() ); 
    4747 
    48         Foo *p = v[1].get(); 
    49         CHECK_EQUAL ( 1, p->get_x() ); 
    50         p->set_x ( 12 ); 
    51         CHECK_EQUAL ( 12, one->get_x() ); 
     48    Foo *p = v[1].get(); 
     49    CHECK_EQUAL ( 1, p->get_x() ); 
     50    p->set_x ( 12 ); 
     51    CHECK_EQUAL ( 12, one->get_x() ); 
    5252 
    53         CHECK ( v[2].unique() ); 
    54         CHECK_EQUAL ( 2, v[2]->get_x() ); 
     53    CHECK ( v[2].unique() ); 
     54    CHECK_EQUAL ( 2, v[2]->get_x() ); 
    5555} 
    5656 
    5757TEST ( shared_ptr_const_test ) { 
    58         TConstFooVector v; 
     58    TConstFooVector v; 
    5959 
    60         bdm::shared_ptr<const Foo> zero; 
    61         CHECK_EQUAL ( 0l, zero.use_count() ); 
    62         bdm::shared_ptr<const Foo> z2 ( zero ); 
    63         CHECK_EQUAL ( 0l, z2.use_count() ); 
     60    bdm::shared_ptr<const Foo> zero; 
     61    CHECK_EQUAL ( 0l, zero.use_count() ); 
     62    bdm::shared_ptr<const Foo> z2 ( zero ); 
     63    CHECK_EQUAL ( 0l, z2.use_count() ); 
    6464 
    65         bdm::shared_ptr<const Foo> one ( new Foo ( 1 ) ); 
    66         v.push_back ( one ); 
    67         CHECK ( !one.unique() ); 
     65    bdm::shared_ptr<const Foo> one ( new Foo ( 1 ) ); 
     66    v.push_back ( one ); 
     67    CHECK ( !one.unique() ); 
    6868 
    69         v.push_back ( one ); 
    70         v.push_back ( bdm::shared_ptr<const Foo> ( new Foo ( 2 ) ) ); 
    71         CHECK_EQUAL ( static_cast<TConstFooVector::size_type> ( 3 ), v.size() ); 
     69    v.push_back ( one ); 
     70    v.push_back ( bdm::shared_ptr<const Foo> ( new Foo ( 2 ) ) ); 
     71    CHECK_EQUAL ( static_cast<TConstFooVector::size_type> ( 3 ), v.size() ); 
    7272 
    73         CHECK ( v[0] == v[1] ); 
    74         CHECK ( v[1] != v[2] ); 
     73    CHECK ( v[0] == v[1] ); 
     74    CHECK ( v[1] != v[2] ); 
    7575 
    76         Foo c ( * ( v[0] ) ); 
    77         CHECK_EQUAL ( 1, c.get_x() ); 
     76    Foo c ( * ( v[0] ) ); 
     77    CHECK_EQUAL ( 1, c.get_x() ); 
    7878 
    79         const Foo *p = v[1].get(); 
    80         CHECK_EQUAL ( 1, p->get_x() ); 
     79    const Foo *p = v[1].get(); 
     80    CHECK_EQUAL ( 1, p->get_x() ); 
    8181 
    82         CHECK ( v[2].unique() ); 
    83         CHECK_EQUAL ( 2, v[2]->get_x() ); 
     82    CHECK ( v[2].unique() ); 
     83    CHECK_EQUAL ( 2, v[2]->get_x() ); 
    8484 
    85         bdm::shared_ptr<Foo> non_const; 
    86         bdm::shared_ptr<const Foo> another ( non_const ); 
    87         CHECK ( !non_const.unique() ); 
     85    bdm::shared_ptr<Foo> non_const; 
     86    bdm::shared_ptr<const Foo> another ( non_const ); 
     87    CHECK ( !non_const.unique() ); 
    8888} 
    8989 
     
    9191#ifndef NDEBUG 
    9292TEST ( shared_ptr_error_test ) { 
    93         bdm::shared_ptr<Foo> empty; 
    94         try { 
    95                 Foo x ( *empty ); 
    96                 CHECK ( false ); 
    97         } catch ( std::runtime_error &exc ) { 
    98                 CHECK ( exc.what() ); 
    99         } 
     93    bdm::shared_ptr<Foo> empty; 
     94    try { 
     95        Foo x ( *empty ); 
     96        CHECK ( false ); 
     97    } catch ( std::runtime_error &exc ) { 
     98        CHECK ( exc.what() ); 
     99    } 
    100100} 
    101101#endif 
  • library/tests/testsuite/square_mat_test.cpp

    r998 r1064  
    1616template<typename TMatrix> 
    1717void test_square_matrix ( double epsilon ) { 
    18         int sz = 3; 
    19         mat A0 = randu ( sz, sz ); 
    20         mat A = A0 * A0.T(); 
     18    int sz = 3; 
     19    mat A0 = randu ( sz, sz ); 
     20    mat A = A0 * A0.T(); 
    2121 
    22         // ----------- SIZES --------- 
    23         TMatrix sq_mat ( A ); 
    24         CHECK_EQUAL ( sz, sq_mat.rows() ); 
    25         CHECK_EQUAL ( sz, sq_mat.cols() ); 
     22    // ----------- SIZES --------- 
     23    TMatrix sq_mat ( A ); 
     24    CHECK_EQUAL ( sz, sq_mat.rows() ); 
     25    CHECK_EQUAL ( sz, sq_mat.cols() ); 
    2626 
    27         // ----------- FULL MAT --------- 
    28         mat res = sq_mat.to_mat(); 
    29         CHECK_CLOSE ( A, res, epsilon ); 
     27    // ----------- FULL MAT --------- 
     28    mat res = sq_mat.to_mat(); 
     29    CHECK_CLOSE ( A, res, epsilon ); 
    3030 
    31         // ----------- OUTER PRODUCT UPDATE --------- 
    32         vec v = randu ( sz ); 
    33         double w = randu(); 
    34         TMatrix sq_mat2 = sq_mat; 
    35         sq_mat2.opupdt ( v, w ); 
     31    // ----------- OUTER PRODUCT UPDATE --------- 
     32    vec v = randu ( sz ); 
     33    double w = randu(); 
     34    TMatrix sq_mat2 = sq_mat; 
     35    sq_mat2.opupdt ( v, w ); 
    3636 
    37         res = A + w * outer_product ( v, v ); 
    38         CHECK_CLOSE ( res, sq_mat2.to_mat(), epsilon ); 
     37    res = A + w * outer_product ( v, v ); 
     38    CHECK_CLOSE ( res, sq_mat2.to_mat(), epsilon ); 
    3939 
    40         // ----------- INVERSION --------- 
    41         TMatrix invmat ( sz ); 
    42         sq_mat.inv ( invmat ); 
    43         mat invA = inv ( A ); 
    44         CHECK_CLOSE ( invA, invmat.to_mat(), epsilon ); 
     40    // ----------- INVERSION --------- 
     41    TMatrix invmat ( sz ); 
     42    sq_mat.inv ( invmat ); 
     43    mat invA = inv ( A ); 
     44    CHECK_CLOSE ( invA, invmat.to_mat(), epsilon ); 
    4545 
    46         // ----------- DETERMINANT --------- 
    47         double d = det ( A ); 
    48         CHECK_CLOSE ( log ( d ), sq_mat.logdet(), epsilon ); 
     46    // ----------- DETERMINANT --------- 
     47    double d = det ( A ); 
     48    CHECK_CLOSE ( log ( d ), sq_mat.logdet(), epsilon ); 
    4949 
    50         // ----------- QUADRATIC FORM --------- 
    51         double q = sq_mat.qform ( ones ( sz ) ); 
    52         CHECK_CLOSE ( sumsum ( A ), q, epsilon ); 
     50    // ----------- QUADRATIC FORM --------- 
     51    double q = sq_mat.qform ( ones ( sz ) ); 
     52    CHECK_CLOSE ( sumsum ( A ), q, epsilon ); 
    5353 
    54         q = sq_mat.qform ( v ); 
    55         double r = ( A * v ) * v; 
    56         CHECK_CLOSE ( r, q, epsilon ); 
     54    q = sq_mat.qform ( v ); 
     55    double r = ( A * v ) * v; 
     56    CHECK_CLOSE ( r, q, epsilon ); 
    5757 
    58         q = sq_mat.invqform ( v ); 
    59         r = ( invA * v ) * v; 
    60         CHECK_CLOSE ( r, q, epsilon ); 
     58    q = sq_mat.invqform ( v ); 
     59    r = ( invA * v ) * v; 
     60    CHECK_CLOSE ( r, q, epsilon ); 
    6161 
    62         sq_mat2 = sq_mat; 
    63         sq_mat2.clear(); 
    64         CHECK_EQUAL ( 0, sq_mat2.qform ( ones ( sz ) ) ); 
     62    sq_mat2 = sq_mat; 
     63    sq_mat2.clear(); 
     64    CHECK_EQUAL ( 0, sq_mat2.qform ( ones ( sz ) ) ); 
    6565 
    66         // ----------- + operator ---------      
    67         TMatrix twice = sq_mat; 
    68         twice += sq_mat; 
    69         res = 2 * A; 
    70         CHECK_CLOSE ( res, twice.to_mat(), epsilon ); 
     66    // ----------- + operator --------- 
     67    TMatrix twice = sq_mat; 
     68    twice += sq_mat; 
     69    res = 2 * A; 
     70    CHECK_CLOSE ( res, twice.to_mat(), epsilon ); 
    7171 
    72         // ----------- * operator ---------      
    73         twice = sq_mat; 
    74         twice *= 2; 
    75         CHECK_CLOSE ( res, twice.to_mat(), epsilon ); 
     72    // ----------- * operator --------- 
     73    twice = sq_mat; 
     74    twice *= 2; 
     75    CHECK_CLOSE ( res, twice.to_mat(), epsilon ); 
    7676 
    77         // ----------- MULTIPLICATION ---------  
    78         sq_mat2 = sq_mat; 
    79         mat B = randu ( sz, sz ); 
    80         sq_mat2.mult_sym ( B ); 
    81         res = ( B * A ) * B.T(); 
    82         CHECK_CLOSE ( res, sq_mat2.to_mat(), epsilon ); 
     77    // ----------- MULTIPLICATION --------- 
     78    sq_mat2 = sq_mat; 
     79    mat B = randu ( sz, sz ); 
     80    sq_mat2.mult_sym ( B ); 
     81    res = ( B * A ) * B.T(); 
     82    CHECK_CLOSE ( res, sq_mat2.to_mat(), epsilon ); 
    8383 
    84         mat C = randu ( sz, sz - 1 ); 
    85         TMatrix CAC ( sz - 1 ); 
    86         sq_mat.mult_sym_t ( C, CAC ); 
    87         res = ( C.T() * A ) * C; 
    88         CHECK_CLOSE ( res, CAC.to_mat(), epsilon ); 
     84    mat C = randu ( sz, sz - 1 ); 
     85    TMatrix CAC ( sz - 1 ); 
     86    sq_mat.mult_sym_t ( C, CAC ); 
     87    res = ( C.T() * A ) * C; 
     88    CHECK_CLOSE ( res, CAC.to_mat(), epsilon ); 
    8989 
    90         sq_mat2 = sq_mat; 
    91         sq_mat2.mult_sym_t ( B ); 
    92         res = ( B.T() * A ) * B; 
    93         CHECK_CLOSE ( res, sq_mat2.to_mat(), epsilon ); 
    94          
    95         // ----------- PERMUTATION ---------     
    96         mat M1 = randu (sz,sz); 
    97         mat M = M1*M1.T(); 
    98         vec perm_v_rand = randu(sz); 
    99         ivec perm_v_ids  = sort_index(perm_v_rand); 
    100          
    101         mat Mperm_c=M.get_cols(perm_v_ids); 
    102         mat Mperm=Mperm_c.get_rows(perm_v_ids); 
    103          
    104         TMatrix T(M); 
    105         TMatrix Tperm(T,perm_v_ids); 
     90    sq_mat2 = sq_mat; 
     91    sq_mat2.mult_sym_t ( B ); 
     92    res = ( B.T() * A ) * B; 
     93    CHECK_CLOSE ( res, sq_mat2.to_mat(), epsilon ); 
    10694 
    107         CHECK_CLOSE(Tperm.to_mat(), Mperm, epsilon); 
     95    // ----------- PERMUTATION --------- 
     96    mat M1 = randu (sz,sz); 
     97    mat M = M1*M1.T(); 
     98    vec perm_v_rand = randu(sz); 
     99    ivec perm_v_ids  = sort_index(perm_v_rand); 
     100 
     101    mat Mperm_c=M.get_cols(perm_v_ids); 
     102    mat Mperm=Mperm_c.get_rows(perm_v_ids); 
     103 
     104    TMatrix T(M); 
     105    TMatrix Tperm(T,perm_v_ids); 
     106 
     107    CHECK_CLOSE(Tperm.to_mat(), Mperm, epsilon); 
    108108} 
    109109 
    110110TEST ( ldmat_test ) { 
    111         test_square_matrix<ldmat> ( epsilon ); 
     111    test_square_matrix<ldmat> ( epsilon ); 
    112112} 
    113113 
    114114TEST ( fsqmat_test ) { 
    115         test_square_matrix<fsqmat> ( epsilon ); 
     115    test_square_matrix<fsqmat> ( epsilon ); 
    116116} 
    117117 
    118118TEST ( chmat_test ) { 
    119         test_square_matrix<chmat> ( epsilon ); 
     119    test_square_matrix<chmat> ( epsilon ); 
    120120} 
  • library/tests/testsuite/testsuite.cpp

    r865 r1064  
    1010 
    1111int main ( int argc, char const *argv[] ) { 
    12         if ( argc > 1 ) { 
    13                 if ( !strcmp ( argv[1], "print" ) ) 
    14                 { 
    15                         print_test_list(); 
    16                         return 0; 
    17                 } 
    18                 else 
    19                         pick_selected_tests ( argc, argv ); 
    20         } else { 
    21                 cout << endl << "TESTSUITE - a program covering all BDM unit tests." << endl << endl 
    22                      << argv[0] << " ....................................... run all unit tests" << endl 
    23                      << argv[0] << " particular_test_1 particular_test_2 ... run selected unit tests" << endl 
    24                      << argv[0] << " print ................................. print all the implemented unit tests" << endl; 
    25         } 
     12    if ( argc > 1 ) { 
     13        if ( !strcmp ( argv[1], "print" ) ) 
     14        { 
     15            print_test_list(); 
     16            return 0; 
     17        } 
     18        else 
     19            pick_selected_tests ( argc, argv ); 
     20    } else { 
     21        cout << endl << "TESTSUITE - a program covering all BDM unit tests." << endl << endl 
     22             << argv[0] << " ....................................... run all unit tests" << endl 
     23             << argv[0] << " particular_test_1 particular_test_2 ... run selected unit tests" << endl 
     24             << argv[0] << " print ................................. print all the implemented unit tests" << endl; 
     25    } 
    2626 
    27         return run_selected_tests(); 
     27    return run_selected_tests(); 
    2828} 
  • library/tests/testsuite/user_info_test.cpp

    r942 r1064  
    1212public: 
    1313 
    14         Passenger() { 
    15         } 
     14    Passenger() { 
     15    } 
    1616}; 
    1717 
    1818class Human : public Passenger { 
    1919public: 
    20         string name; 
    21  
    22         Human() { 
    23                 name = "none"; 
    24         } 
    25  
    26         virtual void from_setting ( const Setting &set ) { 
    27                 UI::get ( name, set, "name" ); 
    28         } 
    29  
    30         virtual void to_setting ( Setting &set ) const { 
    31                 Setting &name_setting = set.add ( "name", Setting::TypeString ); 
    32                 name_setting = name; 
    33         } 
    34  
    35         string to_string()  const { 
    36                 return name; 
    37         } 
     20    string name; 
     21 
     22    Human() { 
     23        name = "none"; 
     24    } 
     25 
     26    virtual void from_setting ( const Setting &set ) { 
     27        UI::get ( name, set, "name" ); 
     28    } 
     29 
     30    virtual void to_setting ( Setting &set ) const { 
     31        Setting &name_setting = set.add ( "name", Setting::TypeString ); 
     32        name_setting = name; 
     33    } 
     34 
     35    string to_string()  const { 
     36        return name; 
     37    } 
    3838}; 
    3939 
     
    4242class Robot : public Passenger { 
    4343public: 
    44         int number; 
    45         Array<string> software; 
    46  
    47         Robot() : software() { 
    48                 number = -1; 
    49         } 
    50  
    51         virtual void from_setting ( const Setting &set ) { 
    52                 UI::get ( number, set, "number" ); 
    53                 UI::get ( software, set, "software" ); 
    54         } 
    55  
    56         virtual void to_setting ( Setting &set ) const { 
    57                 Setting &number_setting = set.add ( "number", Setting::TypeInt ); 
    58                 number_setting = number; 
    59  
    60                 UI::save ( software, set, "software" ); 
    61         } 
    62  
    63         string to_string()  const { 
    64                 stringstream stream; 
    65                 stream << number; 
    66                 for ( int i = 0; i < software.length(); i++ ) 
    67                         stream << "_" + software ( i ); 
    68                 return stream.str(); 
    69         } 
     44    int number; 
     45    Array<string> software; 
     46 
     47    Robot() : software() { 
     48        number = -1; 
     49    } 
     50 
     51    virtual void from_setting ( const Setting &set ) { 
     52        UI::get ( number, set, "number" ); 
     53        UI::get ( software, set, "software" ); 
     54    } 
     55 
     56    virtual void to_setting ( Setting &set ) const { 
     57        Setting &number_setting = set.add ( "number", Setting::TypeInt ); 
     58        number_setting = number; 
     59 
     60        UI::save ( software, set, "software" ); 
     61    } 
     62 
     63    string to_string()  const { 
     64        stringstream stream; 
     65        stream << number; 
     66        for ( int i = 0; i < software.length(); i++ ) 
     67            stream << "_" + software ( i ); 
     68        return stream.str(); 
     69    } 
    7070}; 
    7171 
     
    7474class Transport : public root { 
    7575public: 
    76         int year; 
    77         string manufacturer; 
    78  
    79         Transport() : year ( 1900 ), manufacturer ( "unknown" ) { 
    80         } 
    81  
    82         Transport ( int year, string manufacturer ) : 
    83                         year ( year ), manufacturer ( manufacturer ) { 
    84         } 
    85  
    86         virtual void from_setting ( const Setting &set ) { 
    87                 UI::get ( year, set, "year" ); 
    88                 UI::get ( manufacturer, set, "manufacturer" ); 
    89         } 
    90  
    91         virtual void to_setting ( Setting &set ) const { 
    92                 Setting &year_setting = set.add ( "year", Setting::TypeInt ); 
    93                 year_setting = year; 
    94  
    95                 Setting &manufacturer_setting = set.add ( "manufacturer", Setting::TypeString ); 
    96                 manufacturer_setting = manufacturer; 
    97         } 
    98  
    99         virtual string to_string() const 
    100         { 
    101                 return "the method to_string() is not implemented"; 
    102         } 
     76    int year; 
     77    string manufacturer; 
     78 
     79    Transport() : year ( 1900 ), manufacturer ( "unknown" ) { 
     80    } 
     81 
     82    Transport ( int year, string manufacturer ) : 
     83        year ( year ), manufacturer ( manufacturer ) { 
     84    } 
     85 
     86    virtual void from_setting ( const Setting &set ) { 
     87        UI::get ( year, set, "year" ); 
     88        UI::get ( manufacturer, set, "manufacturer" ); 
     89    } 
     90 
     91    virtual void to_setting ( Setting &set ) const { 
     92        Setting &year_setting = set.add ( "year", Setting::TypeInt ); 
     93        year_setting = year; 
     94 
     95        Setting &manufacturer_setting = set.add ( "manufacturer", Setting::TypeString ); 
     96        manufacturer_setting = manufacturer; 
     97    } 
     98 
     99    virtual string to_string() const 
     100    { 
     101        return "the method to_string() is not implemented"; 
     102    } 
    103103}; 
    104104 
    105105class Car : public Transport { 
    106106public: 
    107         int kilometers; 
    108         Array<shared_ptr<Passenger> > passengers; 
    109  
    110         Car() : Transport() { 
    111                 kilometers = 0; 
    112         } 
    113  
    114  
    115         Car ( int year, string manufacturer, int kilometers ) 
    116                         : Transport ( year, manufacturer ), kilometers ( kilometers ) { 
    117         } 
    118  
    119         virtual void from_setting ( const Setting &set ) { 
    120                 Transport::from_setting ( set ); 
    121  
    122                 UI::get ( kilometers, set, "kilometers" ); 
    123                 UI::get ( passengers, set, "passengers" ); 
    124         } 
    125  
    126         virtual void to_setting ( Setting &set ) const { 
    127                 Transport::to_setting ( set ); 
    128  
    129                 Setting &kilometers_setting = set.add ( "kilometers", Setting::TypeInt ); 
    130                 kilometers_setting = kilometers; 
    131  
    132                 UI::save ( passengers, set, "passengers" ); 
    133         } 
    134  
    135         string to_string()  const { 
    136                 stringstream stream; 
    137                 stream << "A car made in " << year << " by " << manufacturer << ", having " << kilometers << " kilometers on the clock."; 
    138                 if ( passengers.length() ) { 
    139                         stream << "The names of passengers are as follows: "; 
    140                         for ( int i = 0; i < passengers.length(); i++ ) 
    141                                 stream << passengers ( i )->to_string() << " "; 
    142                 } 
    143                 return stream.str(); 
    144         } 
     107    int kilometers; 
     108    Array<shared_ptr<Passenger> > passengers; 
     109 
     110    Car() : Transport() { 
     111        kilometers = 0; 
     112    } 
     113 
     114 
     115    Car ( int year, string manufacturer, int kilometers ) 
     116        : Transport ( year, manufacturer ), kilometers ( kilometers ) { 
     117    } 
     118 
     119    virtual void from_setting ( const Setting &set ) { 
     120        Transport::from_setting ( set ); 
     121 
     122        UI::get ( kilometers, set, "kilometers" ); 
     123        UI::get ( passengers, set, "passengers" ); 
     124    } 
     125 
     126    virtual void to_setting ( Setting &set ) const { 
     127        Transport::to_setting ( set ); 
     128 
     129        Setting &kilometers_setting = set.add ( "kilometers", Setting::TypeInt ); 
     130        kilometers_setting = kilometers; 
     131 
     132        UI::save ( passengers, set, "passengers" ); 
     133    } 
     134 
     135    string to_string()  const { 
     136        stringstream stream; 
     137        stream << "A car made in " << year << " by " << manufacturer << ", having " << kilometers << " kilometers on the clock."; 
     138        if ( passengers.length() ) { 
     139            stream << "The names of passengers are as follows: "; 
     140            for ( int i = 0; i < passengers.length(); i++ ) 
     141                stream << passengers ( i )->to_string() << " "; 
     142        } 
     143        return stream.str(); 
     144    } 
    145145}; 
    146146 
     
    149149class Bike : public Transport { 
    150150public: 
    151         bool electricLights; 
    152         mat matr; 
    153  
    154         Bike() : Transport(), matr ( "2,2;3,4" ) { 
    155                 electricLights = false; 
    156         } 
    157  
    158         Bike ( int year, string manufacturer, bool electricLights ) 
    159                         : Transport ( year, manufacturer ), electricLights ( electricLights ) { 
    160         } 
    161  
    162         ~Bike() { 
    163         } 
    164  
    165         void from_setting ( const Setting &set ) { 
    166                 Transport::from_setting ( set ); 
    167  
    168                 int elights; 
    169                 if ( UI::get ( elights, set, "electricLights", UI::optional ) ) { 
    170                         electricLights = !!elights; 
    171                 } 
    172  
    173                 UI::get ( matr, set, "matr" ); 
    174         } 
    175  
    176         void to_setting ( Setting &set ) const { 
    177                 Transport::to_setting ( set ); 
    178  
    179                 Setting &electricLights_setting = set.add ( "electricLights", Setting::TypeBoolean ); 
    180                 electricLights_setting = electricLights; 
    181  
    182                 UI::save ( matr, set, "matr" ); 
    183         } 
    184  
    185         string to_string()  const { 
    186                 stringstream stream; 
    187                 stream << "a bike made in " << year << " by " << manufacturer; 
    188                 if ( electricLights ) stream << " with electric lights included"; 
    189                 return stream.str(); 
    190         } 
     151    bool electricLights; 
     152    mat matr; 
     153 
     154    Bike() : Transport(), matr ( "2,2;3,4" ) { 
     155        electricLights = false; 
     156    } 
     157 
     158    Bike ( int year, string manufacturer, bool electricLights ) 
     159        : Transport ( year, manufacturer ), electricLights ( electricLights ) { 
     160    } 
     161 
     162    ~Bike() { 
     163    } 
     164 
     165    void from_setting ( const Setting &set ) { 
     166        Transport::from_setting ( set ); 
     167 
     168        int elights; 
     169        if ( UI::get ( elights, set, "electricLights", UI::optional ) ) { 
     170            electricLights = !!elights; 
     171        } 
     172 
     173        UI::get ( matr, set, "matr" ); 
     174    } 
     175 
     176    void to_setting ( Setting &set ) const { 
     177        Transport::to_setting ( set ); 
     178 
     179        Setting &electricLights_setting = set.add ( "electricLights", Setting::TypeBoolean ); 
     180        electricLights_setting = electricLights; 
     181 
     182        UI::save ( matr, set, "matr" ); 
     183    } 
     184 
     185    string to_string()  const { 
     186        stringstream stream; 
     187        stream << "a bike made in " << year << " by " << manufacturer; 
     188        if ( electricLights ) stream << " with electric lights included"; 
     189        return stream.str(); 
     190    } 
    191191}; 
    192192 
     
    195195class Teleport : public Transport { 
    196196public: 
    197         void to_setting ( Setting &set ) const { 
    198                 set.add ( "this throws", Setting::TypeNone ); 
    199         } 
     197    void to_setting ( Setting &set ) const { 
     198        set.add ( "this throws", Setting::TypeNone ); 
     199    } 
    200200}; 
    201201 
     
    203203 
    204204TEST ( load_test ) { 
    205         UIFile in ( "user_info_valid.cfg" ); 
    206         shared_ptr<Transport> pepikovo ( UI::build<Transport> ( in, "pepikovo", UI::compulsory ) ); 
    207         CHECK_EQUAL ( string ( "A car made in 1998 by audi, having 25000 kilometers on the clock.The names of passengers are as follows: Karlos Novak -1_CygWin_Matlab_Aimsun Karlosik Novacek " ), pepikovo->to_string() ); 
    208  
    209         Transport pepikovo_static; 
    210         UI::get( pepikovo_static, in, "pepikovo", UI::compulsory ); 
    211         CHECK_EQUAL ( string ( "the method to_string() is not implemented" ), pepikovo_static.to_string() ); 
    212          
    213         shared_ptr<Transport> jardovo ( UI::build<Transport> ( in, "jardovo", UI::compulsory ) ); 
    214         CHECK_EQUAL ( string ( "A car made in 1992 by liaz, having 1555000 kilometers on the clock." ), jardovo->to_string() ); 
    215  
    216         shared_ptr<Transport> ondrejovo ( UI::build<Transport> ( in, "ondrejovo", UI::compulsory ) ); 
    217         CHECK_EQUAL ( string ( "a bike made in 1996 by author with electric lights included" ), ondrejovo->to_string() ); 
    218  
    219         shared_ptr<Transport> elisky ( UI::build<Transport> ( in, "elisky", UI::compulsory ) ); 
    220         CHECK_EQUAL ( string ( "A car made in 1992 by liaz, having 1555000 kilometers on the clock." ), elisky->to_string() ); 
    221  
    222         shared_ptr<Transport> kati ( UI::build<Transport> ( in, "kati", UI::compulsory ) ); 
    223         CHECK_EQUAL ( string ( "A car made in 1980 by vecernicek, having 250000 kilometers on the clock." ), kati->to_string() ); 
     205    UIFile in ( "user_info_valid.cfg" ); 
     206    shared_ptr<Transport> pepikovo ( UI::build<Transport> ( in, "pepikovo", UI::compulsory ) ); 
     207    CHECK_EQUAL ( string ( "A car made in 1998 by audi, having 25000 kilometers on the clock.The names of passengers are as follows: Karlos Novak -1_CygWin_Matlab_Aimsun Karlosik Novacek " ), pepikovo->to_string() ); 
     208 
     209    Transport pepikovo_static; 
     210    UI::get( pepikovo_static, in, "pepikovo", UI::compulsory ); 
     211    CHECK_EQUAL ( string ( "the method to_string() is not implemented" ), pepikovo_static.to_string() ); 
     212 
     213    shared_ptr<Transport> jardovo ( UI::build<Transport> ( in, "jardovo", UI::compulsory ) ); 
     214    CHECK_EQUAL ( string ( "A car made in 1992 by liaz, having 1555000 kilometers on the clock." ), jardovo->to_string() ); 
     215 
     216    shared_ptr<Transport> ondrejovo ( UI::build<Transport> ( in, "ondrejovo", UI::compulsory ) ); 
     217    CHECK_EQUAL ( string ( "a bike made in 1996 by author with electric lights included" ), ondrejovo->to_string() ); 
     218 
     219    shared_ptr<Transport> elisky ( UI::build<Transport> ( in, "elisky", UI::compulsory ) ); 
     220    CHECK_EQUAL ( string ( "A car made in 1992 by liaz, having 1555000 kilometers on the clock." ), elisky->to_string() ); 
     221 
     222    shared_ptr<Transport> kati ( UI::build<Transport> ( in, "kati", UI::compulsory ) ); 
     223    CHECK_EQUAL ( string ( "A car made in 1980 by vecernicek, having 250000 kilometers on the clock." ), kati->to_string() ); 
    224224} 
    225225 
    226226TEST ( load_error_test ) { 
    227         UIFile in ( "user_info_valid.cfg" ); 
    228  
    229         try { 
    230                 shared_ptr<Robot> failing ( UI::build<Robot> ( in, "elisky", UI::compulsory ) ); 
    231                 CHECK ( false ); 
    232         } catch ( UIClassException &exc ) { 
    233                 CHECK ( exc.what() ); 
    234         } 
    235  
    236         try { 
    237                 shared_ptr<Robot> failing ( UI::build<Robot> ( in, "kati", UI::compulsory ) ); 
    238                 CHECK ( false ); 
    239         } catch ( UIException &exc ) { 
    240                 CHECK ( exc.what() ); 
    241         } 
    242  
    243         UIFile erroneous ( "user_info_erroneous.cfg" ); 
    244         try { 
    245                 shared_ptr<Transport> jardovo ( UI::build<Transport> ( erroneous, "jardovo", UI::compulsory ) ); 
    246                 CHECK ( false ); 
    247         } catch ( UISettingException &exc ) { 
    248                 CHECK ( exc.what() ); 
    249         } 
     227    UIFile in ( "user_info_valid.cfg" ); 
     228 
     229    try { 
     230        shared_ptr<Robot> failing ( UI::build<Robot> ( in, "elisky", UI::compulsory ) ); 
     231        CHECK ( false ); 
     232    } catch ( UIClassException &exc ) { 
     233        CHECK ( exc.what() ); 
     234    } 
     235 
     236    try { 
     237        shared_ptr<Robot> failing ( UI::build<Robot> ( in, "kati", UI::compulsory ) ); 
     238        CHECK ( false ); 
     239    } catch ( UIException &exc ) { 
     240        CHECK ( exc.what() ); 
     241    } 
     242 
     243    UIFile erroneous ( "user_info_erroneous.cfg" ); 
     244    try { 
     245        shared_ptr<Transport> jardovo ( UI::build<Transport> ( erroneous, "jardovo", UI::compulsory ) ); 
     246        CHECK ( false ); 
     247    } catch ( UISettingException &exc ) { 
     248        CHECK ( exc.what() ); 
     249    } 
    250250} 
    251251 
    252252TEST ( save_test ) { 
    253         UIFile in ( "user_info_valid.cfg" ); 
    254         shared_ptr<Transport> pepikovo ( UI::build<Transport> ( in, "pepikovo", UI::compulsory ) ); 
    255  
    256         Car audi ( 1968, "zyl", 200 ); 
    257         Car liaz ( 1989, "skoda", 1000 ); 
    258         Bike author ( 2001, "noname", false ); 
    259         UIFile out; 
    260  
    261         UI::save ( &audi, out, "marty" ); 
    262         UI::save ( &liaz, out, "bohousovo" ); 
    263         UI::save ( &author, out, "karlovo" ); 
    264         UI::save ( pepikovo, out, "pepikovo" ); 
    265         out.save ( "user_info_output.cfg" ); 
    266  
    267         string expected ( load_test_file ( "user_info_matrix.cfg" ) ); 
    268         string actual ( load_test_file ( "user_info_output.cfg" ) ); 
    269         CHECK_EQUAL ( expected, actual ); 
     253    UIFile in ( "user_info_valid.cfg" ); 
     254    shared_ptr<Transport> pepikovo ( UI::build<Transport> ( in, "pepikovo", UI::compulsory ) ); 
     255 
     256    Car audi ( 1968, "zyl", 200 ); 
     257    Car liaz ( 1989, "skoda", 1000 ); 
     258    Bike author ( 2001, "noname", false ); 
     259    UIFile out; 
     260 
     261    UI::save ( &audi, out, "marty" ); 
     262    UI::save ( &liaz, out, "bohousovo" ); 
     263    UI::save ( &author, out, "karlovo" ); 
     264    UI::save ( pepikovo, out, "pepikovo" ); 
     265    out.save ( "user_info_output.cfg" ); 
     266 
     267    string expected ( load_test_file ( "user_info_matrix.cfg" ) ); 
     268    string actual ( load_test_file ( "user_info_output.cfg" ) ); 
     269    CHECK_EQUAL ( expected, actual ); 
    270270} 
    271271 
    272272 
    273273TEST ( save_error_test ) { 
    274         UIFile out; 
    275  
    276         Teleport teleport; 
    277         try { 
    278                 UI::save ( &teleport, out, "unsaveable" ); 
    279                 CHECK ( false ); 
    280         } catch ( UIException &exc ) { 
    281                 CHECK ( exc.what() ); 
    282         } 
    283 } 
     274    UIFile out; 
     275 
     276    Teleport teleport; 
     277    try { 
     278        UI::save ( &teleport, out, "unsaveable" ); 
     279        CHECK ( false ); 
     280    } catch ( UIException &exc ) { 
     281        CHECK ( exc.what() ); 
     282    } 
     283}