diff --git a/tests/test_Summary.cpp b/tests/test_Summary.cpp index f8e0086e1..d50aa2c12 100644 --- a/tests/test_Summary.cpp +++ b/tests/test_Summary.cpp @@ -81,6 +81,11 @@ namespace { return unit::meter / unit::second; } + double barsa() + { + return unit::barsa; + } + double cp() { return prefix::centi * unit::Poise; @@ -1997,14 +2002,15 @@ BOOST_AUTO_TEST_CASE(inter_region_flows) BOOST_CHECK_CLOSE(ecl_sum_get_general_var(resp, 2, "RGFR:9-10"), 86400.0f * 3.1415926f, 1.0e-6f); } -BOOST_AUTO_TEST_CASE(BLOCK_VARIABLES) { - setup cfg( "region_injection" ); - +BOOST_AUTO_TEST_CASE(BLOCK_VARIABLES) +{ + setup cfg { "block_quantities" }; std::map, double> block_values; - for (size_t r=1; r <= 10; r++) { - block_values[std::make_pair("BPR", (r-1)*100 + 1)] = r*1.0; + for (auto r = 1; r <= 10; ++r) { + block_values[std::make_pair("BPR", (r - 1)*100 + 1)] = r*1.0*barsa(); } + block_values[std::make_pair("BSWAT", 1)] = 8.0; block_values[std::make_pair("BSGAS", 1)] = 9.0; block_values[std::make_pair("BOSAT", 1)] = 0.91; @@ -2016,14 +2022,14 @@ BOOST_AUTO_TEST_CASE(BLOCK_VARIABLES) { block_values[std::make_pair("BGKR", 2)] = 0.61; block_values[std::make_pair("BKRG", 2)] = 0.63; block_values[std::make_pair("BKRW", 2)] = 0.51; - block_values[std::make_pair("BWPC", 11)] = 0.53; - block_values[std::make_pair("BGPC", 11)] = 5.3; - block_values[std::make_pair("BVWAT", 1)] = 4.1; - block_values[std::make_pair("BWVIS", 1)] = 4.3; - block_values[std::make_pair("BVGAS", 1)] = 0.031; - block_values[std::make_pair("BGVIS", 1)] = 0.037; - block_values[std::make_pair("BVOIL", 1)] = 31.0; - block_values[std::make_pair("BOVIS", 1)] = 33.0; + block_values[std::make_pair("BWPC", 11)] = 0.53*barsa(); + block_values[std::make_pair("BGPC", 11)] = 5.3*barsa(); + block_values[std::make_pair("BVWAT", 1)] = 4.1*cp(); + block_values[std::make_pair("BWVIS", 1)] = 4.3*cp(); + block_values[std::make_pair("BVGAS", 1)] = 0.031*cp(); + block_values[std::make_pair("BGVIS", 1)] = 0.037*cp(); + block_values[std::make_pair("BVOIL", 1)] = 31.0*cp(); + block_values[std::make_pair("BOVIS", 1)] = 33.0*cp(); out::Summary writer( cfg.es, cfg.config, cfg.grid, cfg.schedule, cfg.name ); SummaryState st(TimeService::now()); @@ -2039,48 +2045,53 @@ BOOST_AUTO_TEST_CASE(BLOCK_VARIABLES) { writer.add_timestep( st, 4, false); writer.write(); - auto res = readsum( cfg.name ); + auto res = readsum(cfg.name); const auto* resp = res.get(); - UnitSystem units( UnitSystem::UnitType::UNIT_TYPE_METRIC ); - for (size_t r=1; r <= 10; r++) { - std::string bpr_key = "BPR:1,1," + std::to_string( r ); - BOOST_CHECK( ecl_sum_has_general_var( resp , bpr_key.c_str())); + for (auto r = 1; r <= 10; ++r) { + const auto bpr_key = fmt::format("BPR:1,1,{}", r); - BOOST_CHECK_CLOSE( r * 1.0 , units.to_si( UnitSystem::measure::pressure , ecl_sum_get_general_var( resp, 1, bpr_key.c_str())) , 1e-5); + BOOST_CHECK_MESSAGE(ecl_sum_has_general_var(resp, bpr_key), + "Block Pressure Variable " << bpr_key + << " must exist in summary output"); + BOOST_CHECK_CLOSE(r * 1.0, ecl_sum_get_general_var(resp, 1, bpr_key), 1e-5); } - BOOST_CHECK_CLOSE( 8.0 , units.to_si( UnitSystem::measure::identity , ecl_sum_get_general_var( resp, 1, "BSWAT:1,1,1")) , 1e-5); - BOOST_CHECK_CLOSE( 9.0 , units.to_si( UnitSystem::measure::identity , ecl_sum_get_general_var( resp, 1, "BSGAS:1,1,1")) , 1e-5); - BOOST_CHECK_CLOSE( 0.91 , units.to_si( UnitSystem::measure::identity , ecl_sum_get_general_var( resp, 1, "BOSAT:1,1,1")) , 1e-5); - BOOST_CHECK_CLOSE( 0.81 , units.to_si( UnitSystem::measure::identity , ecl_sum_get_general_var( resp, 1, "BWKR:2,1,1")) , 1e-5); - BOOST_CHECK_CLOSE( 0.71 , units.to_si( UnitSystem::measure::identity , ecl_sum_get_general_var( resp, 1, "BOKR:2,1,1")) , 1e-5); - BOOST_CHECK_CLOSE( 0.73 , units.to_si( UnitSystem::measure::identity , ecl_sum_get_general_var( resp, 1, "BKRO:2,1,1")) , 1e-5); - BOOST_CHECK_CLOSE( 0.82 , units.to_si( UnitSystem::measure::identity , ecl_sum_get_general_var( resp, 1, "BKROG:4,1,1")) , 1e-5); - BOOST_CHECK_CLOSE( 0.68 , units.to_si( UnitSystem::measure::identity , ecl_sum_get_general_var( resp, 1, "BKROW:3,1,1")) , 1e-5); - BOOST_CHECK_CLOSE( 0.61 , units.to_si( UnitSystem::measure::identity , ecl_sum_get_general_var( resp, 1, "BGKR:2,1,1")) , 1e-5); - BOOST_CHECK_CLOSE( 0.63 , units.to_si( UnitSystem::measure::identity , ecl_sum_get_general_var( resp, 1, "BKRG:2,1,1")) , 1e-5); - BOOST_CHECK_CLOSE( 0.51 , units.to_si( UnitSystem::measure::identity , ecl_sum_get_general_var( resp, 1, "BKRW:2,1,1")) , 1e-5); - BOOST_CHECK_CLOSE( 0.53 , units.to_si( UnitSystem::measure::pressure , ecl_sum_get_general_var( resp, 1, "BWPC:1,2,1")) , 1e-5); - BOOST_CHECK_CLOSE( 5.3 , units.to_si( UnitSystem::measure::pressure , ecl_sum_get_general_var( resp, 1, "BGPC:1,2,1")) , 1e-5); - BOOST_CHECK_CLOSE( 4.1 , units.to_si( UnitSystem::measure::viscosity , ecl_sum_get_general_var( resp, 1, "BVWAT:1,1,1")) , 1e-5); - BOOST_CHECK_CLOSE( 4.3 , units.to_si( UnitSystem::measure::viscosity , ecl_sum_get_general_var( resp, 1, "BWVIS:1,1,1")) , 1e-5); - BOOST_CHECK_CLOSE( 0.031 , units.to_si( UnitSystem::measure::viscosity , ecl_sum_get_general_var( resp, 1, "BVGAS:1,1,1")) , 1e-5); - BOOST_CHECK_CLOSE( 0.037 , units.to_si( UnitSystem::measure::viscosity , ecl_sum_get_general_var( resp, 1, "BGVIS:1,1,1")) , 1e-5); - BOOST_CHECK_CLOSE( 31.0 , units.to_si( UnitSystem::measure::viscosity , ecl_sum_get_general_var( resp, 1, "BVOIL:1,1,1")) , 1e-5); - BOOST_CHECK_CLOSE( 33.0 , units.to_si( UnitSystem::measure::viscosity , ecl_sum_get_general_var( resp, 1, "BOVIS:1,1,1")) , 1e-5); + // Cell (2,1,10) is not active + BOOST_CHECK_MESSAGE(! ecl_sum_has_general_var(resp, "BPR:2,1,10"), + "Block Pressure Variable BPR:2,1,10 must NOT exist"); - BOOST_CHECK_CLOSE( 111.222 , ecl_sum_get_well_connection_var( resp, 1, "W_1", "CTFAC", 1, 1, 1), 1e-5); - BOOST_CHECK_CLOSE( 222.333 , ecl_sum_get_well_connection_var( resp, 1, "W_2", "CTFAC", 2, 1, 1), 1e-5); - BOOST_CHECK_CLOSE( 333.444 , ecl_sum_get_well_connection_var( resp, 1, "W_2", "CTFAC", 2, 1, 2), 1e-5); - BOOST_CHECK_CLOSE( 444.555 , ecl_sum_get_well_connection_var( resp, 1, "W_3", "CTFAC", 3, 1, 1), 1e-5); + BOOST_CHECK_CLOSE(8.0 , ecl_sum_get_general_var(resp, 1, "BSWAT:1,1,1"), 1.0e-5); + BOOST_CHECK_CLOSE(9.0 , ecl_sum_get_general_var(resp, 1, "BSGAS:1,1,1"), 1.0e-5); + BOOST_CHECK_CLOSE(0.91, ecl_sum_get_general_var(resp, 1, "BOSAT:1,1,1"), 1.0e-5); - BOOST_CHECK_CLOSE( 111.222 , ecl_sum_get_well_connection_var( resp, 3, "W_1", "CTFAC", 1, 1, 1), 1e-5); - BOOST_CHECK_CLOSE( 111.222 , ecl_sum_get_well_connection_var( resp, 4, "W_1", "CTFAC", 1, 1, 1), 1e-5); + BOOST_CHECK_CLOSE(0.81, ecl_sum_get_general_var(resp, 1, "BWKR:2,1,1") , 1.0e-5); + BOOST_CHECK_CLOSE(0.71, ecl_sum_get_general_var(resp, 1, "BOKR:2,1,1") , 1.0e-5); + BOOST_CHECK_CLOSE(0.73, ecl_sum_get_general_var(resp, 1, "BKRO:2,1,1") , 1.0e-5); + BOOST_CHECK_CLOSE(0.82, ecl_sum_get_general_var(resp, 1, "BKROG:4,1,1"), 1.0e-5); + BOOST_CHECK_CLOSE(0.68, ecl_sum_get_general_var(resp, 1, "BKROW:3,1,1"), 1.0e-5); + BOOST_CHECK_CLOSE(0.61, ecl_sum_get_general_var(resp, 1, "BGKR:2,1,1") , 1.0e-5); + BOOST_CHECK_CLOSE(0.63, ecl_sum_get_general_var(resp, 1, "BKRG:2,1,1") , 1.0e-5); + BOOST_CHECK_CLOSE(0.51, ecl_sum_get_general_var(resp, 1, "BKRW:2,1,1") , 1.0e-5); - // Cell is not active - BOOST_CHECK( !ecl_sum_has_general_var( resp , "BPR:2,1,10")); + BOOST_CHECK_CLOSE(0.53, ecl_sum_get_general_var(resp, 1, "BWPC:1,2,1"), 1.0e-5); + BOOST_CHECK_CLOSE(5.3 , ecl_sum_get_general_var(resp, 1, "BGPC:1,2,1"), 1.0e-5); + + BOOST_CHECK_CLOSE(4.1 , ecl_sum_get_general_var(resp, 1, "BVWAT:1,1,1"), 1.0e-5); + BOOST_CHECK_CLOSE(4.3 , ecl_sum_get_general_var(resp, 1, "BWVIS:1,1,1"), 1.0e-5); + BOOST_CHECK_CLOSE(0.031, ecl_sum_get_general_var(resp, 1, "BVGAS:1,1,1"), 1.0e-5); + BOOST_CHECK_CLOSE(0.037, ecl_sum_get_general_var(resp, 1, "BGVIS:1,1,1"), 1.0e-5); + BOOST_CHECK_CLOSE(31.0 , ecl_sum_get_general_var(resp, 1, "BVOIL:1,1,1"), 1.0e-5); + BOOST_CHECK_CLOSE(33.0 , ecl_sum_get_general_var(resp, 1, "BOVIS:1,1,1"), 1.0e-5); + + BOOST_CHECK_CLOSE(111.222, ecl_sum_get_well_connection_var(resp, 1, "W_1", "CTFAC", 1, 1, 1), 1.0e-5); + BOOST_CHECK_CLOSE(222.333, ecl_sum_get_well_connection_var(resp, 1, "W_2", "CTFAC", 2, 1, 1), 1.0e-5); + BOOST_CHECK_CLOSE(333.444, ecl_sum_get_well_connection_var(resp, 1, "W_2", "CTFAC", 2, 1, 2), 1.0e-5); + BOOST_CHECK_CLOSE(444.555, ecl_sum_get_well_connection_var(resp, 1, "W_3", "CTFAC", 3, 1, 1), 1.0e-5); + + BOOST_CHECK_CLOSE(111.222, ecl_sum_get_well_connection_var(resp, 3, "W_1", "CTFAC", 1, 1, 1), 1.0e-5); + BOOST_CHECK_CLOSE(111.222, ecl_sum_get_well_connection_var(resp, 4, "W_1", "CTFAC", 1, 1, 1), 1.0e-5); } BOOST_AUTO_TEST_CASE(NODE_VARIABLES) {