const ecl_rft_cell_type * ecl_rft_node_iget_cell_sorted( ecl_rft_node_type * rft_node , int index) { if (ecl_rft_node_is_RFT( rft_node )) return ecl_rft_node_iget_cell( rft_node , index ); else { if (!rft_node->sort_perm_in_sync) ecl_rft_node_create_sort_perm( rft_node ); return vector_iget_const( rft_node->cells , int_vector_iget( rft_node->sort_perm , index )); } }
// Hardcoded GURBAT values void test_rft( const char * rft_file ) { ecl_rft_file_type * rft = ecl_rft_file_alloc( rft_file ); ecl_rft_node_type * rft_node = ecl_rft_file_iget_node( rft , 0 ); test_assert_true( ecl_rft_node_is_RFT( rft_node )); test_assert_int_equal( 14 , ecl_rft_node_get_size( rft_node )); test_assert_false( ecl_rft_node_is_MSW( rft_node )); test_assert_double_equal( 260.6111 , ecl_rft_node_iget_pressure( rft_node , 0 )); test_assert_double_equal( 0.0581993 , ecl_rft_node_iget_soil( rft_node , 0 )); test_assert_double_equal( 0.9405648 , ecl_rft_node_iget_swat( rft_node , 0 )); test_assert_double_equal( 0.00123579 , ecl_rft_node_iget_sgas( rft_node , 0 )); { int i,j,k; ecl_rft_node_iget_ijk( rft_node , 0 , &i , &j , &k ); test_assert_int_equal( 32 , i ); test_assert_int_equal( 53 , j ); test_assert_int_equal( 0 , k ); ecl_rft_node_iget_ijk( rft_node , 13 , &i , &j , &k ); test_assert_int_equal( 32 , i ); test_assert_int_equal( 54 , j ); test_assert_int_equal( 12 , k ); for (i=0; i < ecl_rft_node_get_size( rft_node ); i++) { const ecl_rft_cell_type * cell1 = ecl_rft_node_iget_cell( rft_node , i ); const ecl_rft_cell_type * cell2 = ecl_rft_node_iget_cell_sorted( rft_node , i ); test_assert_ptr_equal( cell1 , cell2 ); } } ecl_rft_node_inplace_sort_cells( rft_node ); ecl_rft_file_free( rft ); }