2016-12-09 15:51:29 +01:00
|
|
|
import unittest
|
2016-12-11 13:00:00 +01:00
|
|
|
import datetime as dt
|
2016-12-09 15:51:29 +01:00
|
|
|
|
2019-09-14 23:04:26 +02:00
|
|
|
from opm.io.parser import Parser
|
|
|
|
|
from opm.io.ecl_state import EclipseState
|
|
|
|
|
from opm.io.schedule import Schedule
|
|
|
|
|
|
2016-12-09 15:51:29 +01:00
|
|
|
|
|
|
|
|
class TestSchedule(unittest.TestCase):
|
2017-01-10 17:58:43 +01:00
|
|
|
|
2019-09-14 23:04:26 +02:00
|
|
|
|
2017-12-06 17:31:57 +01:00
|
|
|
@classmethod
|
|
|
|
|
def setUpClass(cls):
|
2019-09-14 23:04:26 +02:00
|
|
|
deck = Parser().parse('tests/spe3/SPE3CASE1.DATA')
|
|
|
|
|
state = EclipseState(deck)
|
|
|
|
|
cls.sch = Schedule( deck, state )
|
2016-12-09 15:51:29 +01:00
|
|
|
|
|
|
|
|
def testWells(self):
|
2019-09-14 23:04:26 +02:00
|
|
|
self.assertTrue( isinstance( self.sch.get_wells(0), list) )
|
2019-06-19 14:43:59 +02:00
|
|
|
self.assertEqual(2, len(self.sch.get_wells(0)))
|
2016-12-09 15:51:29 +01:00
|
|
|
|
2016-12-17 12:10:14 +01:00
|
|
|
with self.assertRaises(KeyError):
|
2019-06-19 14:43:59 +02:00
|
|
|
self.sch.get_well('foo', 0)
|
2016-12-17 12:10:14 +01:00
|
|
|
|
2016-12-09 15:51:29 +01:00
|
|
|
def testContains(self):
|
|
|
|
|
self.assertTrue('PROD' in self.sch)
|
|
|
|
|
self.assertTrue('INJ' in self.sch)
|
|
|
|
|
self.assertTrue('NOT' not in self.sch)
|
|
|
|
|
self.assertFalse('NOT' in self.sch)
|
2016-12-11 13:00:00 +01:00
|
|
|
|
|
|
|
|
def testStartEnd(self):
|
2018-02-06 14:56:20 +01:00
|
|
|
self.assertEqual(dt.datetime(2015, 1, 1), self.sch.start)
|
|
|
|
|
self.assertEqual(dt.datetime(2029, 12, 28), self.sch.end)
|
2016-12-11 16:11:50 +01:00
|
|
|
|
|
|
|
|
def testTimesteps(self):
|
|
|
|
|
timesteps = self.sch.timesteps
|
|
|
|
|
self.assertEqual(176, len(timesteps))
|
2018-02-06 14:56:20 +01:00
|
|
|
self.assertEqual(dt.datetime(2016, 1, 1), timesteps[7])
|
2016-12-16 16:38:24 +01:00
|
|
|
|
|
|
|
|
def testGroups(self):
|
|
|
|
|
|
2019-09-14 23:04:26 +02:00
|
|
|
G1 = self.sch.group( 'G1', 0 )
|
|
|
|
|
self.assertTrue(G1.name == 'G1')
|
|
|
|
|
self.assertTrue(G1.num_wells == 2)
|
2016-12-17 12:10:14 +01:00
|
|
|
|
2019-09-14 23:04:26 +02:00
|
|
|
names = G1.well_names
|
2016-12-17 12:10:14 +01:00
|
|
|
|
2019-09-14 23:04:26 +02:00
|
|
|
self.assertEqual(2, len(names))
|
2016-12-17 12:10:14 +01:00
|
|
|
|
2019-09-14 23:04:26 +02:00
|
|
|
self.assertTrue(self.sch.get_well('INJ', 0).isinjector())
|
|
|
|
|
self.assertTrue(self.sch.get_well('PROD', 0).isproducer())
|
2018-02-07 13:09:46 +01:00
|
|
|
|
2019-09-14 23:04:26 +02:00
|
|
|
with self.assertRaises(ValueError):
|
|
|
|
|
self.sch.group('foo', 0)
|
|
|
|
|
|
2018-02-07 13:09:46 +01:00
|
|
|
|
|
|
|
|
if __name__ == "__main__":
|
|
|
|
|
unittest.main()
|