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))