mirror of
https://github.com/OPM/ResInsight.git
synced 2025-02-25 18:55:39 -06:00
113 lines
4.3 KiB
Python
113 lines
4.3 KiB
Python
import sys
|
|
import os
|
|
import grpc
|
|
import pytest
|
|
import tempfile
|
|
|
|
sys.path.insert(1, os.path.join(sys.path[0], '../../'))
|
|
import rips
|
|
|
|
import dataroot
|
|
|
|
|
|
def test_10kAsync(rips_instance, initialize_test):
|
|
casePath = dataroot.PATH + "/TEST10K_FLT_LGR_NNC/TEST10K_FLT_LGR_NNC.EGRID"
|
|
case = rips_instance.project.load_case(path=casePath)
|
|
|
|
resultChunks = case.active_cell_property_async('DYNAMIC_NATIVE', 'SOIL', 1)
|
|
mysum = 0.0
|
|
count = 0
|
|
for chunk in resultChunks:
|
|
mysum += sum(chunk.values)
|
|
count += len(chunk.values)
|
|
average = mysum / count
|
|
assert(mysum == pytest.approx(621.768, abs=0.001))
|
|
assert(average != pytest.approx(0.0158893, abs=0.0000001))
|
|
assert(average == pytest.approx(0.0558893, abs=0.0000001))
|
|
|
|
|
|
def test_10kSync(rips_instance, initialize_test):
|
|
casePath = dataroot.PATH + "/TEST10K_FLT_LGR_NNC/TEST10K_FLT_LGR_NNC.EGRID"
|
|
case = rips_instance.project.load_case(path=casePath)
|
|
|
|
results = case.active_cell_property('DYNAMIC_NATIVE', 'SOIL', 1)
|
|
mysum = sum(results)
|
|
average = mysum / len(results)
|
|
assert(mysum == pytest.approx(621.768, abs=0.001))
|
|
assert(average != pytest.approx(0.0158893, abs=0.0000001))
|
|
assert(average == pytest.approx(0.0558893, abs=0.0000001))
|
|
|
|
|
|
def test_10k_set(rips_instance, initialize_test):
|
|
casePath = dataroot.PATH + "/TEST10K_FLT_LGR_NNC/TEST10K_FLT_LGR_NNC.EGRID"
|
|
case = rips_instance.project.load_case(path=casePath)
|
|
|
|
results = case.active_cell_property('DYNAMIC_NATIVE', 'SOIL', 1)
|
|
case.set_active_cell_property(results, 'GENERATED', 'SOIL', 1)
|
|
|
|
|
|
def test_10k_set_out_of_bounds(rips_instance, initialize_test):
|
|
casePath = dataroot.PATH + "/TEST10K_FLT_LGR_NNC/TEST10K_FLT_LGR_NNC.EGRID"
|
|
case = rips_instance.project.load_case(path=casePath)
|
|
|
|
results = case.active_cell_property('DYNAMIC_NATIVE', 'SOIL', 1)
|
|
results.append(5.0)
|
|
with pytest.raises(grpc.RpcError):
|
|
assert case.set_active_cell_property(results, 'GENERATED', 'SOIL', 1)
|
|
|
|
|
|
def test_10k_set_out_of_bounds_client(rips_instance, initialize_test):
|
|
casePath = dataroot.PATH + "/TEST10K_FLT_LGR_NNC/TEST10K_FLT_LGR_NNC.EGRID"
|
|
case = rips_instance.project.load_case(path=casePath)
|
|
|
|
results = case.active_cell_property('DYNAMIC_NATIVE', 'SOIL', 1)
|
|
case.chunk_size = len(results)
|
|
results.append(5.0)
|
|
with pytest.raises(IndexError):
|
|
assert case.set_active_cell_property(results, 'GENERATED', 'SOIL', 1)
|
|
|
|
|
|
def createResult(poroChunks, permxChunks):
|
|
for (poroChunk, permxChunk) in zip(poroChunks, permxChunks):
|
|
resultChunk = []
|
|
for (poro, permx) in zip(poroChunk.values, permxChunk.values):
|
|
resultChunk.append(poro * permx)
|
|
yield resultChunk
|
|
|
|
|
|
def checkResults(poroValues, permxValues, poropermxValues):
|
|
for (poro, permx, poropermx) in zip(poroValues, permxValues, poropermxValues):
|
|
recalc = poro * permx
|
|
assert(recalc == pytest.approx(poropermx, rel=1.0e-10))
|
|
|
|
|
|
def test_10k_PoroPermX(rips_instance, initialize_test):
|
|
casePath = dataroot.PATH + "/TEST10K_FLT_LGR_NNC/TEST10K_FLT_LGR_NNC.EGRID"
|
|
case = rips_instance.project.load_case(path=casePath)
|
|
|
|
poroChunks = case.active_cell_property_async('STATIC_NATIVE', 'PORO', 0)
|
|
permxChunks = case.active_cell_property_async('STATIC_NATIVE', 'PERMX', 0)
|
|
|
|
case.set_active_cell_property_async(createResult(
|
|
poroChunks, permxChunks), 'GENERATED', 'POROPERMXAS', 0)
|
|
|
|
poro = case.active_cell_property('STATIC_NATIVE', 'PORO', 0)
|
|
permx = case.active_cell_property('STATIC_NATIVE', 'PERMX', 0)
|
|
poroPermX = case.active_cell_property('GENERATED', 'POROPERMXAS', 0)
|
|
|
|
checkResults(poro, permx, poroPermX)
|
|
|
|
|
|
def test_exportPropertyInView(rips_instance, initialize_test):
|
|
case_path = dataroot.PATH + "/TEST10K_FLT_LGR_NNC/TEST10K_FLT_LGR_NNC.EGRID"
|
|
rips_instance.project.load_case(case_path)
|
|
with tempfile.TemporaryDirectory(prefix="rips") as tmpdirname:
|
|
print("Temporary folder: ", tmpdirname)
|
|
rips_instance.set_export_folder(export_type='PROPERTIES', path=tmpdirname)
|
|
case = rips_instance.project.cases()[0]
|
|
view = case.views()[0]
|
|
view.export_property()
|
|
expected_file_name = case.name + "-" + str("3D_View") + "-" + "T0" + "-SOIL"
|
|
full_path = tmpdirname + "/" + expected_file_name
|
|
assert(os.path.exists(full_path))
|