예제 #1
0
void test_create(enkf_config_node_type * config_node ) {
  obs_vector_type * obs_vector = obs_vector_alloc( SUMMARY_OBS , "OBS" , config_node , 100 );
  test_assert_true( obs_vector_is_instance( obs_vector ));
  {
    const int_vector_type * step_list = obs_vector_get_step_list( obs_vector );

    {
      summary_obs_type * obs_node = summary_obs_alloc( "FOPT" , "FOPT" , 10 , 1 , NULL , 0);
      obs_vector_install_node( obs_vector , 10 , obs_node );
      test_assert_int_equal( 1 , int_vector_size( step_list ));
      test_assert_int_equal( 10 , int_vector_iget( step_list , 0));
    }

    {
      summary_obs_type * obs_node = summary_obs_alloc( "FOPT" , "FOPT" , 10 , 1 , NULL , 0);
      obs_vector_install_node( obs_vector , 10 , obs_node );
      test_assert_int_equal( 1 , int_vector_size( step_list ));
      test_assert_int_equal( 10 , int_vector_iget( step_list , 0));
    }

    {
      summary_obs_type * obs_node = summary_obs_alloc( "FOPT" , "FOPT" , 10 , 1 , NULL , 0);
      obs_vector_install_node( obs_vector , 5 , obs_node );
      test_assert_int_equal( 2 , int_vector_size( step_list ));
      test_assert_int_equal( 5 , int_vector_iget( step_list , 0));
      test_assert_int_equal( 10 , int_vector_iget( step_list , 1));
    }

    {
      summary_obs_type * obs_node = summary_obs_alloc( "FOPT" , "FOPT" , 10 , 1 , NULL , 0);
      obs_vector_install_node( obs_vector , 15 , obs_node );
      test_assert_int_equal( 3 , int_vector_size( step_list ));
      test_assert_int_equal( 5 , int_vector_iget( step_list , 0));
      test_assert_int_equal( 10 , int_vector_iget( step_list , 1));
      test_assert_int_equal( 15 , int_vector_iget( step_list , 2));
    }
  }
  obs_vector_free( obs_vector );
}
예제 #2
0
static void obs_vector_add_summary_obs( obs_vector_type * obs_vector , int obs_index , const char * summary_key , const char * obs_key , double value , double std , const char * auto_corrf_name , double auto_corrf_param) {
  summary_obs_type * summary_obs = summary_obs_alloc( summary_key , obs_key , value , std , auto_corrf_name , auto_corrf_param);
  obs_vector_install_node( obs_vector , obs_index , summary_obs );
}