/Users/huttone/Devel/sedflux-new/sedflux/trunk/ew/utils/eh_input_val_unit_test.c

Go to the documentation of this file.
00001 #include <eh_utils.h>
00002 #include <check.h>
00003 
00004 START_TEST ( test_create_input_val )
00005 {
00006    Eh_input_val v;
00007 
00008    v = eh_input_val_new( );
00009 
00010    fail_if( v==NULL , "Bad input_val handle" );
00011 
00012    v = eh_input_val_destroy( v );
00013 
00014    fail_unless( v==NULL , "Destroyed input_val should be set to NULL" );
00015 
00016 }
00017 END_TEST
00018 
00019 START_TEST ( test_set_input_val )
00020 {
00021    Eh_input_val v;
00022 
00023    {
00024       GError* err = NULL;
00025 
00026       v = eh_input_val_set( "-.5" , &err );
00027 
00028       if ( err!=NULL )
00029          fprintf( stderr , "%s" , err->message );
00030 
00031       fail_unless( eh_input_val_eval(v)==-.5 , "Scalar value set incorrectly" );
00032       v = eh_input_val_destroy( v );
00033 
00034       g_clear_error( &err );
00035    }
00036 
00037    {
00038       gssize n_evals = 100000;
00039       gssize i;
00040       double* vals = eh_new( double , n_evals );
00041       double mean, var;
00042       GError* err = NULL;
00043 
00044       v = eh_input_val_set( "normal=-.5,.1" , &err );
00045 
00046       if ( err!=NULL )
00047          fprintf( stderr , "%s" , err->message );
00048 
00049       for ( i=0 ; i<n_evals ; i++ )
00050          vals[i] = eh_input_val_eval( v );
00051       mean = eh_dbl_array_mean( vals , n_evals );
00052       var  = eh_dbl_array_var ( vals , n_evals );
00053 
00054       fail_unless( eh_compare_dbl(mean,-.5,.01)     , "Normal distribution mean set incorrectly" );
00055       fail_unless( eh_compare_dbl(sqrt(var),.1,.01) , "Normal distribution variance set incorrectly" );
00056 
00057       eh_free( vals );
00058       v = eh_input_val_destroy( v );
00059 
00060       g_clear_error( &err );
00061    }
00062 
00063 /*
00064    {
00065       v = eh_input_val_set( "user=user_test.txt" );
00066 
00067       fail_if( v==NULL , "Could not read user file" );
00068 
00069       v = eh_input_val_destroy( v );
00070    }
00071 */
00072 }
00073 END_TEST
00074 
00075 Suite *eh_input_val_suite( void )
00076 {
00077    Suite *s = suite_create( "Eh_input_val" );
00078    TCase *test_case_core = tcase_create( "Core" );
00079 
00080    suite_add_tcase( s , test_case_core );
00081 
00082    tcase_add_test( test_case_core , test_create_input_val );
00083    tcase_add_test( test_case_core , test_set_input_val    );
00084 
00085    return s;
00086 }
00087 
00088 int test_input_val( void )
00089 {
00090    int n;
00091 
00092    {
00093       Suite *s = eh_input_val_suite();
00094       SRunner *sr = srunner_create( s );
00095 
00096       srunner_run_all( sr , CK_NORMAL );
00097       n = srunner_ntests_failed( sr );
00098       srunner_free( sr );
00099    }
00100 
00101    return n;
00102 }
00103 

Generated on Fri Jan 4 18:04:16 2008 for sedflux by  doxygen 1.5.2