Files
opm-common/python/tests/test_parser.py
Steinar Foss 3bce48586a Python: DeckKeyword: can accept DeckValues( parserkw, [["5*$VALUE"]])
python : deckkeyword accepts 5*.

...
2019-10-08 11:04:15 +02:00

116 lines
3.0 KiB
Python

import unittest
import os.path
import sys
from opm.io.parser import Parser
from opm.io.parser import ParseContext
from opm.io.deck import DeckKeyword
class TestParser(unittest.TestCase):
REGIONDATA = """
START -- 0
10 MAI 2007 /
RUNSPEC
DIMENS
2 2 1 /
GRID
DX
4*0.25 /
DY
4*0.25 /
DZ
4*0.25 /
TOPS
4*0.25 /
REGIONS
OPERNUM
3 3 1 2 /
FIPNUM
1 1 2 3 /
"""
def setUp(self):
self.spe3fn = 'tests/spe3/SPE3CASE1.DATA'
self.norne_fname = os.path.abspath('examples/data/norne/NORNE_ATW2013.DATA')
def test_create(self):
parser = Parser()
deck = parser.parse(self.spe3fn)
context = ParseContext()
deck = parser.parse(self.spe3fn, context)
with open(self.spe3fn) as f:
string = f.read()
deck = parser.parse_string(string)
deck = parser.parse_string(string, context)
def test_create_deck_kw(self):
parser = Parser()
with self.assertRaises(ValueError):
kw = parser["NOT_A_VALID_KEYWORD"]
field = parser["FIELD"]
assert(field.name == "FIELD")
dkw_field = DeckKeyword(field)
assert(dkw_field.name == "FIELD")
DeckKeyword(parser["AQUCWFAC"], [[]])
with self.assertRaises(TypeError):
dkw_wrong = DeckKeyword(parser["AQUCWFAC"], [22.2, 0.25])
dkw_aqannc = DeckKeyword(parser["AQANNC"], [[12, 1, 2, 3, 0.89], [13, 4, 5, 6, 0.625]])
assert( len(dkw_aqannc[0]) == 5 )
assert( dkw_aqannc[0][2][0] == 2 )
assert( dkw_aqannc[1][1][0] == 4 )
assert( dkw_aqannc[1][4][0] == 0.625 )
dkw_aqantrc = DeckKeyword(parser["AQANTRC"], [[12, "ABC", 8]])
assert( dkw_aqantrc[0][1][0] == "ABC" )
assert( dkw_aqantrc[0][2][0] == 8.0 )
dkw1 = DeckKeyword(parser["AQUCWFAC"], [["*", 0.25]])
assert( dkw1[0][0][0] == 0.0 )
assert( dkw1[0][1][0] == 0.25 )
dkw2 = DeckKeyword(parser["AQUCWFAC"], [[0.25, "*"]])
assert( dkw2[0][0][0] == 0.25 )
assert( dkw2[0][1][0] == 1.0 )
dkw3 = DeckKeyword(parser["AQUCWFAC"], [[0.50]])
assert( dkw3[0][0][0] == 0.50 )
assert( dkw3[0][1][0] == 1.0 )
dkw4 = DeckKeyword(parser["CBMOPTS"], [["3*", "A", "B", "C", "2*", 0.375]])
assert( dkw4[0][0][0] == "TIMEDEP" )
assert( dkw4[0][2][0] == "NOKRMIX" )
assert( dkw4[0][3][0] == "A" )
assert( dkw4[0][6][0] == "PMPVK" )
assert( dkw4[0][8][0] == 0.375 )
with self.assertRaises(TypeError):
DeckKeyword(parser["CBMOPTS"], [["3*", "A", "B", "C", "R2*", 0.77]])
with self.assertRaises(TypeError):
DeckKeyword(parser["CBMOPTS"], [["3*", "A", "B", "C", "2.2*", 0.77]])
dkw5 = DeckKeyword(parser["AQUCWFAC"], [["2*5.5"]])
assert( dkw5[0][0][0] == 5.5 )
assert( dkw5[0][1][0] == 5.5 )
with self.assertRaises(ValueError):
raise DeckKeyword(parser["AQANTRC"], [["1*2.2", "ABC", 8]])
if __name__ == "__main__":
unittest.main()