def test_write(self): with TestAreaContext("my_space") as area: intersect_summary = EclSum( self.createTestPath( "Statoil/ECLIPSE/SummaryRestart/iter-1/NOR-2013A_R007-0") ) self.assertIsNotNone(intersect_summary) write_location = os.path.join(os.getcwd(), "CASE") intersect_summary.fwrite(ecl_case=write_location) reloaded_summary = EclSum(write_location) self.assertEqual(intersect_summary.keys(), reloaded_summary.keys())
class EclSumVectorTest(ExtendedTestCase): def setUp(self): self.test_file = self.createTestPath("Statoil/ECLIPSE/Gurbat/ECLIPSE.SMSPEC") self.ecl_sum = EclSum(self.test_file) def test_reportOnly_warns(self): with warnings.catch_warnings(record=True) as w: warnings.simplefilter("always") vector = EclSumVector(self.ecl_sum, "FOPT", True) assert len(w) == 1 assert issubclass(w[-1].category, DeprecationWarning) def test_basic(self): self.assertEqual(512, len(self.ecl_sum.keys())) pfx = 'EclSum(name' self.assertEqual(pfx, repr(self.ecl_sum)[:len(pfx)]) it = iter(self.ecl_sum) t = self.ecl_sum[it.next()] # EclSumVector self.assertEqual(63, len(t)) self.assertEqual('BARSA', t.unit) pfx = 'EclSumVector(key = ' self.assertEqual(pfx, repr(t)[:len(pfx)])
def test_ix_case(self): intersect_summary = EclSum(self.createTestPath("Statoil/ECLIPSE/ix/summary/Create_Region_Around_Well")) self.assertIsNotNone(intersect_summary) self.assertTrue( "HWELL_PROD" in [intersect_summary.smspec_node(key).wgname for key in intersect_summary.keys()] ) eclipse_summary = EclSum(self.createTestPath("Statoil/ECLIPSE/ix/summary/ECL100/E100_CREATE_REGION_AROUND_WELL")) self.assertIsNotNone(eclipse_summary) hwell_padder = lambda key : key if key.split(":")[-1] != "HWELL_PR" else key + "OD" self.assertEqual( intersect_summary.keys("WWCT*"), map(hwell_padder, eclipse_summary.keys("WWCT*")) )
def test_segment(self): sum = EclSum(self.createTestPath("Statoil/ECLIPSE/Oseberg/F8MLT/F8MLT-F4")) segment_vars = sum.keys("SOFR:F-8:*") self.assertIn("SOFR:F-8:1", segment_vars) for var in segment_vars: tmp = var.split(":") nr = int(tmp[2]) self.assertTrue(nr >= 0)
def test_ix_write(self): for data_set in [ "Statoil/ECLIPSE/ix/summary/Create_Region_Around_Well", "Statoil/ECLIPSE/ix/troll/IX_NOPH3_R04_75X75X1_grid2.SMSPEC" ]: with TestAreaContext("my_space" + data_set.split("/")[-1]) as area: intersect_summary = EclSum(self.createTestPath(data_set)) self.assertIsNotNone(intersect_summary) write_location = os.path.join(os.getcwd(), "CASE") intersect_summary.fwrite(ecl_case=write_location) reloaded_summary = EclSum(write_location) self.assertEqual( list(intersect_summary.keys()), list(reloaded_summary.keys()) )
def test_restart_mapping(self): history = EclSum( self.createTestPath( "Statoil/ECLIPSE/SummaryRestart/iter-1/NOR-2013A_R007-0") ) total = EclSum( self.createTestPath( "Statoil/ECLIPSE/SummaryRestart/Prediction/NOR-2013A_R007_PRED-0") , include_restart = True) history_dates = history.get_dates( ) total_dates = total.get_dates( ) for i in range(len(history_dates)): self.assertEqual( history_dates[i] , total_dates[i] ) keys = history.keys( pattern = "W*") for key in keys: if key in total: self.assertEqual( history.iget( key , 5 ) , total.iget( key , 5 )) self.assertFalse( "WGPR:NOT_21_D" in history ) self.assertTrue( "WGPR:NOT_21_D" in total ) self.assertEqual( total.iget( "WGPR:NOT_21_D", 5) , 0) # Default value
def load_smry(fname): """Returns (smry,list of keywords).""" smry = EclSum(fname) return smry, list(smry.keys())
def test_ix_caseII(self): troll_summary = EclSum( self.createTestPath("Statoil/ECLIPSE/ix/troll/IX_NOPH3_R04_75X75X1_grid2.SMSPEC")) self.assertIsNotNone(troll_summary) self.assertTrue("WMCTL:Q21BH1" in list(troll_summary.keys()))