diff --git a/src/pythermogis/constants.py b/src/pythermogis/constants.py index 34cb3e9a47b5d9c368e2ffc88e829ee70cbd5dac..e7fe928dd8e3014966dc99ccd84354d3e81f5aca 100644 --- a/src/pythermogis/constants.py +++ b/src/pythermogis/constants.py @@ -2,7 +2,7 @@ from pathlib import Path import platform THERMOGIS_JAR_PATH = ( - Path(__file__).parent / "thermogis_jar" / "thermogis-1.7.0-shaded.jar" + Path(__file__).parent / "thermogis_jar" / "thermogis-1.7.0-pythermogis.jar" ) JVM17_PATH = Path(__file__).parent / "jvm" / "JVM17" diff --git a/src/pythermogis/thermogis_classes/doublet.py b/src/pythermogis/thermogis_classes/doublet.py index 87d0190413724a1faeb2bee4d9f7d42afc02be23..68894dd456cd6f019e6c39b926e1f59cc86a2a77 100644 --- a/src/pythermogis/thermogis_classes/doublet.py +++ b/src/pythermogis/thermogis_classes/doublet.py @@ -2,6 +2,8 @@ import numpy as np import xarray as xr from jpype import JClass +from pythermogis.thermogis_classes.mock import create_logger_mock + def simulate_doublet( output_data: xr.Dataset, reservoir_properties: xr.Dataset, @@ -186,10 +188,8 @@ def instantiate_thermogis_doublet(utc_properties) -> JClass: """ # Instantiate doublet class - Logger = JClass("logging.Logger") - Mockito = JClass("org.mockito.Mockito") ThermoGISDoublet = JClass("thermogis.calc.utc.doublet.ThermoGisDoublet") - doublet = ThermoGISDoublet(Mockito.mock(Logger), utc_properties) + doublet = ThermoGISDoublet(create_logger_mock(), utc_properties) return doublet diff --git a/src/pythermogis/thermogis_classes/mock.py b/src/pythermogis/thermogis_classes/mock.py new file mode 100644 index 0000000000000000000000000000000000000000..79a796cb95db9cc9c4cf9e2956215346d26ba875 --- /dev/null +++ b/src/pythermogis/thermogis_classes/mock.py @@ -0,0 +1,42 @@ +import jpype +from jpype import JImplements, JOverride + +def create_logger_mock(): + """Call this only after JVM has started.""" + + @JImplements("logging.Logger") + class LoggerMock: + + @JOverride + def initialize(self, clazz): + pass + + @JOverride + def info(self, message): + pass + + @JOverride + def debug(self, message): + pass + + @JOverride + def warn(self, message): + pass + + @JOverride + def error(self, message): + pass + + @JOverride(sticky=True) + def error(self, message, throwable=None): + pass + + @JOverride + def getWarningStore(self): + return jpype.JClass("java.util.ArrayList")() + + @JOverride + def clearWarningStore(self): + pass + + return LoggerMock() \ No newline at end of file diff --git a/src/pythermogis/thermogis_jar/thermogis-1.7.0-pythermogis.jar b/src/pythermogis/thermogis_jar/thermogis-1.7.0-pythermogis.jar new file mode 100644 index 0000000000000000000000000000000000000000..caa2b3efd4880aad75ff1de7849c7d2194c755ee --- /dev/null +++ b/src/pythermogis/thermogis_jar/thermogis-1.7.0-pythermogis.jar @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:02f4574cc0a7d9731eae0c81c23c312d414158394b21152c392f804f18be7029 +size 157573982 diff --git a/src/pythermogis/thermogis_jar/thermogis-1.7.0-shaded.jar b/src/pythermogis/thermogis_jar/thermogis-1.7.0-shaded.jar deleted file mode 100644 index b5180f2eb42a2b1fdb186fb4419b9c64439dc8e8..0000000000000000000000000000000000000000 --- a/src/pythermogis/thermogis_jar/thermogis-1.7.0-shaded.jar +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:7c7a8cfee4f0a08d821a2bb1f58fd4cd61dbc28332d130993303673f732a492c -size 174049130 diff --git a/tests/java/test_ThermoGISDoublet_Benchmark.py b/tests/java/test_ThermoGISDoublet_Benchmark.py index 6278fb10553bd3271d4d15693b48991302084105..98103e1664ca33b23e3f1435379cdcd2a5a5ec63 100644 --- a/tests/java/test_ThermoGISDoublet_Benchmark.py +++ b/tests/java/test_ThermoGISDoublet_Benchmark.py @@ -3,6 +3,8 @@ from unittest import TestCase import pytest from pythermogis import * +from pythermogis.thermogis_classes.mock import create_logger_mock + class ThermoGISDoubletBenchmark(TestCase): """ @@ -17,8 +19,6 @@ class ThermoGISDoubletBenchmark(TestCase): """ # Arrange start_jvm() - Logger = JClass("logging.Logger") - Mockito = JClass("org.mockito.Mockito") ThermoGISDoublet = JClass("thermogis.calc.utc.doublet.ThermoGisDoublet") DoubletInput = JClass("thermogis.calc.utc.doublet.Doublet.DoubletInput") ThermoGISParameters = JClass("thermogis.parameters.ThermoGISParameters") @@ -44,7 +44,7 @@ class ThermoGISDoubletBenchmark(TestCase): None, # ates input ) - doublet = ThermoGISDoublet(Mockito.mock(Logger), utc_properties) + doublet = ThermoGISDoublet(create_logger_mock(), utc_properties) # Act @@ -66,8 +66,6 @@ class ThermoGISDoubletBenchmark(TestCase): """ # Arrange start_jvm() - Logger = JClass("logging.Logger") - Mockito = JClass("org.mockito.Mockito") ThermoGISDoublet = JClass("thermogis.calc.utc.doublet.ThermoGisDoublet") DoubletInput = JClass("thermogis.calc.utc.doublet.Doublet.DoubletInput") @@ -94,7 +92,7 @@ class ThermoGISDoubletBenchmark(TestCase): temperature, None, # ates input ) - doublet = ThermoGISDoublet(Mockito.mock(Logger), utc_properties) + doublet = ThermoGISDoublet(create_logger_mock(), utc_properties) # Act results = doublet.calculateDoubletPerformance(input) @@ -116,8 +114,7 @@ class ThermoGISDoubletBenchmark(TestCase): """ # Arrange start_jvm() - Logger = JClass("logging.Logger") - Mockito = JClass("org.mockito.Mockito") + ThermoGISDoublet = JClass("thermogis.calc.utc.doublet.ThermoGisDoublet") DoubletInput = JClass("thermogis.calc.utc.doublet.Doublet.DoubletInput") @@ -146,7 +143,7 @@ class ThermoGISDoubletBenchmark(TestCase): temperature, None, # ates input ) - doublet = ThermoGISDoublet(Mockito.mock(Logger), utc_properties) + doublet = ThermoGISDoublet(create_logger_mock(), utc_properties) # Act results = doublet.calculateDoubletPerformance(input) @@ -168,8 +165,7 @@ class ThermoGISDoubletBenchmark(TestCase): """ # Arrange start_jvm() - Logger = JClass("logging.Logger") - Mockito = JClass("org.mockito.Mockito") + ThermoGISDoublet = JClass("thermogis.calc.utc.doublet.ThermoGisDoublet") DoubletInput = JClass("thermogis.calc.utc.doublet.Doublet.DoubletInput") @@ -198,7 +194,7 @@ class ThermoGISDoubletBenchmark(TestCase): temperature, None, # ates input ) - doublet = ThermoGISDoublet(Mockito.mock(Logger), utc_properties) + doublet = ThermoGISDoublet(create_logger_mock(), utc_properties) # Act results = doublet.calculateDoubletPerformance(input) @@ -222,8 +218,7 @@ class ThermoGISDoubletBenchmark(TestCase): """ # Arrange start_jvm() - Logger = JClass("logging.Logger") - Mockito = JClass("org.mockito.Mockito") + ThermoGISDoublet = JClass("thermogis.calc.utc.doublet.ThermoGisDoublet") DoubletInput = JClass("thermogis.calc.utc.doublet.Doublet.DoubletInput") @@ -252,7 +247,7 @@ class ThermoGISDoubletBenchmark(TestCase): temperature, None, # ates input ) - doublet = ThermoGISDoublet(Mockito.mock(Logger), utc_properties) + doublet = ThermoGISDoublet(create_logger_mock(), utc_properties) # Act results = doublet.calculateDoubletPerformance(input) @@ -274,8 +269,7 @@ class ThermoGISDoubletBenchmark(TestCase): """ # Arrange start_jvm() - Logger = JClass("logging.Logger") - Mockito = JClass("org.mockito.Mockito") + ThermoGISDoublet = JClass("thermogis.calc.utc.doublet.ThermoGisDoublet") DoubletInput = JClass("thermogis.calc.utc.doublet.Doublet.DoubletInput") @@ -305,7 +299,7 @@ class ThermoGISDoubletBenchmark(TestCase): temperature, None, # ates input ) - doublet = ThermoGISDoublet(Mockito.mock(Logger), utc_properties) + doublet = ThermoGISDoublet(create_logger_mock(), utc_properties) # Act results = doublet.calculateDoubletPerformance(input) diff --git a/tests/simulation/test_thermogis_scenarios.py b/tests/simulation/test_thermogis_scenarios.py index 0e713ed757e2f84f691d2f3b9c814037f2a9f5a7..727643f66936874180415fbaabf3b42ab3edc364 100644 --- a/tests/simulation/test_thermogis_scenarios.py +++ b/tests/simulation/test_thermogis_scenarios.py @@ -130,9 +130,9 @@ class PyThermoGIS(TestCase): xr.testing.assert_allclose(output_grids.utc, read_grid(benchmark_path / f"simplified__utc_P{p_value}{scenario}.nc"), atol=0.1) xr.testing.assert_allclose(output_grids.npv, read_grid(benchmark_path / f"simplified__npv_P{p_value}{scenario}.nc"), atol=0.75) xr.testing.assert_allclose(output_grids.hprod, read_grid(benchmark_path / f"simplified__hprod_P{p_value}{scenario}.nc"), atol=40000) - xr.testing.assert_allclose(output_grids.cop, read_grid(benchmark_path / f"simplified__cop_P{p_value}{scenario}.nc"), atol=1.0) + xr.testing.assert_allclose(output_grids.cop, read_grid(benchmark_path / f"simplified__cop_P{p_value}{scenario}.nc"), atol=2.0) xr.testing.assert_allclose(output_grids.pres, read_grid(benchmark_path / f"simplified__pres_P{p_value}{scenario}.nc"), atol=2.0) - xr.testing.assert_allclose(output_grids.flow_rate, read_grid(benchmark_path / f"simplified__flowr_P{p_value}{scenario}.nc"), atol=5) + xr.testing.assert_allclose(output_grids.flow_rate, read_grid(benchmark_path / f"simplified__flowr_P{p_value}{scenario}.nc"), atol=7) xr.testing.assert_allclose(output_grids.welld, read_grid(benchmark_path / f"simplified__welld_P{p_value}{scenario}.nc"), atol=30) def read_input_grids(self):