void test_time_after() { ecl_sum_type * ecl_sum = test_alloc_ecl_sum(); time_t_vector_type * t = time_t_vector_alloc( 0 , 0 ); time_t_vector_append(t, util_make_date_utc( 1,1,2010 )); time_t_vector_append(t, util_make_date_utc( 11,1,2010 )); test_assert_NULL( ecl_sum_alloc_resample(ecl_sum, "kk", t) ); time_t_vector_free(t); ecl_sum_free(ecl_sum); }
void test_correct_time_vector() { ecl_sum_type * ecl_sum = test_alloc_ecl_sum(); time_t_vector_type * t = time_t_vector_alloc( 0 , 0 ); time_t_vector_append(t, util_make_date_utc( 2,1,2010 )); time_t_vector_append(t, util_make_date_utc( 4,1,2010 )); time_t_vector_append(t, util_make_date_utc( 6,1,2010 )); time_t_vector_append(t, util_make_date_utc( 8,1,2010 )); ecl_sum_type * ecl_sum_resampled = ecl_sum_alloc_resample(ecl_sum, "kk", t); test_assert_int_equal( ecl_sum_get_report_time(ecl_sum_resampled, 2) , util_make_date_utc( 6,1,2010 )); const ecl_smspec_type * smspec_resampled = ecl_sum_get_smspec(ecl_sum_resampled); const smspec_node_type * node1 = ecl_smspec_iget_node(smspec_resampled, 1); const smspec_node_type * node2 = ecl_smspec_iget_node(smspec_resampled, 2); const smspec_node_type * node3 = ecl_smspec_iget_node(smspec_resampled, 3); test_assert_string_equal( "BPR" , smspec_node_get_keyword(node2) ); test_assert_string_equal( "BARS" , smspec_node_get_unit(node2) ); test_assert_double_equal(3.33333, ecl_sum_get_from_sim_time( ecl_sum_resampled, util_make_date_utc( 6,1,2010 ), node1) ); test_assert_double_equal(3.33333, ecl_sum_get_from_sim_time( ecl_sum_resampled, util_make_date_utc( 2,1,2010 ), node2) ); test_assert_double_equal(10.0000, ecl_sum_get_from_sim_time( ecl_sum_resampled, util_make_date_utc( 4,1,2010 ), node3) ); ecl_sum_free(ecl_sum_resampled); time_t_vector_free(t); ecl_sum_free(ecl_sum); }
ecl_sum_type * write_ecl_sum() { time_t start_time = util_make_date_utc( 1,1,2010 ); ecl_sum_type * ecl_sum = ecl_sum_alloc_writer( "CASE" , false , true , ":" , start_time , true , 10 , 10 , 10 ); double sim_seconds = 0; int num_dates = 4; double ministep_length = 86400; // seconds in a day smspec_node_type * node1 = ecl_sum_add_var( ecl_sum , "FOPT" , NULL , 0 , "Barrels" , 99.0 ); smspec_node_type * node2 = ecl_sum_add_var( ecl_sum , "BPR" , NULL , 567 , "BARS" , 0.0 ); smspec_node_type * node3 = ecl_sum_add_var( ecl_sum , "WWCT" , "OP-1" , 0 , "(1)" , 0.0 ); for (int report_step = 0; report_step < num_dates; report_step++) { { ecl_sum_tstep_type * tstep = ecl_sum_add_tstep( ecl_sum , report_step + 1 , sim_seconds ); ecl_sum_tstep_set_from_node( tstep , node1 , report_step*2.0 ); ecl_sum_tstep_set_from_node( tstep , node2 , report_step*4.0 + 2.0 ); ecl_sum_tstep_set_from_node( tstep , node3 , report_step*6.0 + 4.0 ); } sim_seconds += ministep_length * 3; } ecl_sum_fwrite( ecl_sum ); return ecl_sum; }
time_t ecl_util_make_date__(int mday , int month , int year, int * __year_offset) { time_t date; #ifdef ERT_TIME_T_64BIT_ACCEPT_PRE1970 *__year_offset = 0; date = util_make_date_utc(mday , month , year); #else static bool offset_initialized = false; static int year_offset = 0; if (!offset_initialized) { if (year < 1970) { year_offset = 2000 - year; fprintf(stderr,"Warning: all year values will be shifted %d years forward. \n", year_offset); } offset_initialized = true; } *__year_offset = year_offset; date = util_make_date_utc(mday , month , year + year_offset); #endif return date; }