Files
opm-common/python/tests/test_group_tree.py

43 lines
1.5 KiB
Python
Raw Normal View History

import sys
2017-10-03 20:18:29 +02:00
import unittest
import opm.parser
2017-10-03 20:18:29 +02:00
class TestGroupTree(unittest.TestCase):
def setUp(self):
2019-06-27 14:08:22 +02:00
norne = 'examples/data/norne/NORNE_ATW2013.DATA'
self.sch = opm.parser.parse(norne, [('PARSE_RANDOM_SLASH', opm.parser.action.ignore)]).schedule
2017-10-03 20:18:29 +02:00
def test_group(self):
gr = self.sch.group(timestep=2)['PROD']
2017-10-03 20:18:29 +02:00
self.assertEqual('PROD', gr.name)
2019-08-06 22:40:14 +02:00
self.assertEqual('MANI-B2', gr.children[0].name)
2017-10-03 20:18:29 +02:00
self.assertEqual(6, len(gr.children))
2019-08-06 22:40:14 +02:00
# The group <-> Schedule implementation is quite complicated with lots
# of self references going back from the group object to the Schedule
# object; these tests have just been commented out when implementing
# the GTNode based tree implementation.
# self.assertEqual('FIELD', gr.parent.name)
# self.assertEqual(2, gr.timestep)
# self.assertEqual(None, gr.parent.parent)
2017-10-03 20:18:29 +02:00
def test_timestep_groups(self):
2017-10-17 22:15:44 +02:00
total = 0
for group in self.sch.groups(timestep=3):
2017-10-03 20:18:29 +02:00
for child in group.children:
self.assertIsNotNone(child.name)
2017-10-17 22:15:44 +02:00
total += 1
self.assertEqual(13, total)
2017-10-03 20:18:29 +02:00
group = self.sch.group(timestep=3)['PROD']
2017-10-03 20:18:29 +02:00
children = ['MANI-B1', 'MANI-B2', 'MANI-D1', 'MANI-D2', 'MANI-E1', 'MANI-E2']
2017-10-17 22:15:44 +02:00
names = [child.name for child in group.children]
self.assertEqual(opm.parser.schedule.Group, type(child))
2017-10-17 22:15:44 +02:00
self.assertEqual(set(children), set(names))
2017-10-03 20:18:29 +02:00
if __name__ == '__main__':
unittest.main()