Beispiel #1
0
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 );
}
Beispiel #2
0
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 );
  }
}