66 lines
2.1 KiB
Python
66 lines
2.1 KiB
Python
import unittest
|
|
|
|
from opm.io.parser import Parser
|
|
from opm.io.ecl_state import EclipseState
|
|
from opm.io.schedule import Schedule
|
|
try:
|
|
from tests.utils import test_path
|
|
except ImportError:
|
|
from utils import test_path
|
|
|
|
def flowing(connection):
|
|
return connection.state == 'OPEN'
|
|
|
|
def closed(connection):
|
|
return connection.state == 'SHUT'
|
|
|
|
|
|
class TestWells(unittest.TestCase):
|
|
|
|
@classmethod
|
|
def setUpClass(cls):
|
|
deck = Parser().parse(test_path('spe3/SPE3CASE1.DATA'))
|
|
print("Creating state")
|
|
cls.state = EclipseState(deck)
|
|
print("State OK")
|
|
cls.sch = Schedule(deck, cls.state)
|
|
cls.timesteps = cls.sch.timesteps
|
|
|
|
def test_connection_pos(self):
|
|
wells = self.sch.get_wells(0)
|
|
p00 = wells[0].connections()[0].pos
|
|
p01 = wells[0].connections()[1].pos
|
|
p10 = wells[1].connections()[0].pos
|
|
p11 = wells[1].connections()[1].pos
|
|
self.assertEqual(p00, (6,6,2))
|
|
self.assertEqual(p01, (6,6,3))
|
|
self.assertEqual(p10, (0,0,0))
|
|
self.assertEqual(p11, (0,0,1))
|
|
|
|
def test_connection_state(self):
|
|
for timestep,_ in enumerate(self.timesteps):
|
|
for well in self.sch.get_wells(timestep):
|
|
for connection in well.connections():
|
|
self.assertEqual("OPEN", connection.state)
|
|
|
|
def test_filters(self):
|
|
connections = self.sch.get_wells(0)[0].connections()
|
|
self.assertEqual(len(list(filter(flowing, connections))), 2)
|
|
self.assertEqual(len(list(filter(closed, connections))), 0)
|
|
|
|
def test_direction(self):
|
|
for timestep,_ in enumerate(self.timesteps):
|
|
for well in self.sch.get_wells(timestep):
|
|
for connection in well.connections():
|
|
self.assertEqual(connection.direction, 'Z')
|
|
|
|
def test_attached_to_segment(self):
|
|
for timestep,_ in enumerate(self.timesteps):
|
|
for well in self.sch.get_wells(timestep):
|
|
for connection in well.connections():
|
|
self.assertFalse(connection.attached_to_segment)
|
|
|
|
|
|
if __name__ == "__main__":
|
|
unittest.main()
|