root/library/tests/testsuite/datasource_test.cpp @ 1072

Revision 1072, 1.9 kB (checked in by smidl, 14 years ago)

new merger

  • Property svn:eol-style set to native
RevLine 
[598]1#include "../bdm/base/datasources.h"
[695]2#include "../bdm/base/loggers.h"
[717]3#include "../mat_checks.h"
[598]4#include "UnitTest++.h"
[1072]5#include "../bdm/stat/emix.h"
[598]6
7using namespace bdm;
8
[689]9TEST ( EpdfDS_test ) {
[1064]10    UIFile uif ( "epdfds.cfg" );
11    shared_ptr<EpdfDS> ds = UI::build<EpdfDS> ( uif, "ds" );
[722]12
[1064]13    vec mean = zeros ( 2 );
14    vec dt = zeros ( 2 );
15    for ( int i = 0; i < 100; i++ ) {
16        ds->step();
17        ds->getdata ( dt );
18        mean += dt;
19    }
20    CHECK_CLOSE_EX ( vec_2 ( 1.0, 2.0 ) , mean / 100, 1e-2 );
[598]21}
22
[693]23TEST ( PdfDS_test ) {
[1064]24    UIFile uif ( "pdfds.cfg" );
[598]25
[1064]26    shared_ptr<PdfDS> ds = UI::build<PdfDS> ( uif, "ds", UI::compulsory );
[722]27
[1064]28    vec dt = zeros ( 2 );
29    vec ut = "1.0";
30    ds->write ( ut );
31    for ( int i = 0; i < 100; i++ ) {
32        ds->step();
33    }
34    ds->getdata ( dt );
35    CHECK_CLOSE ( -0.2 , dt ( 0 ), 1e-4 );
[598]36
[1064]37    ut = "2.0";
38    ds->write ( ut );
39    for ( int i = 0; i < 100; i++ ) {
40        ds->step();
41    }
42    ds->getdata ( dt );
43    CHECK_CLOSE ( -0.4 , dt ( 0 ), 1e-4 );
[598]44}
[695]45
[722]46TEST ( StateDS_test ) {
[1064]47    RV y ( "y", 1 );
48    RV u ( "u", 1 );
49    RV x ( "x", 2 );
[722]50
[1064]51    shared_ptr<mlnorm<fsqmat> > IM = new mlnorm<fsqmat>;
52    IM->set_parameters ( mat ( "1 2 0.5; 0 1 0.3" ), zeros ( 2 ), fsqmat ( 1e-10*eye ( 2 ) ) );
53    IM->set_rv ( x );
54    IM->set_rvc ( concat ( x.copy_t ( -1 ), u ) );
55    IM->validate();
[695]56
[1064]57    shared_ptr<mlnorm<fsqmat> > OM = new mlnorm<fsqmat>;
58    OM->set_parameters ( mat ( "1 0" ), zeros ( 1 ), fsqmat ( 1e-10*eye ( 1 ) ) );
59    OM->set_rv ( y );
60    OM->set_rvc ( x );
61    OM->validate();
[722]62
[1072]63        PdfDS pds;     
64        Array<shared_ptr<pdf> > Arr(2);
65        Arr(0) = OM;
66        Arr(1)= IM;
67       
68        shared_ptr<mprod> mp;
69        mp->set_elements(Arr);
70       
71        pds.ipdf=mp;
72        pds.validate();
[722]73
[1064]74    for ( int t = 1; t < 10; t++ ) {
[1072]75                pds.write ( vec_1 ( double ( t ) ) );
[1064]76        // TODO ZDE TO SPADNE
[1072]77                pds.step();
[1064]78    }
[695]79
[1064]80    vec dt;
[1072]81        pds.getdata ( dt );
[1064]82    CHECK_CLOSE ( vec ( "94.5, 94.5, 13.5, 9" ), dt, 1e-2 );
[723]83}
Note: See TracBrowser for help on using the browser.