void test_readwrite() { test_work_area_type * test_area = test_work_area_alloc("matrix-test"); { rng_type * rng = rng_alloc(MZRAN , INIT_DEV_URANDOM ); matrix_type * m1 = matrix_alloc(3 , 3); matrix_type * m2 = matrix_alloc(3 , 3); matrix_random_init( m1 , rng ); matrix_assign(m2 , m1); test_assert_true( matrix_equal( m1 , m2 ) ); { FILE * stream = util_fopen("m1" , "w"); matrix_fwrite( m1 , stream ); fclose( stream ); } matrix_random_init( m1 , rng ); test_assert_false( matrix_equal( m1 , m2 ) ); { FILE * stream = util_fopen("m1" , "r"); matrix_free( m1 ); m1 = matrix_alloc(1,1); printf("-----------------------------------------------------------------\n"); matrix_fread( m1 , stream ); test_assert_int_equal( matrix_get_rows(m1) , matrix_get_rows( m2)); test_assert_int_equal( matrix_get_columns(m1) , matrix_get_columns( m2)); util_fseek( stream , 0 , SEEK_SET); { matrix_type * m3 = matrix_fread_alloc( stream ); test_assert_true( matrix_equal( m2 , m3 )); matrix_free( m3 ); } fclose( stream ); } test_assert_true( matrix_equal( m1 , m2 ) ); matrix_free( m2 ); matrix_free( m1 ); rng_free( rng ); } test_work_area_free( test_area ); }
void testS( ert_test_context_type * test_context ) { { enkf_main_type * enkf_main = ert_test_context_get_main( test_context ); enkf_obs_type * enkf_obs = enkf_main_get_obs( enkf_main ); enkf_fs_type * fs = enkf_main_get_fs( enkf_main ); int_vector_type * active_list = int_vector_alloc(0,0); obs_data_type * obs_data = obs_data_alloc(1.0); local_obsdata_type * obs_set = local_obsdata_alloc( "KEY" ); bool_vector_type * ens_mask; meas_data_type * meas_data; for (int i= 0; i < enkf_main_get_ensemble_size( enkf_main); i++) int_vector_append( active_list , i ); ens_mask = int_vector_alloc_mask( active_list); obs_data = obs_data_alloc(1.0); meas_data = meas_data_alloc( ens_mask ); enkf_obs_add_local_nodes_with_data( enkf_obs , obs_set , fs , ens_mask ); enkf_obs_get_obs_and_measure_data( enkf_obs , fs , obs_set, FORECAST , active_list , meas_data , obs_data); { FILE * stream = util_fopen("analysis/Smatrix" , "r"); matrix_type * S = meas_data_allocS( meas_data ); matrix_type * S0 = matrix_fread_alloc( stream ); test_assert_true( matrix_equal( S0 , S )); matrix_free( S ); matrix_free( S0 ); fclose( stream ); } int_vector_free( active_list ); meas_data_free( meas_data ); obs_data_free( obs_data ); local_obsdata_free( obs_set ); bool_vector_free( ens_mask ); } }