void test_create_from_summary(ecl_grid_type * grid) { container_config_type * container_config = container_config_alloc( "Container"); block_obs_type * block_obs = block_obs_alloc( "ObsKey" , container_config , grid ); test_assert_true( block_obs_is_instance( block_obs )); test_assert_int_equal(0 , block_obs_get_size( block_obs )); block_obs_append_summary_obs( block_obs , 10 , 12 , 8 , "BPR:111,13,9" , 100 , 25); test_assert_int_equal(1 , block_obs_get_size( block_obs )); block_obs_append_summary_obs( block_obs , 10 , 12 , 9 , "BPR:11,13,10" , 100 , 25); test_assert_int_equal(2 , block_obs_get_size( block_obs )); block_obs_free( block_obs ); container_config_free( container_config ); }
/** The input vectors i,j,k should contain offset zero values. */ block_obs_type * block_obs_alloc_complete(const char * obs_key, block_obs_source_type source_type , const stringlist_type * summary_keys , const void * data_config , const ecl_grid_type * grid , int size, const int * i, const int * j, const int * k, const double * obs_value, const double * obs_std) { block_obs_validate_ijk( grid , size , i,j,k); { block_obs_type * block_obs = block_obs_alloc( obs_key , data_config , grid ); if (block_obs) { for (int l=0; l < size; l++) { if (source_type == SOURCE_SUMMARY) { const char * sum_key = stringlist_iget( summary_keys , l ); block_obs_append_summary_obs( block_obs , i[l] , j[l] , k[l] , sum_key , obs_value[l] , obs_std[l]); } else block_obs_append_field_obs( block_obs , i[l] , j[l] , k[l] , obs_value[l] , obs_std[l]); } return block_obs; } else { util_abort("%s: internal error - block_obs_alloc() returned NULL \n",__func__); return NULL; } } }