| | 16 | } |
| | 17 | |
| | 18 | // not using epdf_harness because eprod isn't configurable (yet?) |
| | 19 | TEST ( test_eprod ) { |
| | 20 | RV a ( "{eprod_a }", "1" ); |
| | 21 | RV b ( "{eprod_b }", "2" ); |
| | 22 | |
| | 23 | egamma_ptr g0; |
| | 24 | g0->set_parameters ( vec ( "2" ), vec ( "2" ) ); |
| | 25 | g0->set_rv ( a ); |
| | 26 | |
| | 27 | egamma_ptr g1; |
| | 28 | g1->set_parameters ( vec ( "100000 10000" ), vec ( "10000 1000" ) ); |
| | 29 | g1->set_rv ( b ); |
| | 30 | |
| | 31 | Array<const epdf*> coms ( 2 ); |
| | 32 | coms ( 0 ) = g0.get(); |
| | 33 | coms ( 1 ) = g1.get(); |
| | 34 | |
| | 35 | eprod p; |
| | 36 | // set_parameters doesn't say so, but it actually requires |
| | 37 | // pointers in the array to outlast the eprod instance... |
| | 38 | p.set_parameters ( coms ); |
| | 39 | |
| | 40 | CHECK_EQUAL ( vec ( "1 10 10" ), p.mean() ); |
| | 41 | CHECK_EQUAL ( vec ( "0 0 0" ), p.variance() ); |