From 76f56abbd3706a932bece004d526ac2c6dafb54b Mon Sep 17 00:00:00 2001 From: bretth Date: Tue, 27 Jan 2026 12:58:52 +0100 Subject: [PATCH 1/8] Seeing how this change in the heat pump operation mode affects the tests and if it matches what Jan-Diederik desired in the test results --- .../thermogis_jar/thermogis-1.7.0-shaded.jar | 4 ++-- tests/java/test_ThermoGISDoublet_Benchmark.py | 20 ++++++++++++------- .../test_pythermogis_doublet_benchmark.py | 10 +++++++++- 3 files changed, 24 insertions(+), 10 deletions(-) diff --git a/src/pythermogis/thermogis_jar/thermogis-1.7.0-shaded.jar b/src/pythermogis/thermogis_jar/thermogis-1.7.0-shaded.jar index e9b30a8..15129c5 100644 --- a/src/pythermogis/thermogis_jar/thermogis-1.7.0-shaded.jar +++ b/src/pythermogis/thermogis_jar/thermogis-1.7.0-shaded.jar @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:207f0a0ecd48947dd4fdb2739edc17eaf60e1cd4351d06915adcc25d29b10e21 -size 173318007 +oid sha256:d81a747aece41f80173120b598d5538381012fe8bc50309792654e47a8536625 +size 172249038 diff --git a/tests/java/test_ThermoGISDoublet_Benchmark.py b/tests/java/test_ThermoGISDoublet_Benchmark.py index 9dac69b..dc99ed2 100644 --- a/tests/java/test_ThermoGISDoublet_Benchmark.py +++ b/tests/java/test_ThermoGISDoublet_Benchmark.py @@ -240,7 +240,6 @@ class ThermoGISDoubletBenchmark(TestCase): .setOpexPerPower(100) .setOpexBase(0) .setHpDirectHeatInputTemp(80) - #.setHpApplicationMode(True) .setUseHeatPump(True) .setDhReturnTemp(50) .setViscosityMode(ViscosityMode.KESTIN) @@ -252,21 +251,28 @@ class ThermoGISDoubletBenchmark(TestCase): temperature = 50 input = DoubletInput( - -999.0, # unknowninput + -999.0, # unknowninput thickness, transmissivity, - 0.0, # transmissivityWithNtg - 1.0, # ntg - 2000.0, # depth - 0.0,# porosity + 0.0, # transmissivityWithNtg + 1.0, # ntg + 2000.0, # depth + 0.0, # porosity temperature, - None, # ates input + None, # ates input ) doublet = ThermoGISDoublet(Mockito.mock(Logger), RNG(0), utc_properties) # Act results = doublet.calculateDoubletPerformance(input) + print(results.power()) + print(results.welld()) + print(results.cop()) + print(results.utc()) + print(results.capex()) + + # Assert self.assertTrue(np.isclose(17499.99940, transmissivity, 0.001)) self.assertTrue(np.isclose(163.99771118164062, results.flow(), 1)) diff --git a/tests/simulation/test_pythermogis_doublet_benchmark.py b/tests/simulation/test_pythermogis_doublet_benchmark.py index cc274af..5763a21 100644 --- a/tests/simulation/test_pythermogis_doublet_benchmark.py +++ b/tests/simulation/test_pythermogis_doublet_benchmark.py @@ -211,9 +211,17 @@ class ThermoGISDoubletBenchmark(TestCase): # Assert + print(results) + print(power_hpelec) + print(power_ratio) + + for name, da in results.data_vars.items(): + print(f"\nVariable: {name}") + print(da) + + self.assertTrue(np.isclose(5.856159806251526, results.power + power_hpelec, 0.1)) self.assertTrue(np.isclose(8.83718197747828, results.utc * power_ratio, 0.1)) - self.assertTrue(np.isclose(17499.99940, 17500, 0.001)) self.assertTrue(np.isclose(163.99771118164062, results.flow_rate, 0.001)) self.assertTrue(np.isclose(60, results.pres, 0.001)) self.assertTrue(np.isclose(4.97566556930542, results.power, 0.001)) -- GitLab From 58186eedbd5a72e5ca289ddf24a167c16fa23278 Mon Sep 17 00:00:00 2001 From: bretth Date: Wed, 28 Jan 2026 15:41:49 +0100 Subject: [PATCH 2/8] Updating the documenation around the heat pump --- docs/theory/energyconversion/directheatHP.md | 56 ++++++++++++++----- pixi.lock | 4 +- tests/java/test_ThermoGISDoublet_Benchmark.py | 2 +- 3 files changed, 46 insertions(+), 16 deletions(-) diff --git a/docs/theory/energyconversion/directheatHP.md b/docs/theory/energyconversion/directheatHP.md index 1486508..7baa8c3 100644 --- a/docs/theory/energyconversion/directheatHP.md +++ b/docs/theory/energyconversion/directheatHP.md @@ -3,22 +3,52 @@ ## Direct heat with industrial Heat Pump Below is a schematic representation of the direct heat production with an industrial heat pump system, - which effectively allows to increase outlet temperature for a district heating network, - relative to the geothermal source production temperature + which effectively allows the system to increase outlet temperature for a district heating network, + relative to the geothermal source production temperature. +### Determining the Injection Temperature ![Figure description](../../images/cartoon_heatpump.png) *Figure 2: a schematic representation of the system. -On the left is the primary circuit of geothermal brine with temperature Tprod, -assumed equal to the aquifer temperature Taq. -The temperature is first lowered by amount ΔT1 in the heat exchanger. -Next, the temperature is lowered by amount ΔT2 in the heat pump to the injection temperature Tinj. -On the right hand side is the district heating network. -The cool water returning from the network at temperature Tdh_out is first heated in the heat exchanger -to Tdh_out + ΔT1, and then by the heatpump to the heat network inlet temperature Tdh_in. -It is assumed that condenser and evaporator temperatures of the heatpump are respectively 3°C lower and higher -than the source and outlet temperature of the heat pump* +On the left is the primary circuit of geothermal brine while on the right is the circuit of the district-heating system. + +The model has four elements: +1. A Geothermal system, Tprod is the temperature of the water produced from the reservoir, while Tinj is the temperature of the water pumped back into the aquifer. +2. A District heating system, Tdh_out is the water that comes _from_ the district heating system, while Tdh_in is the water that goes _to_ the district heating system +3. A Heat Exchanger, which transfers heat from the production water of the Geothermal system to the district-heating system. +4. A Heat Pump, which consumes grid electricity to further heat up the district-heating water and cool the geothermal system water. + +When modelling the system: +1. The production temperature, Tprod, is assumed equal to the temperature of the reservoir. +2. The district heating return temperature, Tdh_out, is known (set by the user, default: 35°C) +2. The district heating input temperature, Tdh_in, is known (set by the user, default: 70°C) + +This leaves the Injection temperature Tinj, as the remaining unknown. +This is calculated using the equation: + +Tinj = Tprod - ΔT1 - ΔT2 + +where: + +ΔT1 = Tprod - Tdh_in, must be between 0 -> ΔTmax (user specified) +ΔT2 = Tdh_in - (Tdh_out + ΔT1) + +### Two simple examples + +Using the following input: Tprod = 60°C, Tdh_in = 70°C, Tdh_out = 35°C + +It is clear that the production temperature of the aquifer is not hot enough to fully supply the district-heating system. +First, the district heating system is heated by: + +ΔT1 = Tprod - Tdh_in, 60 - 70 = -10°C. This is below 0°C so ΔT1 = 0°C. +ΔT2 = Tdh_in - (Tdh_out + ΔT1) = Tdh_in - Tdh_out = 35°C + +Tinj = 60 - ΔT1 - ΔT2 = 25°C + + + +### Calculating the Coefficient of Performance (COP) The COP of the heat pump is given by the following equation: @@ -32,13 +62,13 @@ corrected for the conversion efficiency and any parasitic power losses. For direct heat it does not include added heat in the heatpump from the compressor. The reason not to include this is to account for geothermal energy only. This setting can be changed by setting +### Default values -Proposed parameters are the following: +Proposed default parameters are the following: | parameter | symbol | value | unit | |------------------------------------------------------------------------|----------------|--------|----------| | use heat pump | HPuse | True | bool | -| HP application target temperature is Tdh_in | HPapp | True | bool | | target district heat outlet temperature | Tdh_in | 80 | °C | | minimum aquifer production temperature | Tminprod | 40 | °C | | maximum cooling temperature for reinjection relative to reservoir (ΔT) | ΔTmax | 40-200 | °C | diff --git a/pixi.lock b/pixi.lock index d771c6c..2d40a23 100644 --- a/pixi.lock +++ b/pixi.lock @@ -4933,8 +4933,8 @@ packages: timestamp: 1740946648058 - pypi: ./ name: pythermogis - version: 1.2.4 - sha256: 4406d3c4da3a9e6ee46a39b7ce7b61063e676db495638f1f9d992ac174589913 + version: 1.2.5 + sha256: f7faf166eaa5141f37e7e96c2fc7f2c01cf26da4be5fc5164aa0c8c784614e2b requires_dist: - jpype1>=1.5.2,<2 - xarray==2024.9.0.* diff --git a/tests/java/test_ThermoGISDoublet_Benchmark.py b/tests/java/test_ThermoGISDoublet_Benchmark.py index dc99ed2..8edb6ae 100644 --- a/tests/java/test_ThermoGISDoublet_Benchmark.py +++ b/tests/java/test_ThermoGISDoublet_Benchmark.py @@ -221,7 +221,7 @@ class ThermoGISDoubletBenchmark(TestCase): self.assertTrue(np.isclose(10.401010755009017, results.utc(), 0.001)) self.assertTrue(np.isclose(16.50359210062243, results.capex(), 0.001)) - @pytest.mark.skip("This test requires a fix in the java core. ignore until fix is pushed") + # @pytest.mark.skip("This test requires a fix in the java core. ignore until fix is pushed") def test_calculateDoubletPerformance_directheatHP_App(self): """ This is a copy of a test from the Java ThermoGisDoubletTest.java script; to validate that this python implementation of the ThermoGIS Doublet -- GitLab From f22ec4258aa3256ff997ebb48c261519d62926f2 Mon Sep 17 00:00:00 2001 From: bretth Date: Thu, 29 Jan 2026 15:10:55 +0100 Subject: [PATCH 3/8] Updating the documenation around the heat pump --- docs/theory/energyconversion/directheatHP.md | 67 ++++++++++++++++--- .../thermogis_jar/thermogis-1.7.0-shaded.jar | 4 +- tests/java/test_ThermoGISDoublet_Benchmark.py | 29 ++++---- 3 files changed, 71 insertions(+), 29 deletions(-) diff --git a/docs/theory/energyconversion/directheatHP.md b/docs/theory/energyconversion/directheatHP.md index 7baa8c3..0981f0e 100644 --- a/docs/theory/energyconversion/directheatHP.md +++ b/docs/theory/energyconversion/directheatHP.md @@ -14,39 +14,86 @@ On the left is the primary circuit of geothermal brine while on the right is the circuit of the district-heating system. The model has four elements: + 1. A Geothermal system, Tprod is the temperature of the water produced from the reservoir, while Tinj is the temperature of the water pumped back into the aquifer. 2. A District heating system, Tdh_out is the water that comes _from_ the district heating system, while Tdh_in is the water that goes _to_ the district heating system 3. A Heat Exchanger, which transfers heat from the production water of the Geothermal system to the district-heating system. 4. A Heat Pump, which consumes grid electricity to further heat up the district-heating water and cool the geothermal system water. When modelling the system: + 1. The production temperature, Tprod, is assumed equal to the temperature of the reservoir. -2. The district heating return temperature, Tdh_out, is known (set by the user, default: 35°C) -2. The district heating input temperature, Tdh_in, is known (set by the user, default: 70°C) +2. The district heating return temperature, Tdh_out, is known (set by the user, default: 35°C). +3. The district heating input temperature, Tdh_in, is known (set by the user, default: 70°C). +4. The total difference between the district heating input and district heating return temperature, ΔT. +5. The minimum absolute injection temperature and the maximum temperature difference between reservoir and injection temperature is also specified by the user, and is used as a condition on the final injection temperature. This leaves the Injection temperature Tinj, as the remaining unknown. + This is calculated using the equation: Tinj = Tprod - ΔT1 - ΔT2 where: -ΔT1 = Tprod - Tdh_in, must be between 0 -> ΔTmax (user specified) +ΔT1 = Tprod - Tdh_out, must be between 0 -> ΔT (user specified) ΔT2 = Tdh_in - (Tdh_out + ΔT1) -### Two simple examples +The final Tinj is then corrected using an absolute and relative injection temperature boundary, ensuring the injection temperature is: + +- Always above the absolute minimum injection temperature +- The difference between Tprod - Tinj is never greater than the maximum allowed difference. + +### Example 1: Heat pump required + +Using the following input: + +- Tprod = 60°C +- Tdh_in = 70°C +- Tdh_out = 35°C +- ΔT = Tdh_in - Tdh_out = 35°C + +It is clear that the production temperature of the aquifer is not hot enough to fully supply the district-heating system without assistance from the heat pump, as the temperature from the aquifer is 10°C colder than the temperature required by the district heating systm. +This means that the extra heat will be provided by the heatpump. + +Transferred from geothermal heating system to district heating system: + +ΔT1 = Tprod - Tdh_out, 60°C - 35°C = 25°C. + +Heat additionally added by the heat pump to the district heating system: + +ΔT2 = Tdh_in - (Tdh_out + ΔT1) = 70°C - 60°C = 10°C + +Injection temperature is the production temperature minus the two deltas above: + +Tinj = Tprod - ΔT1 - ΔT2 = 60°C - 25°C - 10°C = 25°C + +### Example 2: Heat pump _not_ required + +What happens when the production temperature from the aquifer is hot enough that the heatpump is not required? + +- Tprod = 75°C +- Tdh_in = 70°C +- Tdh_out = 35°C +- ΔT = Tdh_in - Tdh_out = 35°C + +It is clear that the production temperature of the aquifer is not hot enough to fully supply the district-heating system without assistance from the heat pump, as the temperature from the aquifer is 10°C colder than the temperature required by the district heating systm. +This means that the extra heat will be provided by the heatpump. + +Transferred from geothermal heating system to district heating system: -Using the following input: Tprod = 60°C, Tdh_in = 70°C, Tdh_out = 35°C +ΔT1 = Tprod - Tdh_out, 75°C - 35°C = 40°C. +40°C < 35°C therefore ΔT1 = 35°C -It is clear that the production temperature of the aquifer is not hot enough to fully supply the district-heating system. -First, the district heating system is heated by: +This means that the heat exchanger is able to provide all the heat necessary to the district heating system. -ΔT1 = Tprod - Tdh_in, 60 - 70 = -10°C. This is below 0°C so ΔT1 = 0°C. -ΔT2 = Tdh_in - (Tdh_out + ΔT1) = Tdh_in - Tdh_out = 35°C +Heat additionally added by the heat pump to the district heating system: -Tinj = 60 - ΔT1 - ΔT2 = 25°C +ΔT2 = Tdh_in - (Tdh_out + ΔT1) = 70°C - (35°C + 35°C) = 0°C +Injection temperature is the production temperature minus the two deltas above: +Tinj = Tprod - ΔT1 - ΔT2 = 75°C - 35°C - 0°C = 35°C ### Calculating the Coefficient of Performance (COP) diff --git a/src/pythermogis/thermogis_jar/thermogis-1.7.0-shaded.jar b/src/pythermogis/thermogis_jar/thermogis-1.7.0-shaded.jar index 15129c5..93ece90 100644 --- a/src/pythermogis/thermogis_jar/thermogis-1.7.0-shaded.jar +++ b/src/pythermogis/thermogis_jar/thermogis-1.7.0-shaded.jar @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:d81a747aece41f80173120b598d5538381012fe8bc50309792654e47a8536625 -size 172249038 +oid sha256:eafa9c2c29793a6e2a3b911af23aa61b9d1a7fb1b4bace580a187b09a0e440e2 +size 172249400 diff --git a/tests/java/test_ThermoGISDoublet_Benchmark.py b/tests/java/test_ThermoGISDoublet_Benchmark.py index 8edb6ae..2543995 100644 --- a/tests/java/test_ThermoGISDoublet_Benchmark.py +++ b/tests/java/test_ThermoGISDoublet_Benchmark.py @@ -211,17 +211,17 @@ class ThermoGISDoubletBenchmark(TestCase): # Act results = doublet.calculateDoubletPerformance(input) + print(results) # Assert self.assertTrue(np.isclose(17499.99940, transmissivity, 0.001)) self.assertTrue(np.isclose(163.99771118164062, results.flow(), 1)) self.assertTrue(np.isclose(60, results.pres(), 0.001)) - self.assertTrue(np.isclose(4.97566556930542, results.power(), 0.001)) - self.assertTrue(np.isclose(989.2578125, results.welld(), 0.001)) - self.assertTrue(np.isclose(4.383212200392486, results.cop(), 0.001)) - self.assertTrue(np.isclose(10.401010755009017, results.utc(), 0.001)) - self.assertTrue(np.isclose(16.50359210062243, results.capex(), 0.001)) + self.assertTrue(np.isclose(5.6734843, results.power(), 0.001)) + self.assertTrue(np.isclose(955.27344, results.welld(), 0.001)) + self.assertTrue(np.isclose(3.8904712, results.cop(), 0.001)) + self.assertTrue(np.isclose(10.368587, results.utc(), 0.001)) + self.assertTrue(np.isclose(17.378712, results.capex(), 0.001)) - # @pytest.mark.skip("This test requires a fix in the java core. ignore until fix is pushed") def test_calculateDoubletPerformance_directheatHP_App(self): """ This is a copy of a test from the Java ThermoGisDoubletTest.java script; to validate that this python implementation of the ThermoGIS Doublet @@ -266,22 +266,17 @@ class ThermoGISDoubletBenchmark(TestCase): # Act results = doublet.calculateDoubletPerformance(input) - print(results.power()) - print(results.welld()) - print(results.cop()) - print(results.utc()) - print(results.capex()) - + print(results) # Assert self.assertTrue(np.isclose(17499.99940, transmissivity, 0.001)) self.assertTrue(np.isclose(163.99771118164062, results.flow(), 1)) self.assertTrue(np.isclose(60, results.pres(), 0.001)) - self.assertTrue(np.isclose(4.97566556930542, results.power(), 0.001)) - self.assertTrue(np.isclose(989.2578125, results.welld(), 0.001)) - self.assertTrue(np.isclose(4.383212200392486, results.cop(), 0.001)) - self.assertTrue(np.isclose(10.401010755009017, results.utc(), 0.001)) - self.assertTrue(np.isclose(16.50359210062243, results.capex(), 0.001)) + self.assertTrue(np.isclose(5.140035, results.power(), 0.001)) + self.assertTrue(np.isclose(977.9297, results.welld(), 0.001)) + self.assertTrue(np.isclose(2.7099774, results.cop(), 0.001)) + self.assertTrue(np.isclose(13.172601, results.utc(), 0.001)) + self.assertTrue(np.isclose(18.448061, results.capex(), 0.001)) def test_calculateDoubletPerformance_ORC(self): """ -- GitLab From 26132ce77a69b215cd73a75c0c05ab60aaa72009 Mon Sep 17 00:00:00 2001 From: bretth Date: Thu, 29 Jan 2026 15:24:50 +0100 Subject: [PATCH 4/8] Updating the documenation around the heat pump --- .../simulation/test_pythermogis_doublet_benchmark.py | 12 +++--------- tests/simulation/test_thermogis_scenarios.py | 5 +++-- 2 files changed, 6 insertions(+), 11 deletions(-) diff --git a/tests/simulation/test_pythermogis_doublet_benchmark.py b/tests/simulation/test_pythermogis_doublet_benchmark.py index 5763a21..436167c 100644 --- a/tests/simulation/test_pythermogis_doublet_benchmark.py +++ b/tests/simulation/test_pythermogis_doublet_benchmark.py @@ -1,5 +1,7 @@ from unittest import TestCase +import pytest + from pythermogis import * @@ -172,6 +174,7 @@ class ThermoGISDoubletBenchmark(TestCase): self.assertTrue(np.isclose(0.06459403120103477, results.cop.data[0], 0.001)) self.assertTrue(np.isclose(12.44409167482118, results.capex.data[0], 0.001)) + @pytest.mark.skip("Skipping while testing output") def test_calculateDoubletPerformance_directHeat_and_heatpump(self): """ This is a copy of a test from the Java ThermoGisDoubletTest.java script; to validate that this python implementation of the ThermoGIS Doublet @@ -211,15 +214,6 @@ class ThermoGISDoubletBenchmark(TestCase): # Assert - print(results) - print(power_hpelec) - print(power_ratio) - - for name, da in results.data_vars.items(): - print(f"\nVariable: {name}") - print(da) - - self.assertTrue(np.isclose(5.856159806251526, results.power + power_hpelec, 0.1)) self.assertTrue(np.isclose(8.83718197747828, results.utc * power_ratio, 0.1)) self.assertTrue(np.isclose(163.99771118164062, results.flow_rate, 0.001)) diff --git a/tests/simulation/test_thermogis_scenarios.py b/tests/simulation/test_thermogis_scenarios.py index ae63b42..a645a15 100644 --- a/tests/simulation/test_thermogis_scenarios.py +++ b/tests/simulation/test_thermogis_scenarios.py @@ -1,5 +1,4 @@ -import shutil -from os import path +import pytest from unittest import TestCase from pygridsio import read_grid @@ -41,6 +40,7 @@ class PyThermoGIS(TestCase): output_grids_p_value = output_grids_p_value.drop_vars("p_value") self.assert_output_and_benchmark_is_close(self.test_benchmark_output_basecase, output_grids_p_value, p_value, "") + @pytest.mark.skip("Skipping while testing output") def test_doublet_grid_HP(self): # This tests that the python API produces (approximately) the same output as the Java code, when running on the same set of input data for the heat pump scenario # Instantiate UTC properties, and set useHeatPump to True @@ -72,6 +72,7 @@ class PyThermoGIS(TestCase): output_grids_p_value = output_grids_p_value.drop_vars("p_value") self.assert_output_and_benchmark_is_close(self.test_benchmark_output_STIM, output_grids_p_value, p_value, "_STIM") + @pytest.mark.skip("Skipping while testing output") def test_doublet_grid_HP_STIM(self): # This tests that the python API produces (approximately) the same output as the Java code, when running on the same set of input data for the heat pump and stimulation scenario # Instantiate UTC properties, and set useStim to True -- GitLab From 004c9cf7e5a58a33d9de4f135ca675d904f5b9a3 Mon Sep 17 00:00:00 2001 From: bretth Date: Thu, 29 Jan 2026 15:57:26 +0100 Subject: [PATCH 5/8] making a beta version --- pyproject.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pyproject.toml b/pyproject.toml index 90e1552..a8e3271 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta" [project] name = "pythermogis" -version = "1.2.5" +version = "beta" description = "This repository is used as a python API for the ThermoGIS Doublet simulations" authors = [ { name = "Hen Brett", email = "hen.brett@tno.nl" }, -- GitLab From b884b2f54d5b80f5ad3d072b4c925d59a9f8bbac Mon Sep 17 00:00:00 2001 From: bretth Date: Fri, 30 Jan 2026 11:34:38 +0100 Subject: [PATCH 6/8] Fixing the tests with the latest Heatpump module --- docs/changelog.md | 6 ++ pixi.lock | 4 +- pyproject.toml | 3 +- .../thermogis_jar/thermogis-1.7.0-shaded.jar | 4 +- .../HP/simplified__50yearcooling_P10_HP.nc | Bin 0 -> 2368 bytes .../HP/simplified__50yearcooling_P50_HP.nc | Bin 0 -> 2368 bytes .../HP/simplified__50yearcooling_P90_HP.nc | Bin 0 -> 2368 bytes .../HP/simplified__breakthrough_P10_HP.nc | Bin 0 -> 2368 bytes .../HP/simplified__breakthrough_P50_HP.nc | Bin 0 -> 2368 bytes .../HP/simplified__breakthrough_P90_HP.nc | Bin 0 -> 2368 bytes .../doublet/HP/simplified__capex_P10_HP.nc | Bin 0 -> 2368 bytes .../doublet/HP/simplified__capex_P50_HP.nc | Bin 0 -> 2368 bytes .../doublet/HP/simplified__capex_P90_HP.nc | Bin 0 -> 2368 bytes .../doublet/HP/simplified__cop_P10_HP.nc | Bin 9412 -> 2368 bytes .../doublet/HP/simplified__cop_P50_HP.nc | Bin 9412 -> 2368 bytes .../doublet/HP/simplified__cop_P90_HP.nc | Bin 9412 -> 2368 bytes .../HP/simplified__fixedopex_P10_HP.nc | Bin 0 -> 2368 bytes .../HP/simplified__fixedopex_P50_HP.nc | Bin 0 -> 2368 bytes .../HP/simplified__fixedopex_P90_HP.nc | Bin 0 -> 2368 bytes .../doublet/HP/simplified__flowr_P10_HP.nc | Bin 2368 -> 2368 bytes .../doublet/HP/simplified__flowr_P50_HP.nc | Bin 2368 -> 2368 bytes .../doublet/HP/simplified__flowr_P90_HP.nc | Bin 2368 -> 2368 bytes .../doublet/HP/simplified__h_P10_HP.nc | Bin 2368 -> 2368 bytes .../doublet/HP/simplified__h_P50_HP.nc | Bin 2368 -> 2368 bytes .../doublet/HP/simplified__h_P90_HP.nc | Bin 2368 -> 2368 bytes .../HP/simplified__h_sampled_lod_HP.nc | Bin 2368 -> 2368 bytes .../doublet/HP/simplified__hc_accum_HP.nc | Bin 2368 -> 2368 bytes .../doublet/HP/simplified__hprod_P10_HP.nc | Bin 2368 -> 2368 bytes .../doublet/HP/simplified__hprod_P50_HP.nc | Bin 2368 -> 2368 bytes .../doublet/HP/simplified__hprod_P90_HP.nc | Bin 2368 -> 2368 bytes .../doublet/HP/simplified__k_P10_HP.nc | Bin 2368 -> 2368 bytes .../doublet/HP/simplified__k_P50_HP.nc | Bin 2368 -> 2368 bytes .../doublet/HP/simplified__k_P90_HP.nc | Bin 2368 -> 2368 bytes .../doublet/HP/simplified__kh_P10_HP.nc | Bin 2368 -> 2368 bytes .../doublet/HP/simplified__kh_P50_HP.nc | Bin 2368 -> 2368 bytes .../doublet/HP/simplified__kh_P90_HP.nc | Bin 2368 -> 2368 bytes .../doublet/HP/simplified__npv_P10_HP.nc | Bin 2368 -> 2368 bytes .../doublet/HP/simplified__npv_P50_HP.nc | Bin 2368 -> 2368 bytes .../doublet/HP/simplified__npv_P90_HP.nc | Bin 2368 -> 2368 bytes .../doublet/HP/simplified__ntg_HP.nc | Bin 2368 -> 2368 bytes .../doublet/HP/simplified__opex_P10_HP.nc | Bin 0 -> 2368 bytes .../doublet/HP/simplified__opex_P50_HP.nc | Bin 0 -> 2368 bytes .../doublet/HP/simplified__opex_P90_HP.nc | Bin 0 -> 2368 bytes .../doublet/HP/simplified__porosity_HP.nc | Bin 2368 -> 2368 bytes .../doublet/HP/simplified__power_P10_HP.nc | Bin 2368 -> 2368 bytes .../doublet/HP/simplified__power_P50_HP.nc | Bin 2368 -> 2368 bytes .../doublet/HP/simplified__power_P90_HP.nc | Bin 2368 -> 2368 bytes .../HP/simplified__power_heatpump_P10_HP.nc | Bin 2368 -> 2368 bytes .../HP/simplified__power_heatpump_P50_HP.nc | Bin 2368 -> 2368 bytes .../HP/simplified__power_heatpump_P90_HP.nc | Bin 2368 -> 2368 bytes .../doublet/HP/simplified__pres_P10_HP.nc | Bin 2368 -> 2368 bytes .../doublet/HP/simplified__pres_P50_HP.nc | Bin 2368 -> 2368 bytes .../doublet/HP/simplified__pres_P90_HP.nc | Bin 2368 -> 2368 bytes .../doublet/HP/simplified__temperature_HP.nc | Bin 2368 -> 2368 bytes .../doublet/HP/simplified__top_depth_HP.nc | Bin 2368 -> 2368 bytes .../doublet/HP/simplified__utc_P10_HP.nc | Bin 2368 -> 2368 bytes .../doublet/HP/simplified__utc_P50_HP.nc | Bin 2368 -> 2368 bytes .../doublet/HP/simplified__utc_P90_HP.nc | Bin 2368 -> 2368 bytes .../doublet/HP/simplified__varopex_P10_HP.nc | Bin 0 -> 2368 bytes .../doublet/HP/simplified__varopex_P50_HP.nc | Bin 0 -> 2368 bytes .../doublet/HP/simplified__varopex_P90_HP.nc | Bin 0 -> 2368 bytes .../doublet/HP/simplified__welld_P10_HP.nc | Bin 2368 -> 2368 bytes .../doublet/HP/simplified__welld_P50_HP.nc | Bin 2368 -> 2368 bytes .../doublet/HP/simplified__welld_P90_HP.nc | Bin 2368 -> 2368 bytes .../simplified__50yearcooling_P10_HP_STIM.nc | Bin 0 -> 2368 bytes .../simplified__50yearcooling_P50_HP_STIM.nc | Bin 0 -> 2368 bytes .../simplified__50yearcooling_P90_HP_STIM.nc | Bin 0 -> 2368 bytes .../simplified__breakthrough_P10_HP_STIM.nc | Bin 0 -> 2368 bytes .../simplified__breakthrough_P50_HP_STIM.nc | Bin 0 -> 2368 bytes .../simplified__breakthrough_P90_HP_STIM.nc | Bin 0 -> 2368 bytes .../HP_STIM/simplified__capex_P10_HP_STIM.nc | Bin 0 -> 2368 bytes .../HP_STIM/simplified__capex_P50_HP_STIM.nc | Bin 0 -> 2368 bytes .../HP_STIM/simplified__capex_P90_HP_STIM.nc | Bin 0 -> 2368 bytes .../HP_STIM/simplified__cop_P10_HP_STIM.nc | Bin 9412 -> 2368 bytes .../HP_STIM/simplified__cop_P50_HP_STIM.nc | Bin 9412 -> 2368 bytes .../HP_STIM/simplified__cop_P90_HP_STIM.nc | Bin 9412 -> 2368 bytes .../simplified__fixedopex_P10_HP_STIM.nc | Bin 0 -> 2368 bytes .../simplified__fixedopex_P50_HP_STIM.nc | Bin 0 -> 2368 bytes .../simplified__fixedopex_P90_HP_STIM.nc | Bin 0 -> 2368 bytes .../HP_STIM/simplified__flowr_P10_HP_STIM.nc | Bin 2368 -> 2368 bytes .../HP_STIM/simplified__flowr_P50_HP_STIM.nc | Bin 2368 -> 2368 bytes .../HP_STIM/simplified__flowr_P90_HP_STIM.nc | Bin 2368 -> 2368 bytes .../HP_STIM/simplified__h_P10_HP_STIM.nc | Bin 2368 -> 2368 bytes .../HP_STIM/simplified__h_P50_HP_STIM.nc | Bin 2368 -> 2368 bytes .../HP_STIM/simplified__h_P90_HP_STIM.nc | Bin 2368 -> 2368 bytes .../simplified__h_sampled_lod_HP_STIM.nc | Bin 2368 -> 2368 bytes .../HP_STIM/simplified__hc_accum_HP_STIM.nc | Bin 2368 -> 2368 bytes .../HP_STIM/simplified__hprod_P10_HP_STIM.nc | Bin 2368 -> 2368 bytes .../HP_STIM/simplified__hprod_P50_HP_STIM.nc | Bin 2368 -> 2368 bytes .../HP_STIM/simplified__hprod_P90_HP_STIM.nc | Bin 2368 -> 2368 bytes .../HP_STIM/simplified__k_P10_HP_STIM.nc | Bin 2368 -> 2368 bytes .../HP_STIM/simplified__k_P50_HP_STIM.nc | Bin 2368 -> 2368 bytes .../HP_STIM/simplified__k_P90_HP_STIM.nc | Bin 2368 -> 2368 bytes .../HP_STIM/simplified__kh_P10_HP_STIM.nc | Bin 2368 -> 2368 bytes .../HP_STIM/simplified__kh_P50_HP_STIM.nc | Bin 2368 -> 2368 bytes .../HP_STIM/simplified__kh_P90_HP_STIM.nc | Bin 2368 -> 2368 bytes .../HP_STIM/simplified__npv_P10_HP_STIM.nc | Bin 2368 -> 2368 bytes .../HP_STIM/simplified__npv_P50_HP_STIM.nc | Bin 2368 -> 2368 bytes .../HP_STIM/simplified__npv_P90_HP_STIM.nc | Bin 2368 -> 2368 bytes .../HP_STIM/simplified__ntg_HP_STIM.nc | Bin 2368 -> 2368 bytes .../HP_STIM/simplified__opex_P10_HP_STIM.nc | Bin 0 -> 2368 bytes .../HP_STIM/simplified__opex_P50_HP_STIM.nc | Bin 0 -> 2368 bytes .../HP_STIM/simplified__opex_P90_HP_STIM.nc | Bin 0 -> 2368 bytes .../HP_STIM/simplified__porosity_HP_STIM.nc | Bin 2368 -> 2368 bytes .../HP_STIM/simplified__power_P10_HP_STIM.nc | Bin 2368 -> 2368 bytes .../HP_STIM/simplified__power_P50_HP_STIM.nc | Bin 2368 -> 2368 bytes .../HP_STIM/simplified__power_P90_HP_STIM.nc | Bin 2368 -> 2368 bytes .../simplified__power_heatpump_P10_HP_STIM.nc | Bin 2368 -> 2368 bytes .../simplified__power_heatpump_P50_HP_STIM.nc | Bin 2368 -> 2368 bytes .../simplified__power_heatpump_P90_HP_STIM.nc | Bin 2368 -> 2368 bytes .../HP_STIM/simplified__pres_P10_HP_STIM.nc | Bin 2368 -> 2368 bytes .../HP_STIM/simplified__pres_P50_HP_STIM.nc | Bin 2368 -> 2368 bytes .../HP_STIM/simplified__pres_P90_HP_STIM.nc | Bin 2368 -> 2368 bytes .../simplified__temperature_HP_STIM.nc | Bin 2368 -> 2368 bytes .../HP_STIM/simplified__top_depth_HP_STIM.nc | Bin 2368 -> 2368 bytes .../HP_STIM/simplified__utc_P10_HP_STIM.nc | Bin 2368 -> 2368 bytes .../HP_STIM/simplified__utc_P50_HP_STIM.nc | Bin 2368 -> 2368 bytes .../HP_STIM/simplified__utc_P90_HP_STIM.nc | Bin 2368 -> 2368 bytes .../simplified__varopex_P10_HP_STIM.nc | Bin 0 -> 2368 bytes .../simplified__varopex_P50_HP_STIM.nc | Bin 0 -> 2368 bytes .../simplified__varopex_P90_HP_STIM.nc | Bin 0 -> 2368 bytes .../HP_STIM/simplified__welld_P10_HP_STIM.nc | Bin 2368 -> 2368 bytes .../HP_STIM/simplified__welld_P50_HP_STIM.nc | Bin 2368 -> 2368 bytes .../HP_STIM/simplified__welld_P90_HP_STIM.nc | Bin 2368 -> 2368 bytes .../test_pythermogis_doublet_benchmark.py | 64 +++++++++++++++--- tests/simulation/test_thermogis_scenarios.py | 2 - 126 files changed, 64 insertions(+), 19 deletions(-) create mode 100644 tests/resources/test_benchmark_output/doublet/HP/simplified__50yearcooling_P10_HP.nc create mode 100644 tests/resources/test_benchmark_output/doublet/HP/simplified__50yearcooling_P50_HP.nc create mode 100644 tests/resources/test_benchmark_output/doublet/HP/simplified__50yearcooling_P90_HP.nc create mode 100644 tests/resources/test_benchmark_output/doublet/HP/simplified__breakthrough_P10_HP.nc create mode 100644 tests/resources/test_benchmark_output/doublet/HP/simplified__breakthrough_P50_HP.nc create mode 100644 tests/resources/test_benchmark_output/doublet/HP/simplified__breakthrough_P90_HP.nc create mode 100644 tests/resources/test_benchmark_output/doublet/HP/simplified__capex_P10_HP.nc create mode 100644 tests/resources/test_benchmark_output/doublet/HP/simplified__capex_P50_HP.nc create mode 100644 tests/resources/test_benchmark_output/doublet/HP/simplified__capex_P90_HP.nc create mode 100644 tests/resources/test_benchmark_output/doublet/HP/simplified__fixedopex_P10_HP.nc create mode 100644 tests/resources/test_benchmark_output/doublet/HP/simplified__fixedopex_P50_HP.nc create mode 100644 tests/resources/test_benchmark_output/doublet/HP/simplified__fixedopex_P90_HP.nc create mode 100644 tests/resources/test_benchmark_output/doublet/HP/simplified__opex_P10_HP.nc create mode 100644 tests/resources/test_benchmark_output/doublet/HP/simplified__opex_P50_HP.nc create mode 100644 tests/resources/test_benchmark_output/doublet/HP/simplified__opex_P90_HP.nc create mode 100644 tests/resources/test_benchmark_output/doublet/HP/simplified__varopex_P10_HP.nc create mode 100644 tests/resources/test_benchmark_output/doublet/HP/simplified__varopex_P50_HP.nc create mode 100644 tests/resources/test_benchmark_output/doublet/HP/simplified__varopex_P90_HP.nc create mode 100644 tests/resources/test_benchmark_output/doublet/HP_STIM/simplified__50yearcooling_P10_HP_STIM.nc create mode 100644 tests/resources/test_benchmark_output/doublet/HP_STIM/simplified__50yearcooling_P50_HP_STIM.nc create mode 100644 tests/resources/test_benchmark_output/doublet/HP_STIM/simplified__50yearcooling_P90_HP_STIM.nc create mode 100644 tests/resources/test_benchmark_output/doublet/HP_STIM/simplified__breakthrough_P10_HP_STIM.nc create mode 100644 tests/resources/test_benchmark_output/doublet/HP_STIM/simplified__breakthrough_P50_HP_STIM.nc create mode 100644 tests/resources/test_benchmark_output/doublet/HP_STIM/simplified__breakthrough_P90_HP_STIM.nc create mode 100644 tests/resources/test_benchmark_output/doublet/HP_STIM/simplified__capex_P10_HP_STIM.nc create mode 100644 tests/resources/test_benchmark_output/doublet/HP_STIM/simplified__capex_P50_HP_STIM.nc create mode 100644 tests/resources/test_benchmark_output/doublet/HP_STIM/simplified__capex_P90_HP_STIM.nc create mode 100644 tests/resources/test_benchmark_output/doublet/HP_STIM/simplified__fixedopex_P10_HP_STIM.nc create mode 100644 tests/resources/test_benchmark_output/doublet/HP_STIM/simplified__fixedopex_P50_HP_STIM.nc create mode 100644 tests/resources/test_benchmark_output/doublet/HP_STIM/simplified__fixedopex_P90_HP_STIM.nc create mode 100644 tests/resources/test_benchmark_output/doublet/HP_STIM/simplified__opex_P10_HP_STIM.nc create mode 100644 tests/resources/test_benchmark_output/doublet/HP_STIM/simplified__opex_P50_HP_STIM.nc create mode 100644 tests/resources/test_benchmark_output/doublet/HP_STIM/simplified__opex_P90_HP_STIM.nc create mode 100644 tests/resources/test_benchmark_output/doublet/HP_STIM/simplified__varopex_P10_HP_STIM.nc create mode 100644 tests/resources/test_benchmark_output/doublet/HP_STIM/simplified__varopex_P50_HP_STIM.nc create mode 100644 tests/resources/test_benchmark_output/doublet/HP_STIM/simplified__varopex_P90_HP_STIM.nc diff --git a/docs/changelog.md b/docs/changelog.md index 6bd4abb..f33de6d 100644 --- a/docs/changelog.md +++ b/docs/changelog.md @@ -1,5 +1,11 @@ # Change log +## v1.3.0 (30-1-2026) + +- After an issue was flagged with the heat pump module changes were implemented in the core java code, tested using the ThermoGIS Automated workflow and the GA4A projects. +The ThermoGIS Jar has been updated and the documentation on the heatpump greatly expanded. +- The tests on the GA4A scenario XML have been extended to test expected values. + ## v1.2.5 (26-1-2026) A java 17 virtual machine is now automatically installed the first time a pythermogis simulation is run. This uses the [install-jdk](https://pypi.org/project/install-jdk/) python project. diff --git a/pixi.lock b/pixi.lock index 2d40a23..0fc376b 100644 --- a/pixi.lock +++ b/pixi.lock @@ -4933,8 +4933,8 @@ packages: timestamp: 1740946648058 - pypi: ./ name: pythermogis - version: 1.2.5 - sha256: f7faf166eaa5141f37e7e96c2fc7f2c01cf26da4be5fc5164aa0c8c784614e2b + version: 1.3.0 + sha256: 169b880567fe4471034ed3da760808a570dc917f794bfb0b978998f5bdf23785 requires_dist: - jpype1>=1.5.2,<2 - xarray==2024.9.0.* diff --git a/pyproject.toml b/pyproject.toml index a8e3271..ebff6b9 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta" [project] name = "pythermogis" -version = "beta" +version = "1.3.0" description = "This repository is used as a python API for the ThermoGIS Doublet simulations" authors = [ { name = "Hen Brett", email = "hen.brett@tno.nl" }, @@ -21,7 +21,6 @@ dependencies = [ "pytz>=2024.1,<2025", "build>=1.2.2.post1,<2", "pygridsio>=1.0,<2.0", - "python-dotenv>=1.2.1,<2", "dask>=2025.5.1,<2026", "install-jdk==1.1.0" ] diff --git a/src/pythermogis/thermogis_jar/thermogis-1.7.0-shaded.jar b/src/pythermogis/thermogis_jar/thermogis-1.7.0-shaded.jar index 93ece90..fc6552f 100644 --- a/src/pythermogis/thermogis_jar/thermogis-1.7.0-shaded.jar +++ b/src/pythermogis/thermogis_jar/thermogis-1.7.0-shaded.jar @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:eafa9c2c29793a6e2a3b911af23aa61b9d1a7fb1b4bace580a187b09a0e440e2 -size 172249400 +oid sha256:7bb756dd1bef93ebc739f5987d87f0552d24d2fa5b144a6e218966db2db9efbc +size 172249408 diff --git a/tests/resources/test_benchmark_output/doublet/HP/simplified__50yearcooling_P10_HP.nc b/tests/resources/test_benchmark_output/doublet/HP/simplified__50yearcooling_P10_HP.nc new file mode 100644 index 0000000000000000000000000000000000000000..b29aac9e91a758e864c338536df8e2930dae06c1 GIT binary patch literal 2368 zcmZ>EabskF04@dw1||ju2F3~qpBcoiM6e+&1_o{h1_l-oPDw0Dgz14w@-Q$kfb?i%(9?D=A9MiO)?f%1p^jgakhW8z`(CM0-A(R_+6(HQuzuoZ{5@)WqTv zNWx%XfT(d~dVK)oCWDHC^J11#cnU* zzk=&q)-W(IC=@3r=A_1_B_@~T7sV%*U~@9q9{czI?QR()&0}C-P(;^*&n_f=*zygZ zb5O8CN@`kWUM4(!N~45fK~ZLIDoO}~-2?SAh~h6!&CQI@P0RxMpdu5TO2KLzBZA+0 zzHXIgU|YL0@Tg^8h(j+wE!xv{0Wo}sC!j*+FMo}sCcg`tr}Y^+W|kf*P!Z?uwo zQEF;ld1i8kl8!;FPN<(}NVHN)YI;#>s*;X@o`IpciK(%XrID$jrKO3nv5sSCh=+fW zXGmnUl50S)yONHQrJ<3LQfw?1851K5OOOo6f3D6Up8kH(O8(HYC>XgcQi|0Ha13(v zbq#S1idI5SVvuyDq+@ENXJ~3>Xl7sv24*N4(6fM&j;Wrpg}Irr1r%7KC`V3OAU|4K zT3Q;IqpE>q1!#6r(lInOH83zhF$JOmmRXc^Ow5eIN+2Pan_5zos-$BWtK%5q862(T z3dwj%INM+Tn3e%?~L`%qvdIF9KDop!S4?k%h6jo`JcciGrblfq{a7f|;>}sim==iHV^R zC{tKkDi|o}T3TA_L3mJ70otx$VPN32acE#*z=lBy6ejMdz`)?RfPumB0|Nsx8>9vR DRr6Wg literal 0 HcmV?d00001 diff --git a/tests/resources/test_benchmark_output/doublet/HP/simplified__50yearcooling_P50_HP.nc b/tests/resources/test_benchmark_output/doublet/HP/simplified__50yearcooling_P50_HP.nc new file mode 100644 index 0000000000000000000000000000000000000000..b29aac9e91a758e864c338536df8e2930dae06c1 GIT binary patch literal 2368 zcmZ>EabskF04@dw1||ju2F3~qpBcoiM6e+&1_o{h1_l-oPDw0Dgz14w@-Q$kfb?i%(9?D=A9MiO)?f%1p^jgakhW8z`(CM0-A(R_+6(HQuzuoZ{5@)WqTv zNWx%XfT(d~dVK)oCWDHC^J11#cnU* zzk=&q)-W(IC=@3r=A_1_B_@~T7sV%*U~@9q9{czI?QR()&0}C-P(;^*&n_f=*zygZ zb5O8CN@`kWUM4(!N~45fK~ZLIDoO}~-2?SAh~h6!&CQI@P0RxMpdu5TO2KLzBZA+0 zzHXIgU|YL0@Tg^8h(j+wE!xv{0Wo}sC!j*+FMo}sCcg`tr}Y^+W|kf*P!Z?uwo zQEF;ld1i8kl8!;FPN<(}NVHN)YI;#>s*;X@o`IpciK(%XrID$jrKO3nv5sSCh=+fW zXGmnUl50S)yONHQrJ<3LQfw?1851K5OOOo6f3D6Up8kH(O8(HYC>XgcQi|0Ha13(v zbq#S1idI5SVvuyDq+@ENXJ~3>Xl7sv24*N4(6fM&j;Wrpg}Irr1r%7KC`V3OAU|4K zT3Q;IqpE>q1!#6r(lInOH83zhF$JOmmRXc^Ow5eIN+2Pan_5zos-$BWtK%5q862(T z3dwj%INM+Tn3e%?~L`%qvdIF9KDop!S4?k%h6jo`JcciGrblfq{a7f|;>}sim==iHV^R zC{tKkDi|o}T3TA_L3mJ70otx$VPN32acE#*z=lBy6ejMdz`)?RfPumB0|Nsx8>9vR DRr6Wg literal 0 HcmV?d00001 diff --git a/tests/resources/test_benchmark_output/doublet/HP/simplified__50yearcooling_P90_HP.nc b/tests/resources/test_benchmark_output/doublet/HP/simplified__50yearcooling_P90_HP.nc new file mode 100644 index 0000000000000000000000000000000000000000..b29aac9e91a758e864c338536df8e2930dae06c1 GIT binary patch literal 2368 zcmZ>EabskF04@dw1||ju2F3~qpBcoiM6e+&1_o{h1_l-oPDw0Dgz14w@-Q$kfb?i%(9?D=A9MiO)?f%1p^jgakhW8z`(CM0-A(R_+6(HQuzuoZ{5@)WqTv zNWx%XfT(d~dVK)oCWDHC^J11#cnU* zzk=&q)-W(IC=@3r=A_1_B_@~T7sV%*U~@9q9{czI?QR()&0}C-P(;^*&n_f=*zygZ zb5O8CN@`kWUM4(!N~45fK~ZLIDoO}~-2?SAh~h6!&CQI@P0RxMpdu5TO2KLzBZA+0 zzHXIgU|YL0@Tg^8h(j+wE!xv{0Wo}sC!j*+FMo}sCcg`tr}Y^+W|kf*P!Z?uwo zQEF;ld1i8kl8!;FPN<(}NVHN)YI;#>s*;X@o`IpciK(%XrID$jrKO3nv5sSCh=+fW zXGmnUl50S)yONHQrJ<3LQfw?1851K5OOOo6f3D6Up8kH(O8(HYC>XgcQi|0Ha13(v zbq#S1idI5SVvuyDq+@ENXJ~3>Xl7sv24*N4(6fM&j;Wrpg}Irr1r%7KC`V3OAU|4K zT3Q;IqpE>q1!#6r(lInOH83zhF$JOmmRXc^Ow5eIN+2Pan_5zos-$BWtK%5q862(T z3dwj%INM+Tn3e%?~L`%qvdIF9KDop!S4?k%h6jo`JcciGrblfq{a7f|;>}sim==iHV^R zC{tKkDi|o}T3TA_L3mJ70otx$VPN32acE#*z=lBy6ejMdz`)?RfPumB0|Nsx8>9vR DRr6Wg literal 0 HcmV?d00001 diff --git a/tests/resources/test_benchmark_output/doublet/HP/simplified__breakthrough_P10_HP.nc b/tests/resources/test_benchmark_output/doublet/HP/simplified__breakthrough_P10_HP.nc new file mode 100644 index 0000000000000000000000000000000000000000..86c34882d161e72ebe5915b4fd5476a7ac250720 GIT binary patch literal 2368 zcmZ>EabskF04@dw1||ju2F3~qpBcoiM6e+&1_o{h1_l-oPDw0Dgz14w@-Q$kfb?i%(9?D=A9MiO)?f%1p^jgakhW8z`(CM0-A(R_+6(HQuzuoZ{5@)WqTv zNWx%XfT(d~dVK)oCWDHC^J11#cnU* zzk=&q)-W(IC=@3r=A_1_B_@~T7sV%*U~@9q9{czI?QR()&0}C-P(;^*&n_f=*zygZ zb5O8CN@`kWUM4(!N~45fK~ZLIDoO}~-2?SAh~h6!&CQI@P0RxMpdu5TO2KLzBZA+0 zzHXIgU|YL0@Tg^8h(j+wE!xv{0Wo}sC!j*+FMo}sCcg`tr}Y^+W|kf*P!Z?uwo zQEF;ld1i8kl8!;FPN<(}NVHN)YI;#>s*;X@o`IpciK(%XrID$jrKO3nv5sSCh=+fW zXGmnUl50S)yONHQrJ<3LQfw?1851K5OOOo6f3D6Up8kH(O8(HYC>XgcQi|0Ha13(v zbq#S1idI5SVvuyDq+@ENXJ~3>Xl7sv24*N4(6fM&j;Wrpg}Irr1r%7KC`V3OAU|4K zT3Q;IqpE>q1!#6r(lInOH83zhF$JOmmRXc^Ow5eIN+2Pan_5zos-$BWtK%5q862(T z3dwj%INM+Tn3e%?~L`%qvdIF9KDop!S4?k%h6jo`JcciGrblfq{a7f|;>}sim==iHV^R zC{tKkDi|o}T3TA_L3mJ70otx$VPN32ak5L#b+Rurb+W&8!^wV@qm%v22q*h#;QGSJ c@&A1%d+&vg3JeU63m6z2KQJ&Lvq6a%0D|0Lq5uE@ literal 0 HcmV?d00001 diff --git a/tests/resources/test_benchmark_output/doublet/HP/simplified__breakthrough_P50_HP.nc b/tests/resources/test_benchmark_output/doublet/HP/simplified__breakthrough_P50_HP.nc new file mode 100644 index 0000000000000000000000000000000000000000..358250753befe084cb9a11ecc5d26b222d9c5210 GIT binary patch literal 2368 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 literal 0 HcmV?d00001 diff --git a/tests/resources/test_benchmark_output/doublet/HP/simplified__capex_P50_HP.nc b/tests/resources/test_benchmark_output/doublet/HP/simplified__capex_P50_HP.nc new file mode 100644 index 0000000000000000000000000000000000000000..bee08c1236fb526f7fcc051b8c8ea37c3cc70418 GIT binary patch literal 2368 zcmZ>EabskF04@dw1||ju2F3~qpBcoiM6e+&1_o{h1_l-oPDw0Dgz14w@-Q$kfb?i%(9?D=A9MiO)?f%1p^jgakhW8z`(CM0-A(R_+6(HQuzuoZ{5@)WqTv zNWx%XfT(d~dVK)oCWDHC^J11#cnU* zzk=&q)-W(IC=@3r=A_1_B_@~T7sV%*U~@9q9{czI?QR()&0}C-P(;^*&n_f=*zygZ zb5O8CN@`kWUM4(!N~45fK~ZLIDoO}~-2?SAh~h6!&CQI@P0RxMpdu5TO2KLzBZA+0 zzHXIgU|YL0@Tg^8h(j+wE!xv{0Wo}sC!j*+FMo}sCcg`tr}Y^+W|kf*P!Z?uwo zQEF;ld1i8kl8!;FPN<(}NVHN)YI;#>s*;X@o`IpciK(%XrID$jrKO3nv5sSCh=+fW zXGmnUl50S)yONHQrJ<3LQfw?1851K5OOOo6f3D6Up8kH(O8(HYC>XgcQi|0Ha13(v zbq#S1idI5SVvuyDq+@ENXJ~3>Xl7sv24*N4(6fM&j;Wrpg}Irr1r%7KC`V3OAU|4K zT3Q;IqpE>q1!#6r(lInOH83zhF$JOmmRXc^Ow5eIN+2Pan_5zos-$BWtK%5q862(T z3dwj%INM+Tn3e%?~L`%qvdIF9KDop!S4?k%h6jo`JcciGrblfq{a7f|;>}sim==iHV^R zC{tKkDi|o}T3TA_L3mJ70otx$VPN32aa>rf=(zC0HOEDqnT`uDhBz+r*LGaww+xg( d9Vb4IbDX{Rp`!u=gX01Q2FDK!49IMd8UXV-V*>yH literal 0 HcmV?d00001 diff --git a/tests/resources/test_benchmark_output/doublet/HP/simplified__capex_P90_HP.nc b/tests/resources/test_benchmark_output/doublet/HP/simplified__capex_P90_HP.nc new file mode 100644 index 0000000000000000000000000000000000000000..62cd5ebe804d8bee6c8c6dfc6017176a111e7afc GIT binary patch literal 2368 zcmZ>EabskF04@dw1||ju2F3~qpBcoiM6e+&1_o{h1_l-oPDw0Dgz14w@-Q$kfb?i%(9?D=A9MiO)?f%1p^jgakhW8z`(CM0-A(R_+6(HQuzuoZ{5@)WqTv zNWx%XfT(d~dVK)oCWDHC^J11#cnU* zzk=&q)-W(IC=@3r=A_1_B_@~T7sV%*U~@9q9{czI?QR()&0}C-P(;^*&n_f=*zygZ zb5O8CN@`kWUM4(!N~45fK~ZLIDoO}~-2?SAh~h6!&CQI@P0RxMpdu5TO2KLzBZA+0 zzHXIgU|YL0@Tg^8h(j+wE!xv{0Wo}sC!j*+FMo}sCcg`tr}Y^+W|kf*P!Z?uwo zQEF;ld1i8kl8!;FPN<(}NVHN)YI;#>s*;X@o`IpciK(%XrID$jrKO3nv5sSCh=+fW zXGmnUl50S)yONHQrJ<3LQfw?1851K5OOOo6f3D6Up8kH(O8(HYC>XgcQi|0Ha13(v zbq#S1idI5SVvuyDq+@ENXJ~3>Xl7sv24*N4(6fM&j;Wrpg}Irr1r%7KC`V3OAU|4K zT3Q;IqpE>q1!#6r(lInOH83zhF$JOmmRXc^Ow5eIN+2Pan_5zos-$BWtK%5q862(T z3dwj%INM+Tn3e%?~L`%qvdIF9KDop!S4?k%h6jo`JcciGrblfq{a7f|;>}sim==iHV^R zC{tKkDi|o}T3TA_L3mJ70otx$VPN32aa>rP@3`=yj^iS(#g4Q6-Z(Duf9bf$uNIU* d9osrv9sAb=IVvzPI4)pdaQwi)fXoJ|0RZgrVwnH{ literal 0 HcmV?d00001 diff --git a/tests/resources/test_benchmark_output/doublet/HP/simplified__cop_P10_HP.nc b/tests/resources/test_benchmark_output/doublet/HP/simplified__cop_P10_HP.nc index 5c6c239cd8dd344d6faa343515ed63155b3fe142..ac10aaa7203b3190acfcdc4a05fbd257254a6c24 100644 GIT binary patch literal 2368 zcmZ>EabskF04@dw1||ju2F3~qpBcoiM6e+&1_o{h1_l-oPDw0Dgz14w@-Q$kfb?i%(9?D=A9MiO)?f%1p^jgakhW8z`(CM0-A(R_+6(HQuzuoZ{5@)WqTv zNWx%XfT(d~dVK)oCWDHC^J11#cnU* zzk=&q)-W(IC=@3r=A_1_B_@~T7sV%*U~@9q9{czI?QR()&0}C-P(;^*&n_f=*zygZ zb5O8CN@`kWUM4(!N~45fK~ZLIDoO}~-2?SAh~h6!&CQI@P0RxMpdu5TO2KLzBZA+0 zzHXIgU|YL0@Tg^8h(j+wE!xv{0Wo}sC!j*+FMo}sCcg`tr}Y^+W|kf*P!Z?uwo zQEF;ld1i8kl8!;FPN<(}NVHN)YI;#>s*;X@o`IpciK(%XrID$jrKO3nv5sSCh=+fW zXGmnUl50S)yONHQrJ<3LQfw?1851K5OOOo6f3D6Up8kH(O8(HYC>XgcQi|0Ha13(v zbq#S1idI5SVvuyDq+@ENXJ~3>Xl7sv24*N4(6fM&j;Wrpg}Irr1r%7KC`V3OAU|4K zT3Q;IqpE>q1!#6r(lInOH83zhF$JOmmRXc^Ow5eIN+2Pan_5zos-$BWtK%5q862(T z3dwj%INM+Tn3e%?~L`%qvdIF9KDop!S4?k%h6jo`JcciGrblfq{a7f|;>}sim==iHV^R zC{tKkDi|o}T3TA_L3mJ70otx$VPN32aeTD8!|~%gQOB>>+a1?SEpj~Err~(Gc_Ju* dI+k%NIJU93I4UqOI4)pdaQwi)fXoJ|0RR}4VzU4M literal 9412 zcmeD5aB<`1lHy|G;9!7(|4?v51tMYqp%@lMnpFFHxCAlrY++IYi!rl+DFz0p4h)Km ziGdNMgiQoQGQyNIFjl??2{14)h{`a4M41_Jnjs(nQhJRUL^3c0LnsEAiA+#FW5pyW z6QceCFGK?B2L=X)mvcQQf}PJhoskjj9wtUcMyRn2a9RZ9VnGFa21tN7Fqm*NnEYpE zU|{6~$uMg{#6hP2sE63Kf)B)FV3-7<;C^Dm=_ejXkWyv_5e6Ox5e9~MztocClr$6P z{QRPn%)G>s)M5q!4hC?@Ffb@EfE)@AM+OFv8$f!&m`5ALXJ%ky-~g$0_HhgjW)Nmz zU;qUfC^%d^eO>*6J^lUSgPk3HTp4&|7#Nrsm>F0h8vGo6UBT)>YC*V?0c0dI12Y33 z0}seZn9E!;b2C#=-2`?40|So>$eqj#+zcXMuefFA7WE8ie#u9MVdSi=gx*u^ob%+l!3yNk%5X)RKdW&;9?gcj4eJu7H*H#UhD7d;mzX; z@+v4I!D%Dj&pDtdzaX`!Br~-b9Os}c42tuz)S}|d{5)GDojh>YYs3pQR`VDE5f z;&MI91T%+o8|%GJ^IAI0w`#PU>1Yi#hk@aqSYMd_34Mp_O4ZAy0u15e5PL_-(GVC7 zfzc2c4S~@R7!3h>h5)EZ0cq`8@k8u|wRS-*9HLu{pcV=>TZ|#L3k)GGMg~Ska9f{= z2}`3M;$kuz`5ZzZ?aYjkppFUy1A_;Mi_~>t#@)>@{qW(NAZ2o!c8SBa#$`hw_DJQ@O{ zAut*OBPj&jo&9~lEabskF04@dw1||ju2F3~qpBcoiM6e+&1_o{h1_l-oPDw0Dgz14w@-Q$kfb?i%(9?D=A9MiO)?f%1p^jgakhW8z`(CM0-A(R_+6(HQuzuoZ{5@)WqTv zNWx%XfT(d~dVK)oCWDHC^J11#cnU* zzk=&q)-W(IC=@3r=A_1_B_@~T7sV%*U~@9q9{czI?QR()&0}C-P(;^*&n_f=*zygZ zb5O8CN@`kWUM4(!N~45fK~ZLIDoO}~-2?SAh~h6!&CQI@P0RxMpdu5TO2KLzBZA+0 zzHXIgU|YL0@Tg^8h(j+wE!xv{0Wo}sC!j*+FMo}sCcg`tr}Y^+W|kf*P!Z?uwo zQEF;ld1i8kl8!;FPN<(}NVHN)YI;#>s*;X@o`IpciK(%XrID$jrKO3nv5sSCh=+fW zXGmnUl50S)yONHQrJ<3LQfw?1851K5OOOo6f3D6Up8kH(O8(HYC>XgcQi|0Ha13(v zbq#S1idI5SVvuyDq+@ENXJ~3>Xl7sv24*N4(6fM&j;Wrpg}Irr1r%7KC`V3OAU|4K zT3Q;IqpE>q1!#6r(lInOH83zhF$JOmmRXc^Ow5eIN+2Pan_5zos-$BWtK%5q862(T z3dwj%INM+Tn3e%?~L`%qvdIF9KDop!S4?k%h6jo`JcciGrblfq{a7f|;>}sim==iHV^R zC{tKkDi|o}T3TA_L3mJ70otx$VPN32aonq_>Ufqz-0@OfyJOeoe~xo^u5(=H7Y$0F dj->)G9ZM$ccT`|ta9qH^;P`=o0htX_0|4OgVwC^@ literal 9412 zcmeD5aB<`1lHy|G;9!7(|4?v51tMYqp%@lMnpFFHxCAlrY++IYi!rl+DFz0p4h)Km ziGdNMgiQoQGQyNIFjl??2{14)h{`a4M41_Jnjs(nQhJRUL^3c0LnsEAiA+#FW5pyW z6QceCFGK?B2L=X)mvcQQf}PJhoskjj9wtUcMyRn2a9RZ9VnGFa21tN7Fqm*NnEYpE zU|{6~$uMg{#6hP2sE63Kf)B)FV3-7<;C^Dm=_ejXkWyv_5e6Ox5e9~MztocClr$6P z{QRPn%)G>s)M5q!4hC?@Ffb@EfE)@AM+OFv8$f!&m`5ALXJ%ky-~g$0_HhgjW)Nmz zU;qUfC^%d^eO>*6J^lUSgPk3HTp4&|7#Nrsm>F0h8vGo6UBT)>YC*V?0c0dI12Y33 z0}seZn9E!;b2C#=-2`?40|So>$eqj#+zcXMuefFA7WE8ie#u9MVdSi=gx*u^ob%+l!3yNk%5X)RKdW&;9?gcj4eJu7H*H#UhD7d;mzX; z@+v4I!D%Dj&pDtdzaX`!Br~-b9Os}c42tuz)S}|d{5)GDojh-zgM|GT zXs>1qNEn3KK?D?+O^iGWiY7KOkN_hKyi1duUvLE4{;k-5(gmaj6bGPYDdnwpo)}1% zf}cSE)c!~GID9;VLl`8Xoe^;c25^T8)c%Kg4Mu~!cLdxa1NCMg7{&*wndCCd7vyGG zJZM7WK?3AW1_lP690mqf24)6+1_O`_f?VBPgIxWbUE{$nFk^yrhf)$t5{pwy7#Ltq zNy*Gj%>%W388|@QC5WNe`&zKjgIdTSb>rGIWEVL?G&9iOMWC<)xk@C})fYsM;?WQo z4S~@R7)c@E?(FXaE(bxyIMN6iY@iM{)Cj6eK;Z%thYc8l#6b7}v|$5ckK)k~7!85Z k5Eu=C(GVC7fzc2c4S~@R7!85Z5Eu=C(GVC7fx#650FQ`e0{{R3 diff --git a/tests/resources/test_benchmark_output/doublet/HP/simplified__cop_P90_HP.nc b/tests/resources/test_benchmark_output/doublet/HP/simplified__cop_P90_HP.nc index 56e00b505e822671e1c4537f85e7d5ba9ecf5258..a1db5a0478164db7f1e6255b42cb597eac15a2d7 100644 GIT binary patch literal 2368 zcmZ>EabskF04@dw1||ju2F3~qpBcoiM6e+&1_o{h1_l-oPDw0Dgz14w@-Q$kfb?i%(9?D=A9MiO)?f%1p^jgakhW8z`(CM0-A(R_+6(HQuzuoZ{5@)WqTv zNWx%XfT(d~dVK)oCWDHC^J11#cnU* zzk=&q)-W(IC=@3r=A_1_B_@~T7sV%*U~@9q9{czI?QR()&0}C-P(;^*&n_f=*zygZ zb5O8CN@`kWUM4(!N~45fK~ZLIDoO}~-2?SAh~h6!&CQI@P0RxMpdu5TO2KLzBZA+0 zzHXIgU|YL0@Tg^8h(j+wE!xv{0Wo}sC!j*+FMo}sCcg`tr}Y^+W|kf*P!Z?uwo zQEF;ld1i8kl8!;FPN<(}NVHN)YI;#>s*;X@o`IpciK(%XrID$jrKO3nv5sSCh=+fW zXGmnUl50S)yONHQrJ<3LQfw?1851K5OOOo6f3D6Up8kH(O8(HYC>XgcQi|0Ha13(v zbq#S1idI5SVvuyDq+@ENXJ~3>Xl7sv24*N4(6fM&j;Wrpg}Irr1r%7KC`V3OAU|4K zT3Q;IqpE>q1!#6r(lInOH83zhF$JOmmRXc^Ow5eIN+2Pan_5zos-$BWtK%5q862(T z3dwj%INM+Tn3e%?~L`%qvdIF9KDop!S4?k%h6jo`JcciGrblfq{a7f|;>}sim==iHV^R zC{tKkDi|o}T3TA_L3mJ70otx$VPN32ahx9b+HraKLB}yB*8LFFAJ2ISNXk cj>R4Bj>Q$sjtUG6jtdwV96vBHAhSVg0K}s)M5q!4hC?@Ffb@EfE)@AM+OFv8$f!&m`5ALXJ%ky-~g$0_HhgjW)Nmz zU;qUfC^%d^eO>*6J^lUSgPk3HTp4&|7#Nrsm>F0h8vGo6UBT)>YC*V?0c0dI12Y33 z0}seZn9E!;b2C#=-2`?40|So>$eqj#+zcXMuefFA7WE8ie#u9MVdSi=gx*u^ob%+l!3yNk%5X)RKdW&;9?gcj4eJu7H*H#UhD7d;mzX; z@+v4I!D%Dj&pDtdzaX`!Br~-b9Os}c42tuz)S}|d{5)GDojh zn6NbJAucAfk8Aub12C+eb1_}Ew z&|b|JkT3|dg9s=tn;3Z%6isYmAOS`ec$X$Qzu*Y8{admBqzgz5C=Ni)Qp#KHJTZ_i z1wVrTsQr)Vark%!hcHM&J0s!@4B!qGsQnM~8jJ>c?+Ca<2I|c~FpLjUGs$I^FUZZX zc+iB#g9ON%3=9lBISdS}49pDt3c+Ka$S!h(Xl9_li$Gxqa+OG`t1pNi#iJoG z8UmvsFp@&R-PzvVYaikG4*gzd@s1a0`fWieP4jV88iGlC|Xu}4?9>t>}Fd71* kAut*OqaiRF0;3@?8UmvsFd71*Aut*OqaiRF0)s0A0H|$b(*OVf diff --git a/tests/resources/test_benchmark_output/doublet/HP/simplified__fixedopex_P10_HP.nc b/tests/resources/test_benchmark_output/doublet/HP/simplified__fixedopex_P10_HP.nc new file mode 100644 index 0000000000000000000000000000000000000000..d925b117ecec08966b15075d492e9941a84130f1 GIT binary patch literal 2368 zcmZ>EabskF04@dw1||ju2F3~qpBcoiM6e+&1_o{h1_l-oPDw0Dgz14w@-Q$kfb?i%(9?D=A9MiO)?f%1p^jgakhW8z`(CM0-A(R_+6(HQuzuoZ{5@)WqTv zNWx%XfT(d~dVK)oCWDHC^J11#cnU* zzk=&q)-W(IC=@3r=A_1_B_@~T7sV%*U~@9q9{czI?QR()&0}C-P(;^*&n_f=*zygZ zb5O8CN@`kWUM4(!N~45fK~ZLIDoO}~-2?SAh~h6!&CQI@P0RxMpdu5TO2KLzBZA+0 zzHXIgU|YL0@Tg^8h(j+wE!xv{0Wo}sC!j*+FMo}sCcg`tr}Y^+W|kf*P!Z?uwo zQEF;ld1i8kl8!;FPN<(}NVHN)YI;#>s*;X@o`IpciK(%XrID$jrKO3nv5sSCh=+fW zXGmnUl50S)yONHQrJ<3LQfw?1851K5OOOo6f3D6Up8kH(O8(HYC>XgcQi|0Ha13(v zbq#S1idI5SVvuyDq+@ENXJ~3>Xl7sv24*N4(6fM&j;Wrpg}Irr1r%7KC`V3OAU|4K zT3Q;IqpE>q1!#6r(lInOH83zhF$JOmmRXc^Ow5eIN+2Pan_5zos-$BWtK%5q862(T z3dwj%INM+Tn3e%?~L`%qvdIF9KDop!S4?k%h6jo`JcciGrblfq{a7f|;>}sim==iHV^R zC{tKkDi|o}T3TA_L3mJ70otx$VPN32alF5*-0^-lr{n$pjgI&G_B-A$>UX?fngL3n dj^};^JKoPNa#Uboa9qH^;P`=o0htX_0{~;XWf1@X literal 0 HcmV?d00001 diff --git a/tests/resources/test_benchmark_output/doublet/HP/simplified__fixedopex_P50_HP.nc b/tests/resources/test_benchmark_output/doublet/HP/simplified__fixedopex_P50_HP.nc new file mode 100644 index 0000000000000000000000000000000000000000..fd4c949937f8426f17cb248759664deccb90ab8e GIT binary patch literal 2368 zcmZ>EabskF04@dw1||ju2F3~qpBcoiM6e+&1_o{h1_l-oPDw0Dgz14w@-Q$kfb?i%(9?D=A9MiO)?f%1p^jgakhW8z`(CM0-A(R_+6(HQuzuoZ{5@)WqTv zNWx%XfT(d~dVK)oCWDHC^J11#cnU* zzk=&q)-W(IC=@3r=A_1_B_@~T7sV%*U~@9q9{czI?QR()&0}C-P(;^*&n_f=*zygZ zb5O8CN@`kWUM4(!N~45fK~ZLIDoO}~-2?SAh~h6!&CQI@P0RxMpdu5TO2KLzBZA+0 zzHXIgU|YL0@Tg^8h(j+wE!xv{0Wo}sC!j*+FMo}sCcg`tr}Y^+W|kf*P!Z?uwo zQEF;ld1i8kl8!;FPN<(}NVHN)YI;#>s*;X@o`IpciK(%XrID$jrKO3nv5sSCh=+fW zXGmnUl50S)yONHQrJ<3LQfw?1851K5OOOo6f3D6Up8kH(O8(HYC>XgcQi|0Ha13(v zbq#S1idI5SVvuyDq+@ENXJ~3>Xl7sv24*N4(6fM&j;Wrpg}Irr1r%7KC`V3OAU|4K zT3Q;IqpE>q1!#6r(lInOH83zhF$JOmmRXc^Ow5eIN+2Pan_5zos-$BWtK%5q862(T z3dwj%INM+Tn3e%?~L`%qvdIF9KDop!S4?k%h6jo`JcciGrblfq{a7f|;>}sim==iHV^R zC{tKkDi|o}T3TA_L3mJ70otx$VPN32alF5##PNQwujBnbd&m3zYL53Sk2&5izXVF4 dj!W(5Iv(ZU>!`rM;JAQ+!SMqF12P+=1^_`7WHbN( literal 0 HcmV?d00001 diff --git a/tests/resources/test_benchmark_output/doublet/HP/simplified__fixedopex_P90_HP.nc b/tests/resources/test_benchmark_output/doublet/HP/simplified__fixedopex_P90_HP.nc new file mode 100644 index 0000000000000000000000000000000000000000..be8b6f457572cc033ec7c6d7f6b6a5d8f3115c16 GIT binary patch literal 2368 zcmZ>EabskF04@dw1||ju2F3~qpBcoiM6e+&1_o{h1_l-oPDw0Dgz14w@-Q$kfb?i%(9?D=A9MiO)?f%1p^jgakhW8z`(CM0-A(R_+6(HQuzuoZ{5@)WqTv zNWx%XfT(d~dVK)oCWDHC^J11#cnU* zzk=&q)-W(IC=@3r=A_1_B_@~T7sV%*U~@9q9{czI?QR()&0}C-P(;^*&n_f=*zygZ zb5O8CN@`kWUM4(!N~45fK~ZLIDoO}~-2?SAh~h6!&CQI@P0RxMpdu5TO2KLzBZA+0 zzHXIgU|YL0@Tg^8h(j+wE!xv{0Wo}sC!j*+FMo}sCcg`tr}Y^+W|kf*P!Z?uwo zQEF;ld1i8kl8!;FPN<(}NVHN)YI;#>s*;X@o`IpciK(%XrID$jrKO3nv5sSCh=+fW zXGmnUl50S)yONHQrJ<3LQfw?1851K5OOOo6f3D6Up8kH(O8(HYC>XgcQi|0Ha13(v zbq#S1idI5SVvuyDq+@ENXJ~3>Xl7sv24*N4(6fM&j;Wrpg}Irr1r%7KC`V3OAU|4K zT3Q;IqpE>q1!#6r(lInOH83zhF$JOmmRXc^Ow5eIN+2Pan_5zos-$BWtK%5q862(T z3dwj%INM+Tn3e%?~L`%qvdIF9KDop!S4?k%h6jo`JcciGrblfq{a7f|;>}sim==iHV^R zC{tKkDi|o}T3TA_L3mJ70otx$VPN32alF5FmgD`t36A$C-FG|@Q|)-aW{Tteatlxb db*wzx;W%r9s-pq}gX01Q2FDK!49IMd8USIAWTpTB literal 0 HcmV?d00001 diff --git a/tests/resources/test_benchmark_output/doublet/HP/simplified__flowr_P10_HP.nc b/tests/resources/test_benchmark_output/doublet/HP/simplified__flowr_P10_HP.nc index 8f01840b02a733b28ee48ca31d6a486edfc6cd29..f3774daa2c6774ab5056e6ce168b59c570043e6a 100644 GIT binary patch delta 78 zcmX>gbUD|4n!P`77A@=RYF`1_lP_=ci+x YfBygPsKCJBxPXDd@dE<`G8?1@0R6Baj{pDw delta 78 zcmX>gbUgbUgbUgbUgbUgbUgbUgbUgbUgbUgbUgbUgbUgbUgbUgbUgbUgbU*Y>*lN7+n@H delta 79 zcmX>gbU XtVqaFfq}ts0Rw~M2L=XYHb@NsAM+M& diff --git a/tests/resources/test_benchmark_output/doublet/HP/simplified__hprod_P90_HP.nc b/tests/resources/test_benchmark_output/doublet/HP/simplified__hprod_P90_HP.nc index 911c766791426f49a123d90723572f234bbcdd06..7d1be407f37f0cb781a77ddc146e7d42186e949b 100644 GIT binary patch delta 79 zcmX>gbUgbUgbUgbUgbUgbUgbUgbUgbUgbUgbUgbUgbUgbUgbUGUI%b#9{Fq=k)DljlOE?{7A{J_9~%m%3e00gbU{oOs@e_4uI5V4pfq}t(o7HCr Xxr;@P3JeU63m6z2KQJ&Lvq5SAf6EwJ diff --git a/tests/resources/test_benchmark_output/doublet/HP/simplified__npv_P50_HP.nc b/tests/resources/test_benchmark_output/doublet/HP/simplified__npv_P50_HP.nc index 7816c36420f0dc61c11b0100e2548169ad522c4c..9b8ae129a42f5a288f2c01f63abe307ab1e368ff 100644 GIT binary patch delta 79 zcmX>gbUgbU*Y>*lNRM8hV diff --git a/tests/resources/test_benchmark_output/doublet/HP/simplified__npv_P90_HP.nc b/tests/resources/test_benchmark_output/doublet/HP/simplified__npv_P90_HP.nc index 7c0997b9767683e38af87cdb0b4d11b46c0a4075..a76e47c6ccb7da33b3afd04c242000daebc91dac 100644 GIT binary patch delta 79 zcmX>gbUckL0Z!_+HFmU|?W4pf<5{ Y|2m%ojtUG6jtdwV96vBHAhSVg01@UJQvd(} delta 79 zcmX>gbUgbUgbUEabskF04@dw1||ju2F3~qpBcoiM6e+&1_o{h1_l-oPDw0Dgz14w@-Q$kfb?i%(9?D=A9MiO)?f%1p^jgakhW8z`(CM0-A(R_+6(HQuzuoZ{5@)WqTv zNWx%XfT(d~dVK)oCWDHC^J11#cnU* zzk=&q)-W(IC=@3r=A_1_B_@~T7sV%*U~@9q9{czI?QR()&0}C-P(;^*&n_f=*zygZ zb5O8CN@`kWUM4(!N~45fK~ZLIDoO}~-2?SAh~h6!&CQI@P0RxMpdu5TO2KLzBZA+0 zzHXIgU|YL0@Tg^8h(j+wE!xv{0Wo}sC!j*+FMo}sCcg`tr}Y^+W|kf*P!Z?uwo zQEF;ld1i8kl8!;FPN<(}NVHN)YI;#>s*;X@o`IpciK(%XrID$jrKO3nv5sSCh=+fW zXGmnUl50S)yONHQrJ<3LQfw?1851K5OOOo6f3D6Up8kH(O8(HYC>XgcQi|0Ha13(v zbq#S1idI5SVvuyDq+@ENXJ~3>Xl7sv24*N4(6fM&j;Wrpg}Irr1r%7KC`V3OAU|4K zT3Q;IqpE>q1!#6r(lInOH83zhF$JOmmRXc^Ow5eIN+2Pan_5zos-$BWtK%5q862(T z3dwj%INM+Tn3e%?~L`%qvdIF9KDop!S4?k%h6jo`JcciGrblfq{a7f|;>}sim==iHV^R zC{tKkDi|o}T3TA_L3mJ70otx$VPN32aqwwh=iv3t)4^+DzeBJ;n?nGfmV+OgIw*lU c_?H}Yh{=_5RA69mT)@EK_EabskF04@dw1||ju2F3~qpBcoiM6e+&1_o{h1_l-oPDw0Dgz14w@-Q$kfb?i%(9?D=A9MiO)?f%1p^jgakhW8z`(CM0-A(R_+6(HQuzuoZ{5@)WqTv zNWx%XfT(d~dVK)oCWDHC^J11#cnU* zzk=&q)-W(IC=@3r=A_1_B_@~T7sV%*U~@9q9{czI?QR()&0}C-P(;^*&n_f=*zygZ zb5O8CN@`kWUM4(!N~45fK~ZLIDoO}~-2?SAh~h6!&CQI@P0RxMpdu5TO2KLzBZA+0 zzHXIgU|YL0@Tg^8h(j+wE!xv{0Wo}sC!j*+FMo}sCcg`tr}Y^+W|kf*P!Z?uwo zQEF;ld1i8kl8!;FPN<(}NVHN)YI;#>s*;X@o`IpciK(%XrID$jrKO3nv5sSCh=+fW zXGmnUl50S)yONHQrJ<3LQfw?1851K5OOOo6f3D6Up8kH(O8(HYC>XgcQi|0Ha13(v zbq#S1idI5SVvuyDq+@ENXJ~3>Xl7sv24*N4(6fM&j;Wrpg}Irr1r%7KC`V3OAU|4K zT3Q;IqpE>q1!#6r(lInOH83zhF$JOmmRXc^Ow5eIN+2Pan_5zos-$BWtK%5q862(T z3dwj%INM+Tn3e%?~L`%qvdIF9KDop!S4?k%h6jo`JcciGrblfq{a7f|;>}sim==iHV^R zC{tKkDi|o}T3TA_L3mJ70otx$VPN32aR}5cbMSi>>fmR??htJ_(IKq&u|sgoW>5lk cP(3W~;Ci6iQGtQMaRCE^;|B%?WHv|*09wLdwg3PC literal 0 HcmV?d00001 diff --git a/tests/resources/test_benchmark_output/doublet/HP/simplified__opex_P90_HP.nc b/tests/resources/test_benchmark_output/doublet/HP/simplified__opex_P90_HP.nc new file mode 100644 index 0000000000000000000000000000000000000000..44e82f88308fa10f6f94e50c02b020f8cef0813e GIT binary patch literal 2368 zcmZ>EabskF04@dw1||ju2F3~qpBcoiM6e+&1_o{h1_l-oPDw0Dgz14w@-Q$kfb?i%(9?D=A9MiO)?f%1p^jgakhW8z`(CM0-A(R_+6(HQuzuoZ{5@)WqTv zNWx%XfT(d~dVK)oCWDHC^J11#cnU* zzk=&q)-W(IC=@3r=A_1_B_@~T7sV%*U~@9q9{czI?QR()&0}C-P(;^*&n_f=*zygZ zb5O8CN@`kWUM4(!N~45fK~ZLIDoO}~-2?SAh~h6!&CQI@P0RxMpdu5TO2KLzBZA+0 zzHXIgU|YL0@Tg^8h(j+wE!xv{0Wo}sC!j*+FMo}sCcg`tr}Y^+W|kf*P!Z?uwo zQEF;ld1i8kl8!;FPN<(}NVHN)YI;#>s*;X@o`IpciK(%XrID$jrKO3nv5sSCh=+fW zXGmnUl50S)yONHQrJ<3LQfw?1851K5OOOo6f3D6Up8kH(O8(HYC>XgcQi|0Ha13(v zbq#S1idI5SVvuyDq+@ENXJ~3>Xl7sv24*N4(6fM&j;Wrpg}Irr1r%7KC`V3OAU|4K zT3Q;IqpE>q1!#6r(lInOH83zhF$JOmmRXc^Ow5eIN+2Pan_5zos-$BWtK%5q862(T z3dwj%INM+Tn3e%?~L`%qvdIF9KDop!S4?k%h6jo`JcciGrblfq{a7f|;>}sim==iHV^R zC{tKkDi|o}T3TA_L3mJ70otx$VPN32afr}5?GUn+-y!(2jf2OMmk#llUpqu=I)M_X d{jcj^9He8T92FQC92YP!IDTMYKxTu~006^IVetR} literal 0 HcmV?d00001 diff --git a/tests/resources/test_benchmark_output/doublet/HP/simplified__porosity_HP.nc b/tests/resources/test_benchmark_output/doublet/HP/simplified__porosity_HP.nc index d1c7673d9ae84217bf9b2a332bb87be1ee26d13a..c76ce7dc2db077af7640ce3a062eac6abba74a4a 100644 GIT binary patch delta 15 XcmX>gbUgbUgbUK}=YtG_RIT>bEegbUH_mZmU|?WyT)dad YapUAYjtUG6jtdwV96vBHAhSVg0O@@iQ~&?~ diff --git a/tests/resources/test_benchmark_output/doublet/HP/simplified__power_P50_HP.nc b/tests/resources/test_benchmark_output/doublet/HP/simplified__power_P50_HP.nc index c51fa5cea46da5f2b173da072ca0b3bed8ccd4f7..cd031822bc3326b8f2ad5349cc9980904e84559b 100644 GIT binary patch delta 79 zcmX>gbUhIqiS3hrYT>XrNfq{X+vCgX6 Yar)FRjtUG6jtdwV96vBHAhSVg0AlGJzW@LL delta 79 zcmX>gbUFfcGUHs$Ye YoPBMIqXGki;{pZ-#}5n)$ZU`r0M73kH2?qr diff --git a/tests/resources/test_benchmark_output/doublet/HP/simplified__power_P90_HP.nc b/tests/resources/test_benchmark_output/doublet/HP/simplified__power_P90_HP.nc index d4a2aa16a6329afb05ec8d1c255c04364bc1ef6f..8a0c5ea8dab88cc86465a948d9a47fb078587cd5 100644 GIT binary patch delta 79 zcmX>gbUR delta 79 zcmX>gbUgbUgbUgbUgbUgbUgbUgbUgbUV`Hay WhQE#q3=ED77#JKsFfbsqL23Y*3m9|& diff --git a/tests/resources/test_benchmark_output/doublet/HP/simplified__pres_P50_HP.nc b/tests/resources/test_benchmark_output/doublet/HP/simplified__pres_P50_HP.nc index 725a0bc9ca15badc13fa238cedd0bbb865673c0e..bfdeccc4cc87203d392a3cbca533b9b6423b5a16 100644 GIT binary patch delta 42 ycmX>gbUgbUgbU2`1`U|?`6DEj9V=Fc}-f>Q$kgryJZ delta 43 zcmX>gbUum3Vxf>Q$kbe#{R diff --git a/tests/resources/test_benchmark_output/doublet/HP/simplified__temperature_HP.nc b/tests/resources/test_benchmark_output/doublet/HP/simplified__temperature_HP.nc index 3b7b58bacae4501a3388448336c0fe61e0456518..dfd9343a219f00c755aaccdbd387220542de7553 100644 GIT binary patch delta 15 XcmX>gbUgbUgbUgbUgbU delta 79 zcmX>gbUgbUgbU-9QGtQMaRCE^;|B%?WHv|*0Jd5gdjJ3c diff --git a/tests/resources/test_benchmark_output/doublet/HP/simplified__utc_P90_HP.nc b/tests/resources/test_benchmark_output/doublet/HP/simplified__utc_P90_HP.nc index d8e160ecf5af6aeb089d0ef566202ab4fe92599b..ff37e93906ae94210c704dad57cb649b4c1d8862 100644 GIT binary patch delta 79 zcmX>gbUzDvm4kPW|n6%FfcGUY;SOK YSbZ$rQGtQMaRCE^;|B%?WHv|*0O=1J6951J delta 79 zcmX>gbUEabskF04@dw1||ju2F3~qpBcoiM6e+&1_o{h1_l-oPDw0Dgz14w@-Q$kfb?i%(9?D=A9MiO)?f%1p^jgakhW8z`(CM0-A(R_+6(HQuzuoZ{5@)WqTv zNWx%XfT(d~dVK)oCWDHC^J11#cnU* zzk=&q)-W(IC=@3r=A_1_B_@~T7sV%*U~@9q9{czI?QR()&0}C-P(;^*&n_f=*zygZ zb5O8CN@`kWUM4(!N~45fK~ZLIDoO}~-2?SAh~h6!&CQI@P0RxMpdu5TO2KLzBZA+0 zzHXIgU|YL0@Tg^8h(j+wE!xv{0Wo}sC!j*+FMo}sCcg`tr}Y^+W|kf*P!Z?uwo zQEF;ld1i8kl8!;FPN<(}NVHN)YI;#>s*;X@o`IpciK(%XrID$jrKO3nv5sSCh=+fW zXGmnUl50S)yONHQrJ<3LQfw?1851K5OOOo6f3D6Up8kH(O8(HYC>XgcQi|0Ha13(v zbq#S1idI5SVvuyDq+@ENXJ~3>Xl7sv24*N4(6fM&j;Wrpg}Irr1r%7KC`V3OAU|4K zT3Q;IqpE>q1!#6r(lInOH83zhF$JOmmRXc^Ow5eIN+2Pan_5zos-$BWtK%5q862(T z3dwj%INM+Tn3e%?~L`%qvdIF9KDop!S4?k%h6jo`JcciGrblfq{a7f|;>}sim==iHV^R zC{tKkDi|o}T3TA_L3mJ70otx$VPN32ag5C2a17~+atzL0@0hEabskF04@dw1||ju2F3~qpBcoiM6e+&1_o{h1_l-oPDw0Dgz14w@-Q$kfb?i%(9?D=A9MiO)?f%1p^jgakhW8z`(CM0-A(R_+6(HQuzuoZ{5@)WqTv zNWx%XfT(d~dVK)oCWDHC^J11#cnU* zzk=&q)-W(IC=@3r=A_1_B_@~T7sV%*U~@9q9{czI?QR()&0}C-P(;^*&n_f=*zygZ zb5O8CN@`kWUM4(!N~45fK~ZLIDoO}~-2?SAh~h6!&CQI@P0RxMpdu5TO2KLzBZA+0 zzHXIgU|YL0@Tg^8h(j+wE!xv{0Wo}sC!j*+FMo}sCcg`tr}Y^+W|kf*P!Z?uwo zQEF;ld1i8kl8!;FPN<(}NVHN)YI;#>s*;X@o`IpciK(%XrID$jrKO3nv5sSCh=+fW zXGmnUl50S)yONHQrJ<3LQfw?1851K5OOOo6f3D6Up8kH(O8(HYC>XgcQi|0Ha13(v zbq#S1idI5SVvuyDq+@ENXJ~3>Xl7sv24*N4(6fM&j;Wrpg}Irr1r%7KC`V3OAU|4K zT3Q;IqpE>q1!#6r(lInOH83zhF$JOmmRXc^Ow5eIN+2Pan_5zos-$BWtK%5q862(T z3dwj%INM+Tn3e%?~L`%qvdIF9KDop!S4?k%h6jo`JcciGrblfq{a7f|;>}sim==iHV^R zC{tKkDi|o}T3TA_L3mJ70otx$VPN32am=W?;g}fs!!cfMren*(RL82wsgC)77lIO~ cV}R8w$BIcJjtUG6jtdwV96vBHAhSVg0MvV7_W%F@ literal 0 HcmV?d00001 diff --git a/tests/resources/test_benchmark_output/doublet/HP/simplified__varopex_P90_HP.nc b/tests/resources/test_benchmark_output/doublet/HP/simplified__varopex_P90_HP.nc new file mode 100644 index 0000000000000000000000000000000000000000..92046c52f7c20b66ffb740de2d52262df065b52f GIT binary patch literal 2368 zcmZ>EabskF04@dw1||ju2F3~qpBcoiM6e+&1_o{h1_l-oPDw0Dgz14w@-Q$kfb?i%(9?D=A9MiO)?f%1p^jgakhW8z`(CM0-A(R_+6(HQuzuoZ{5@)WqTv zNWx%XfT(d~dVK)oCWDHC^J11#cnU* zzk=&q)-W(IC=@3r=A_1_B_@~T7sV%*U~@9q9{czI?QR()&0}C-P(;^*&n_f=*zygZ zb5O8CN@`kWUM4(!N~45fK~ZLIDoO}~-2?SAh~h6!&CQI@P0RxMpdu5TO2KLzBZA+0 zzHXIgU|YL0@Tg^8h(j+wE!xv{0Wo}sC!j*+FMo}sCcg`tr}Y^+W|kf*P!Z?uwo zQEF;ld1i8kl8!;FPN<(}NVHN)YI;#>s*;X@o`IpciK(%XrID$jrKO3nv5sSCh=+fW zXGmnUl50S)yONHQrJ<3LQfw?1851K5OOOo6f3D6Up8kH(O8(HYC>XgcQi|0Ha13(v zbq#S1idI5SVvuyDq+@ENXJ~3>Xl7sv24*N4(6fM&j;Wrpg}Irr1r%7KC`V3OAU|4K zT3Q;IqpE>q1!#6r(lInOH83zhF$JOmmRXc^Ow5eIN+2Pan_5zos-$BWtK%5q862(T z3dwj%INM+Tn3e%?~L`%qvdIF9KDop!S4?k%h6jo`JcciGrblfq{a7f|;>}sim==iHV^R zC{tKkDi|o}T3TA_L3mJ70otx$VPN32aje&W;8>y`;8^H!%&|J|pJR{pX~&k;mq7{C cQTBGKqjSHcqXGki;{pZ-#}5n)$ZU`r0Kj))mjD0& literal 0 HcmV?d00001 diff --git a/tests/resources/test_benchmark_output/doublet/HP/simplified__welld_P10_HP.nc b/tests/resources/test_benchmark_output/doublet/HP/simplified__welld_P10_HP.nc index d380235ee50ef59ba4f884920dd42c1660cdb927..0562bc05eb1ffc5e77b6105ef07e85deaa33a9f8 100644 GIT binary patch delta 23 fcmX>gbUgbUgbUgbUgbUgbUEabskF04@dw1||ju2F3~qpBcoiM6e+&1_o{h1_l-oPDw0Dgz14w@-Q$kfb?i%(9?D=A9MiO)?f%1p^jgakhW8z`(CM0-A(R_+6(HQuzuoZ{5@)WqTv zNWx%XfT(d~dVK)oCWDHC^J11#cnU* zzk=&q)-W(IC=@3r=A_1_B_@~T7sV%*U~@9q9{czI?QR()&0}C-P(;^*&n_f=*zygZ zb5O8CN@`kWUM4(!N~45fK~ZLIDoO}~-2?SAh~h6!&CQI@P0RxMpdu5TO2KLzBZA+0 zzHXIgU|YL0@Tg^8h(j+wE!xv{0Wo}sC!j*+FMo}sCcg`tr}Y^+W|kf*P!Z?uwo zQEF;ld1i8kl8!;FPN<(}NVHN)YI;#>s*;X@o`IpciK(%XrID$jrKO3nv5sSCh=+fW zXGmnUl50S)yONHQrJ<3LQfw?1851K5OOOo6f3D6Up8kH(O8(HYC>XgcQi|0Ha13(v zbq#S1idI5SVvuyDq+@ENXJ~3>Xl7sv24*N4(6fM&j;Wrpg}Irr1r%7KC`V3OAU|4K zT3Q;IqpE>q1!#6r(lInOH83zhF$JOmmRXc^Ow5eIN+2Pan_5zos-$BWtK%5q862(T z3dwj%INM+Tn3e%?~L`%qvdIF9KDop!S4?k%h6jo`JcciGrblfq{a7f|;>}sim==iHV^R zC{tKkDi|o}T3TA_L3mJ70otx$VPN32acE#*z=lBy6ejMdz`)?RfPumB0|Nsx8>9vR DRr6Wg literal 0 HcmV?d00001 diff --git a/tests/resources/test_benchmark_output/doublet/HP_STIM/simplified__50yearcooling_P50_HP_STIM.nc b/tests/resources/test_benchmark_output/doublet/HP_STIM/simplified__50yearcooling_P50_HP_STIM.nc new file mode 100644 index 0000000000000000000000000000000000000000..b29aac9e91a758e864c338536df8e2930dae06c1 GIT binary patch literal 2368 zcmZ>EabskF04@dw1||ju2F3~qpBcoiM6e+&1_o{h1_l-oPDw0Dgz14w@-Q$kfb?i%(9?D=A9MiO)?f%1p^jgakhW8z`(CM0-A(R_+6(HQuzuoZ{5@)WqTv zNWx%XfT(d~dVK)oCWDHC^J11#cnU* zzk=&q)-W(IC=@3r=A_1_B_@~T7sV%*U~@9q9{czI?QR()&0}C-P(;^*&n_f=*zygZ zb5O8CN@`kWUM4(!N~45fK~ZLIDoO}~-2?SAh~h6!&CQI@P0RxMpdu5TO2KLzBZA+0 zzHXIgU|YL0@Tg^8h(j+wE!xv{0Wo}sC!j*+FMo}sCcg`tr}Y^+W|kf*P!Z?uwo zQEF;ld1i8kl8!;FPN<(}NVHN)YI;#>s*;X@o`IpciK(%XrID$jrKO3nv5sSCh=+fW zXGmnUl50S)yONHQrJ<3LQfw?1851K5OOOo6f3D6Up8kH(O8(HYC>XgcQi|0Ha13(v zbq#S1idI5SVvuyDq+@ENXJ~3>Xl7sv24*N4(6fM&j;Wrpg}Irr1r%7KC`V3OAU|4K zT3Q;IqpE>q1!#6r(lInOH83zhF$JOmmRXc^Ow5eIN+2Pan_5zos-$BWtK%5q862(T z3dwj%INM+Tn3e%?~L`%qvdIF9KDop!S4?k%h6jo`JcciGrblfq{a7f|;>}sim==iHV^R zC{tKkDi|o}T3TA_L3mJ70otx$VPN32acE#*z=lBy6ejMdz`)?RfPumB0|Nsx8>9vR DRr6Wg literal 0 HcmV?d00001 diff --git a/tests/resources/test_benchmark_output/doublet/HP_STIM/simplified__50yearcooling_P90_HP_STIM.nc b/tests/resources/test_benchmark_output/doublet/HP_STIM/simplified__50yearcooling_P90_HP_STIM.nc new file mode 100644 index 0000000000000000000000000000000000000000..b29aac9e91a758e864c338536df8e2930dae06c1 GIT binary patch literal 2368 zcmZ>EabskF04@dw1||ju2F3~qpBcoiM6e+&1_o{h1_l-oPDw0Dgz14w@-Q$kfb?i%(9?D=A9MiO)?f%1p^jgakhW8z`(CM0-A(R_+6(HQuzuoZ{5@)WqTv zNWx%XfT(d~dVK)oCWDHC^J11#cnU* zzk=&q)-W(IC=@3r=A_1_B_@~T7sV%*U~@9q9{czI?QR()&0}C-P(;^*&n_f=*zygZ zb5O8CN@`kWUM4(!N~45fK~ZLIDoO}~-2?SAh~h6!&CQI@P0RxMpdu5TO2KLzBZA+0 zzHXIgU|YL0@Tg^8h(j+wE!xv{0Wo}sC!j*+FMo}sCcg`tr}Y^+W|kf*P!Z?uwo zQEF;ld1i8kl8!;FPN<(}NVHN)YI;#>s*;X@o`IpciK(%XrID$jrKO3nv5sSCh=+fW zXGmnUl50S)yONHQrJ<3LQfw?1851K5OOOo6f3D6Up8kH(O8(HYC>XgcQi|0Ha13(v zbq#S1idI5SVvuyDq+@ENXJ~3>Xl7sv24*N4(6fM&j;Wrpg}Irr1r%7KC`V3OAU|4K zT3Q;IqpE>q1!#6r(lInOH83zhF$JOmmRXc^Ow5eIN+2Pan_5zos-$BWtK%5q862(T z3dwj%INM+Tn3e%?~L`%qvdIF9KDop!S4?k%h6jo`JcciGrblfq{a7f|;>}sim==iHV^R zC{tKkDi|o}T3TA_L3mJ70otx$VPN32acE#*z=lBy6ejMdz`)?RfPumB0|Nsx8>9vR DRr6Wg literal 0 HcmV?d00001 diff --git a/tests/resources/test_benchmark_output/doublet/HP_STIM/simplified__breakthrough_P10_HP_STIM.nc b/tests/resources/test_benchmark_output/doublet/HP_STIM/simplified__breakthrough_P10_HP_STIM.nc new file mode 100644 index 0000000000000000000000000000000000000000..86c34882d161e72ebe5915b4fd5476a7ac250720 GIT binary patch literal 2368 zcmZ>EabskF04@dw1||ju2F3~qpBcoiM6e+&1_o{h1_l-oPDw0Dgz14w@-Q$kfb?i%(9?D=A9MiO)?f%1p^jgakhW8z`(CM0-A(R_+6(HQuzuoZ{5@)WqTv zNWx%XfT(d~dVK)oCWDHC^J11#cnU* zzk=&q)-W(IC=@3r=A_1_B_@~T7sV%*U~@9q9{czI?QR()&0}C-P(;^*&n_f=*zygZ zb5O8CN@`kWUM4(!N~45fK~ZLIDoO}~-2?SAh~h6!&CQI@P0RxMpdu5TO2KLzBZA+0 zzHXIgU|YL0@Tg^8h(j+wE!xv{0Wo}sC!j*+FMo}sCcg`tr}Y^+W|kf*P!Z?uwo zQEF;ld1i8kl8!;FPN<(}NVHN)YI;#>s*;X@o`IpciK(%XrID$jrKO3nv5sSCh=+fW zXGmnUl50S)yONHQrJ<3LQfw?1851K5OOOo6f3D6Up8kH(O8(HYC>XgcQi|0Ha13(v zbq#S1idI5SVvuyDq+@ENXJ~3>Xl7sv24*N4(6fM&j;Wrpg}Irr1r%7KC`V3OAU|4K zT3Q;IqpE>q1!#6r(lInOH83zhF$JOmmRXc^Ow5eIN+2Pan_5zos-$BWtK%5q862(T z3dwj%INM+Tn3e%?~L`%qvdIF9KDop!S4?k%h6jo`JcciGrblfq{a7f|;>}sim==iHV^R zC{tKkDi|o}T3TA_L3mJ70otx$VPN32ak5L#b+Rurb+W&8!^wV@qm%v22q*h#;QGSJ c@&A1%d+&vg3JeU63m6z2KQJ&Lvq6a%0D|0Lq5uE@ literal 0 HcmV?d00001 diff --git a/tests/resources/test_benchmark_output/doublet/HP_STIM/simplified__breakthrough_P50_HP_STIM.nc b/tests/resources/test_benchmark_output/doublet/HP_STIM/simplified__breakthrough_P50_HP_STIM.nc new file mode 100644 index 0000000000000000000000000000000000000000..358250753befe084cb9a11ecc5d26b222d9c5210 GIT binary patch literal 2368 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 literal 0 HcmV?d00001 diff --git a/tests/resources/test_benchmark_output/doublet/HP_STIM/simplified__capex_P50_HP_STIM.nc b/tests/resources/test_benchmark_output/doublet/HP_STIM/simplified__capex_P50_HP_STIM.nc new file mode 100644 index 0000000000000000000000000000000000000000..bee08c1236fb526f7fcc051b8c8ea37c3cc70418 GIT binary patch literal 2368 zcmZ>EabskF04@dw1||ju2F3~qpBcoiM6e+&1_o{h1_l-oPDw0Dgz14w@-Q$kfb?i%(9?D=A9MiO)?f%1p^jgakhW8z`(CM0-A(R_+6(HQuzuoZ{5@)WqTv zNWx%XfT(d~dVK)oCWDHC^J11#cnU* zzk=&q)-W(IC=@3r=A_1_B_@~T7sV%*U~@9q9{czI?QR()&0}C-P(;^*&n_f=*zygZ zb5O8CN@`kWUM4(!N~45fK~ZLIDoO}~-2?SAh~h6!&CQI@P0RxMpdu5TO2KLzBZA+0 zzHXIgU|YL0@Tg^8h(j+wE!xv{0Wo}sC!j*+FMo}sCcg`tr}Y^+W|kf*P!Z?uwo zQEF;ld1i8kl8!;FPN<(}NVHN)YI;#>s*;X@o`IpciK(%XrID$jrKO3nv5sSCh=+fW zXGmnUl50S)yONHQrJ<3LQfw?1851K5OOOo6f3D6Up8kH(O8(HYC>XgcQi|0Ha13(v zbq#S1idI5SVvuyDq+@ENXJ~3>Xl7sv24*N4(6fM&j;Wrpg}Irr1r%7KC`V3OAU|4K zT3Q;IqpE>q1!#6r(lInOH83zhF$JOmmRXc^Ow5eIN+2Pan_5zos-$BWtK%5q862(T z3dwj%INM+Tn3e%?~L`%qvdIF9KDop!S4?k%h6jo`JcciGrblfq{a7f|;>}sim==iHV^R zC{tKkDi|o}T3TA_L3mJ70otx$VPN32aa>rf=(zC0HOEDqnT`uDhBz+r*LGaww+xg( d9Vb4IbDX{Rp`!u=gX01Q2FDK!49IMd8UXV-V*>yH literal 0 HcmV?d00001 diff --git a/tests/resources/test_benchmark_output/doublet/HP_STIM/simplified__capex_P90_HP_STIM.nc b/tests/resources/test_benchmark_output/doublet/HP_STIM/simplified__capex_P90_HP_STIM.nc new file mode 100644 index 0000000000000000000000000000000000000000..62cd5ebe804d8bee6c8c6dfc6017176a111e7afc GIT binary patch literal 2368 zcmZ>EabskF04@dw1||ju2F3~qpBcoiM6e+&1_o{h1_l-oPDw0Dgz14w@-Q$kfb?i%(9?D=A9MiO)?f%1p^jgakhW8z`(CM0-A(R_+6(HQuzuoZ{5@)WqTv zNWx%XfT(d~dVK)oCWDHC^J11#cnU* zzk=&q)-W(IC=@3r=A_1_B_@~T7sV%*U~@9q9{czI?QR()&0}C-P(;^*&n_f=*zygZ zb5O8CN@`kWUM4(!N~45fK~ZLIDoO}~-2?SAh~h6!&CQI@P0RxMpdu5TO2KLzBZA+0 zzHXIgU|YL0@Tg^8h(j+wE!xv{0Wo}sC!j*+FMo}sCcg`tr}Y^+W|kf*P!Z?uwo zQEF;ld1i8kl8!;FPN<(}NVHN)YI;#>s*;X@o`IpciK(%XrID$jrKO3nv5sSCh=+fW zXGmnUl50S)yONHQrJ<3LQfw?1851K5OOOo6f3D6Up8kH(O8(HYC>XgcQi|0Ha13(v zbq#S1idI5SVvuyDq+@ENXJ~3>Xl7sv24*N4(6fM&j;Wrpg}Irr1r%7KC`V3OAU|4K zT3Q;IqpE>q1!#6r(lInOH83zhF$JOmmRXc^Ow5eIN+2Pan_5zos-$BWtK%5q862(T z3dwj%INM+Tn3e%?~L`%qvdIF9KDop!S4?k%h6jo`JcciGrblfq{a7f|;>}sim==iHV^R zC{tKkDi|o}T3TA_L3mJ70otx$VPN32aa>rP@3`=yj^iS(#g4Q6-Z(Duf9bf$uNIU* d9osrv9sAb=IVvzPI4)pdaQwi)fXoJ|0RZgrVwnH{ literal 0 HcmV?d00001 diff --git a/tests/resources/test_benchmark_output/doublet/HP_STIM/simplified__cop_P10_HP_STIM.nc b/tests/resources/test_benchmark_output/doublet/HP_STIM/simplified__cop_P10_HP_STIM.nc index 693fcd25384825c21baad23fb3c009d8b0bdebe5..ac10aaa7203b3190acfcdc4a05fbd257254a6c24 100644 GIT binary patch literal 2368 zcmZ>EabskF04@dw1||ju2F3~qpBcoiM6e+&1_o{h1_l-oPDw0Dgz14w@-Q$kfb?i%(9?D=A9MiO)?f%1p^jgakhW8z`(CM0-A(R_+6(HQuzuoZ{5@)WqTv zNWx%XfT(d~dVK)oCWDHC^J11#cnU* zzk=&q)-W(IC=@3r=A_1_B_@~T7sV%*U~@9q9{czI?QR()&0}C-P(;^*&n_f=*zygZ zb5O8CN@`kWUM4(!N~45fK~ZLIDoO}~-2?SAh~h6!&CQI@P0RxMpdu5TO2KLzBZA+0 zzHXIgU|YL0@Tg^8h(j+wE!xv{0Wo}sC!j*+FMo}sCcg`tr}Y^+W|kf*P!Z?uwo zQEF;ld1i8kl8!;FPN<(}NVHN)YI;#>s*;X@o`IpciK(%XrID$jrKO3nv5sSCh=+fW zXGmnUl50S)yONHQrJ<3LQfw?1851K5OOOo6f3D6Up8kH(O8(HYC>XgcQi|0Ha13(v zbq#S1idI5SVvuyDq+@ENXJ~3>Xl7sv24*N4(6fM&j;Wrpg}Irr1r%7KC`V3OAU|4K zT3Q;IqpE>q1!#6r(lInOH83zhF$JOmmRXc^Ow5eIN+2Pan_5zos-$BWtK%5q862(T z3dwj%INM+Tn3e%?~L`%qvdIF9KDop!S4?k%h6jo`JcciGrblfq{a7f|;>}sim==iHV^R zC{tKkDi|o}T3TA_L3mJ70otx$VPN32aeTD8!|~%gQOB>>+a1?SEpj~Err~(Gc_Ju* dI+k%NIJU93I4UqOI4)pdaQwi)fXoJ|0RR}4VzU4M literal 9412 zcmeD5aB<`1lHy|G;9!7(|4?v51tMYqp%@lMnpFFHxCAlrY++IYi!rl+DFz0p4h)Km ziGdNMgiQoQGQyNIFjl??2{14)h{`a4M41_Jnjs(nQhJRUL^3c0LnsEAiA+#FW5pyW z6QceCFGK?B2L=X)mvcQQf}PJhoskjj9wtUcMyRn2a9RZ9VnGFa21tN7Fqm*NnEYpE zU|{6~$uMg{#6hP2sE63Kf)B)FV3-7<;C^Dm=_ejXkWyv_5e6Ox5e9~MztocClr$6P z{QRPn%)G>s)M5q!4hC?@Ffb@EfE)@AM+OFv8$f!&m`5ALXJ%ky-~g$0_HhgjW)Nmz zU;qUfC^%d^eO>*6J^lUSgPk3HTp4&|7#Nrsm>F0h8vGo6UBT)>YC*V?0c0dI12Y33 z0}seZn9E!;b2C#=-2`?40|So>$eqj#+zcXMuefFA7WE8ie#u9MVdSi=gx*u^ob%+l!3yNk%5X)RKdW&;9?gcj4eJu7H*H#UhD7d;mzX; z@+v4I!D%Dj&pDtdzaX`!Br~-b9Os}c42tuz)S}|d{5)GDojhWFidZ@%bM0&18fy(Thk@bE-JnC7C-fcOJipl?on{CZhuAwxj)uT! z2#kinXb6mkz-S22GXy|Q3P@|$iXUPxthEbj;Sk+o1hr78*-zgM|GT zXs>1qNEn3KK?D?+O^iGWiY7KOkN_hKyi1duUvLE4{;k-5(gmaj6bGPYDdnwpo)}1% zf}cSE)c!~GID9;VLl`8Xoe^;c25^T8)c%Kg4Mu~!cLdxa1NCMg7{&*wndCCd7vyGG zJZM7WK?3AW1_lP690mqf24)6+1_O`_f?VBPgIxWbUE{$nFk^yrhf)$t5{pwy7#Ltq zNy*Gj%>%W388|@QC5WNe`&zKjgIdTSb>rGIWEVL?G&9iOMWC<)xk@C})fYsM;?WQo z4S~@R7)c@E?(FXaE(bxyIMN6iY@iM{)Cj6eK;Z%thYc8l#6b7}v|$5ckK)k~7!85Z k5Eu=C(GVC7fzc2c4S~@R7!85Z5Eu=C(GVC7fx#650AX!pivR!s diff --git a/tests/resources/test_benchmark_output/doublet/HP_STIM/simplified__cop_P50_HP_STIM.nc b/tests/resources/test_benchmark_output/doublet/HP_STIM/simplified__cop_P50_HP_STIM.nc index 8c46f796bae8d37f21b582000d3792e005ef84ae..d7d80accb77375c4783031288fd5c6996a13f090 100644 GIT binary patch literal 2368 zcmZ>EabskF04@dw1||ju2F3~qpBcoiM6e+&1_o{h1_l-oPDw0Dgz14w@-Q$kfb?i%(9?D=A9MiO)?f%1p^jgakhW8z`(CM0-A(R_+6(HQuzuoZ{5@)WqTv zNWx%XfT(d~dVK)oCWDHC^J11#cnU* zzk=&q)-W(IC=@3r=A_1_B_@~T7sV%*U~@9q9{czI?QR()&0}C-P(;^*&n_f=*zygZ zb5O8CN@`kWUM4(!N~45fK~ZLIDoO}~-2?SAh~h6!&CQI@P0RxMpdu5TO2KLzBZA+0 zzHXIgU|YL0@Tg^8h(j+wE!xv{0Wo}sC!j*+FMo}sCcg`tr}Y^+W|kf*P!Z?uwo zQEF;ld1i8kl8!;FPN<(}NVHN)YI;#>s*;X@o`IpciK(%XrID$jrKO3nv5sSCh=+fW zXGmnUl50S)yONHQrJ<3LQfw?1851K5OOOo6f3D6Up8kH(O8(HYC>XgcQi|0Ha13(v zbq#S1idI5SVvuyDq+@ENXJ~3>Xl7sv24*N4(6fM&j;Wrpg}Irr1r%7KC`V3OAU|4K zT3Q;IqpE>q1!#6r(lInOH83zhF$JOmmRXc^Ow5eIN+2Pan_5zos-$BWtK%5q862(T z3dwj%INM+Tn3e%?~L`%qvdIF9KDop!S4?k%h6jo`JcciGrblfq{a7f|;>}sim==iHV^R zC{tKkDi|o}T3TA_L3mJ70otx$VPN32aonq_>Ufqz-0@OfyJOeoe~xo^u5(=H7Y$0F dj->)G9ZM$ccT`|ta9qH^;P`=o0htX_0|4OgVwC^@ literal 9412 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 literal 0 HcmV?d00001 diff --git a/tests/resources/test_benchmark_output/doublet/HP_STIM/simplified__fixedopex_P50_HP_STIM.nc b/tests/resources/test_benchmark_output/doublet/HP_STIM/simplified__fixedopex_P50_HP_STIM.nc new file mode 100644 index 0000000000000000000000000000000000000000..fd4c949937f8426f17cb248759664deccb90ab8e GIT binary patch literal 2368 zcmZ>EabskF04@dw1||ju2F3~qpBcoiM6e+&1_o{h1_l-oPDw0Dgz14w@-Q$kfb?i%(9?D=A9MiO)?f%1p^jgakhW8z`(CM0-A(R_+6(HQuzuoZ{5@)WqTv zNWx%XfT(d~dVK)oCWDHC^J11#cnU* zzk=&q)-W(IC=@3r=A_1_B_@~T7sV%*U~@9q9{czI?QR()&0}C-P(;^*&n_f=*zygZ zb5O8CN@`kWUM4(!N~45fK~ZLIDoO}~-2?SAh~h6!&CQI@P0RxMpdu5TO2KLzBZA+0 zzHXIgU|YL0@Tg^8h(j+wE!xv{0Wo}sC!j*+FMo}sCcg`tr}Y^+W|kf*P!Z?uwo zQEF;ld1i8kl8!;FPN<(}NVHN)YI;#>s*;X@o`IpciK(%XrID$jrKO3nv5sSCh=+fW zXGmnUl50S)yONHQrJ<3LQfw?1851K5OOOo6f3D6Up8kH(O8(HYC>XgcQi|0Ha13(v zbq#S1idI5SVvuyDq+@ENXJ~3>Xl7sv24*N4(6fM&j;Wrpg}Irr1r%7KC`V3OAU|4K zT3Q;IqpE>q1!#6r(lInOH83zhF$JOmmRXc^Ow5eIN+2Pan_5zos-$BWtK%5q862(T z3dwj%INM+Tn3e%?~L`%qvdIF9KDop!S4?k%h6jo`JcciGrblfq{a7f|;>}sim==iHV^R zC{tKkDi|o}T3TA_L3mJ70otx$VPN32alF5##PNQwujBnbd&m3zYL53Sk2&5izXVF4 dj!W(5Iv(ZU>!`rM;JAQ+!SMqF12P+=1^_`7WHbN( literal 0 HcmV?d00001 diff --git a/tests/resources/test_benchmark_output/doublet/HP_STIM/simplified__fixedopex_P90_HP_STIM.nc b/tests/resources/test_benchmark_output/doublet/HP_STIM/simplified__fixedopex_P90_HP_STIM.nc new file mode 100644 index 0000000000000000000000000000000000000000..be8b6f457572cc033ec7c6d7f6b6a5d8f3115c16 GIT binary patch literal 2368 zcmZ>EabskF04@dw1||ju2F3~qpBcoiM6e+&1_o{h1_l-oPDw0Dgz14w@-Q$kfb?i%(9?D=A9MiO)?f%1p^jgakhW8z`(CM0-A(R_+6(HQuzuoZ{5@)WqTv zNWx%XfT(d~dVK)oCWDHC^J11#cnU* zzk=&q)-W(IC=@3r=A_1_B_@~T7sV%*U~@9q9{czI?QR()&0}C-P(;^*&n_f=*zygZ zb5O8CN@`kWUM4(!N~45fK~ZLIDoO}~-2?SAh~h6!&CQI@P0RxMpdu5TO2KLzBZA+0 zzHXIgU|YL0@Tg^8h(j+wE!xv{0Wo}sC!j*+FMo}sCcg`tr}Y^+W|kf*P!Z?uwo zQEF;ld1i8kl8!;FPN<(}NVHN)YI;#>s*;X@o`IpciK(%XrID$jrKO3nv5sSCh=+fW zXGmnUl50S)yONHQrJ<3LQfw?1851K5OOOo6f3D6Up8kH(O8(HYC>XgcQi|0Ha13(v zbq#S1idI5SVvuyDq+@ENXJ~3>Xl7sv24*N4(6fM&j;Wrpg}Irr1r%7KC`V3OAU|4K zT3Q;IqpE>q1!#6r(lInOH83zhF$JOmmRXc^Ow5eIN+2Pan_5zos-$BWtK%5q862(T z3dwj%INM+Tn3e%?~L`%qvdIF9KDop!S4?k%h6jo`JcciGrblfq{a7f|;>}sim==iHV^R zC{tKkDi|o}T3TA_L3mJ70otx$VPN32alF5FmgD`t36A$C-FG|@Q|)-aW{Tteatlxb db*wzx;W%r9s-pq}gX01Q2FDK!49IMd8USIAWTpTB literal 0 HcmV?d00001 diff --git a/tests/resources/test_benchmark_output/doublet/HP_STIM/simplified__flowr_P10_HP_STIM.nc b/tests/resources/test_benchmark_output/doublet/HP_STIM/simplified__flowr_P10_HP_STIM.nc index 8f01840b02a733b28ee48ca31d6a486edfc6cd29..f3774daa2c6774ab5056e6ce168b59c570043e6a 100644 GIT binary patch delta 78 zcmX>gbUD|4n!P`77A@=RYF`1_lP_=ci+x YfBygPsKCJBxPXDd@dE<`G8?1@0R6Baj{pDw delta 78 zcmX>gbUgbUgbUgbUgbUgbUgbUgbUgbUgbUgbUgbUgbUgbUgbUgbUgbUgbU*Y>*lN7+n@H delta 79 zcmX>gbU XtVqaFfq}ts0Rw~M2L=XYHb@NsAM+M& diff --git a/tests/resources/test_benchmark_output/doublet/HP_STIM/simplified__hprod_P90_HP_STIM.nc b/tests/resources/test_benchmark_output/doublet/HP_STIM/simplified__hprod_P90_HP_STIM.nc index 911c766791426f49a123d90723572f234bbcdd06..7d1be407f37f0cb781a77ddc146e7d42186e949b 100644 GIT binary patch delta 79 zcmX>gbUgbUgbUgbUgbUgbUgbUgbUgbUgbUgbUgbUgbUgbUgbUGUI%b#9{Fq=k)DljlOE?{7A{J_9~%m%3e00gbU{oOs@e_4uI5V4pfq}t(o7HCr Xxr;@P3JeU63m6z2KQJ&Lvq5SAf6EwJ diff --git a/tests/resources/test_benchmark_output/doublet/HP_STIM/simplified__npv_P50_HP_STIM.nc b/tests/resources/test_benchmark_output/doublet/HP_STIM/simplified__npv_P50_HP_STIM.nc index 7816c36420f0dc61c11b0100e2548169ad522c4c..9b8ae129a42f5a288f2c01f63abe307ab1e368ff 100644 GIT binary patch delta 79 zcmX>gbUgbU*Y>*lNRM8hV diff --git a/tests/resources/test_benchmark_output/doublet/HP_STIM/simplified__npv_P90_HP_STIM.nc b/tests/resources/test_benchmark_output/doublet/HP_STIM/simplified__npv_P90_HP_STIM.nc index 7c0997b9767683e38af87cdb0b4d11b46c0a4075..a76e47c6ccb7da33b3afd04c242000daebc91dac 100644 GIT binary patch delta 79 zcmX>gbUckL0Z!_+HFmU|?W4pf<5{ Y|2m%ojtUG6jtdwV96vBHAhSVg01@UJQvd(} delta 79 zcmX>gbUgbUgbUEabskF04@dw1||ju2F3~qpBcoiM6e+&1_o{h1_l-oPDw0Dgz14w@-Q$kfb?i%(9?D=A9MiO)?f%1p^jgakhW8z`(CM0-A(R_+6(HQuzuoZ{5@)WqTv zNWx%XfT(d~dVK)oCWDHC^J11#cnU* zzk=&q)-W(IC=@3r=A_1_B_@~T7sV%*U~@9q9{czI?QR()&0}C-P(;^*&n_f=*zygZ zb5O8CN@`kWUM4(!N~45fK~ZLIDoO}~-2?SAh~h6!&CQI@P0RxMpdu5TO2KLzBZA+0 zzHXIgU|YL0@Tg^8h(j+wE!xv{0Wo}sC!j*+FMo}sCcg`tr}Y^+W|kf*P!Z?uwo zQEF;ld1i8kl8!;FPN<(}NVHN)YI;#>s*;X@o`IpciK(%XrID$jrKO3nv5sSCh=+fW zXGmnUl50S)yONHQrJ<3LQfw?1851K5OOOo6f3D6Up8kH(O8(HYC>XgcQi|0Ha13(v zbq#S1idI5SVvuyDq+@ENXJ~3>Xl7sv24*N4(6fM&j;Wrpg}Irr1r%7KC`V3OAU|4K zT3Q;IqpE>q1!#6r(lInOH83zhF$JOmmRXc^Ow5eIN+2Pan_5zos-$BWtK%5q862(T z3dwj%INM+Tn3e%?~L`%qvdIF9KDop!S4?k%h6jo`JcciGrblfq{a7f|;>}sim==iHV^R zC{tKkDi|o}T3TA_L3mJ70otx$VPN32aqwwh=iv3t)4^+DzeBJ;n?nGfmV+OgIw*lU c_?H}Yh{=_5RA69mT)@EK_EabskF04@dw1||ju2F3~qpBcoiM6e+&1_o{h1_l-oPDw0Dgz14w@-Q$kfb?i%(9?D=A9MiO)?f%1p^jgakhW8z`(CM0-A(R_+6(HQuzuoZ{5@)WqTv zNWx%XfT(d~dVK)oCWDHC^J11#cnU* zzk=&q)-W(IC=@3r=A_1_B_@~T7sV%*U~@9q9{czI?QR()&0}C-P(;^*&n_f=*zygZ zb5O8CN@`kWUM4(!N~45fK~ZLIDoO}~-2?SAh~h6!&CQI@P0RxMpdu5TO2KLzBZA+0 zzHXIgU|YL0@Tg^8h(j+wE!xv{0Wo}sC!j*+FMo}sCcg`tr}Y^+W|kf*P!Z?uwo zQEF;ld1i8kl8!;FPN<(}NVHN)YI;#>s*;X@o`IpciK(%XrID$jrKO3nv5sSCh=+fW zXGmnUl50S)yONHQrJ<3LQfw?1851K5OOOo6f3D6Up8kH(O8(HYC>XgcQi|0Ha13(v zbq#S1idI5SVvuyDq+@ENXJ~3>Xl7sv24*N4(6fM&j;Wrpg}Irr1r%7KC`V3OAU|4K zT3Q;IqpE>q1!#6r(lInOH83zhF$JOmmRXc^Ow5eIN+2Pan_5zos-$BWtK%5q862(T z3dwj%INM+Tn3e%?~L`%qvdIF9KDop!S4?k%h6jo`JcciGrblfq{a7f|;>}sim==iHV^R zC{tKkDi|o}T3TA_L3mJ70otx$VPN32aR}5cbMSi>>fmR??htJ_(IKq&u|sgoW>5lk cP(3W~;Ci6iQGtQMaRCE^;|B%?WHv|*09wLdwg3PC literal 0 HcmV?d00001 diff --git a/tests/resources/test_benchmark_output/doublet/HP_STIM/simplified__opex_P90_HP_STIM.nc b/tests/resources/test_benchmark_output/doublet/HP_STIM/simplified__opex_P90_HP_STIM.nc new file mode 100644 index 0000000000000000000000000000000000000000..44e82f88308fa10f6f94e50c02b020f8cef0813e GIT binary patch literal 2368 zcmZ>EabskF04@dw1||ju2F3~qpBcoiM6e+&1_o{h1_l-oPDw0Dgz14w@-Q$kfb?i%(9?D=A9MiO)?f%1p^jgakhW8z`(CM0-A(R_+6(HQuzuoZ{5@)WqTv zNWx%XfT(d~dVK)oCWDHC^J11#cnU* zzk=&q)-W(IC=@3r=A_1_B_@~T7sV%*U~@9q9{czI?QR()&0}C-P(;^*&n_f=*zygZ zb5O8CN@`kWUM4(!N~45fK~ZLIDoO}~-2?SAh~h6!&CQI@P0RxMpdu5TO2KLzBZA+0 zzHXIgU|YL0@Tg^8h(j+wE!xv{0Wo}sC!j*+FMo}sCcg`tr}Y^+W|kf*P!Z?uwo zQEF;ld1i8kl8!;FPN<(}NVHN)YI;#>s*;X@o`IpciK(%XrID$jrKO3nv5sSCh=+fW zXGmnUl50S)yONHQrJ<3LQfw?1851K5OOOo6f3D6Up8kH(O8(HYC>XgcQi|0Ha13(v zbq#S1idI5SVvuyDq+@ENXJ~3>Xl7sv24*N4(6fM&j;Wrpg}Irr1r%7KC`V3OAU|4K zT3Q;IqpE>q1!#6r(lInOH83zhF$JOmmRXc^Ow5eIN+2Pan_5zos-$BWtK%5q862(T z3dwj%INM+Tn3e%?~L`%qvdIF9KDop!S4?k%h6jo`JcciGrblfq{a7f|;>}sim==iHV^R zC{tKkDi|o}T3TA_L3mJ70otx$VPN32afr}5?GUn+-y!(2jf2OMmk#llUpqu=I)M_X d{jcj^9He8T92FQC92YP!IDTMYKxTu~006^IVetR} literal 0 HcmV?d00001 diff --git a/tests/resources/test_benchmark_output/doublet/HP_STIM/simplified__porosity_HP_STIM.nc b/tests/resources/test_benchmark_output/doublet/HP_STIM/simplified__porosity_HP_STIM.nc index d1c7673d9ae84217bf9b2a332bb87be1ee26d13a..c76ce7dc2db077af7640ce3a062eac6abba74a4a 100644 GIT binary patch delta 15 XcmX>gbUgbUgbUK}=YtG_RIT>bEegbUH_mZmU|?WyT)dad YapUAYjtUG6jtdwV96vBHAhSVg0O@@iQ~&?~ diff --git a/tests/resources/test_benchmark_output/doublet/HP_STIM/simplified__power_P50_HP_STIM.nc b/tests/resources/test_benchmark_output/doublet/HP_STIM/simplified__power_P50_HP_STIM.nc index c51fa5cea46da5f2b173da072ca0b3bed8ccd4f7..cd031822bc3326b8f2ad5349cc9980904e84559b 100644 GIT binary patch delta 79 zcmX>gbUhIqiS3hrYT>XrNfq{X+vCgX6 Yar)FRjtUG6jtdwV96vBHAhSVg0AlGJzW@LL delta 79 zcmX>gbUFfcGUHs$Ye YoPBMIqXGki;{pZ-#}5n)$ZU`r0M73kH2?qr diff --git a/tests/resources/test_benchmark_output/doublet/HP_STIM/simplified__power_P90_HP_STIM.nc b/tests/resources/test_benchmark_output/doublet/HP_STIM/simplified__power_P90_HP_STIM.nc index d4a2aa16a6329afb05ec8d1c255c04364bc1ef6f..8a0c5ea8dab88cc86465a948d9a47fb078587cd5 100644 GIT binary patch delta 79 zcmX>gbUR delta 79 zcmX>gbUgbUgbUgbUgbUgbUgbUgbUgbUV`Hay WhQE#q3=ED77#JKsFfbsqL23Y*3m9|& diff --git a/tests/resources/test_benchmark_output/doublet/HP_STIM/simplified__pres_P50_HP_STIM.nc b/tests/resources/test_benchmark_output/doublet/HP_STIM/simplified__pres_P50_HP_STIM.nc index 725a0bc9ca15badc13fa238cedd0bbb865673c0e..bfdeccc4cc87203d392a3cbca533b9b6423b5a16 100644 GIT binary patch delta 42 ycmX>gbUgbUgbU2`1`U|?`6DEj9V=Fc}-f>Q$kgryJZ delta 43 zcmX>gbUum3Vxf>Q$kbe#{R diff --git a/tests/resources/test_benchmark_output/doublet/HP_STIM/simplified__temperature_HP_STIM.nc b/tests/resources/test_benchmark_output/doublet/HP_STIM/simplified__temperature_HP_STIM.nc index 3b7b58bacae4501a3388448336c0fe61e0456518..dfd9343a219f00c755aaccdbd387220542de7553 100644 GIT binary patch delta 15 XcmX>gbUgbUgbUgbUgbU delta 79 zcmX>gbUgbUgbU-9QGtQMaRCE^;|B%?WHv|*0Jd5gdjJ3c diff --git a/tests/resources/test_benchmark_output/doublet/HP_STIM/simplified__utc_P90_HP_STIM.nc b/tests/resources/test_benchmark_output/doublet/HP_STIM/simplified__utc_P90_HP_STIM.nc index d8e160ecf5af6aeb089d0ef566202ab4fe92599b..ff37e93906ae94210c704dad57cb649b4c1d8862 100644 GIT binary patch delta 79 zcmX>gbUzDvm4kPW|n6%FfcGUY;SOK YSbZ$rQGtQMaRCE^;|B%?WHv|*0O=1J6951J delta 79 zcmX>gbUEabskF04@dw1||ju2F3~qpBcoiM6e+&1_o{h1_l-oPDw0Dgz14w@-Q$kfb?i%(9?D=A9MiO)?f%1p^jgakhW8z`(CM0-A(R_+6(HQuzuoZ{5@)WqTv zNWx%XfT(d~dVK)oCWDHC^J11#cnU* zzk=&q)-W(IC=@3r=A_1_B_@~T7sV%*U~@9q9{czI?QR()&0}C-P(;^*&n_f=*zygZ zb5O8CN@`kWUM4(!N~45fK~ZLIDoO}~-2?SAh~h6!&CQI@P0RxMpdu5TO2KLzBZA+0 zzHXIgU|YL0@Tg^8h(j+wE!xv{0Wo}sC!j*+FMo}sCcg`tr}Y^+W|kf*P!Z?uwo zQEF;ld1i8kl8!;FPN<(}NVHN)YI;#>s*;X@o`IpciK(%XrID$jrKO3nv5sSCh=+fW zXGmnUl50S)yONHQrJ<3LQfw?1851K5OOOo6f3D6Up8kH(O8(HYC>XgcQi|0Ha13(v zbq#S1idI5SVvuyDq+@ENXJ~3>Xl7sv24*N4(6fM&j;Wrpg}Irr1r%7KC`V3OAU|4K zT3Q;IqpE>q1!#6r(lInOH83zhF$JOmmRXc^Ow5eIN+2Pan_5zos-$BWtK%5q862(T z3dwj%INM+Tn3e%?~L`%qvdIF9KDop!S4?k%h6jo`JcciGrblfq{a7f|;>}sim==iHV^R zC{tKkDi|o}T3TA_L3mJ70otx$VPN32ag5C2a17~+atzL0@0hEabskF04@dw1||ju2F3~qpBcoiM6e+&1_o{h1_l-oPDw0Dgz14w@-Q$kfb?i%(9?D=A9MiO)?f%1p^jgakhW8z`(CM0-A(R_+6(HQuzuoZ{5@)WqTv zNWx%XfT(d~dVK)oCWDHC^J11#cnU* zzk=&q)-W(IC=@3r=A_1_B_@~T7sV%*U~@9q9{czI?QR()&0}C-P(;^*&n_f=*zygZ zb5O8CN@`kWUM4(!N~45fK~ZLIDoO}~-2?SAh~h6!&CQI@P0RxMpdu5TO2KLzBZA+0 zzHXIgU|YL0@Tg^8h(j+wE!xv{0Wo}sC!j*+FMo}sCcg`tr}Y^+W|kf*P!Z?uwo zQEF;ld1i8kl8!;FPN<(}NVHN)YI;#>s*;X@o`IpciK(%XrID$jrKO3nv5sSCh=+fW zXGmnUl50S)yONHQrJ<3LQfw?1851K5OOOo6f3D6Up8kH(O8(HYC>XgcQi|0Ha13(v zbq#S1idI5SVvuyDq+@ENXJ~3>Xl7sv24*N4(6fM&j;Wrpg}Irr1r%7KC`V3OAU|4K zT3Q;IqpE>q1!#6r(lInOH83zhF$JOmmRXc^Ow5eIN+2Pan_5zos-$BWtK%5q862(T z3dwj%INM+Tn3e%?~L`%qvdIF9KDop!S4?k%h6jo`JcciGrblfq{a7f|;>}sim==iHV^R zC{tKkDi|o}T3TA_L3mJ70otx$VPN32am=W?;g}fs!!cfMren*(RL82wsgC)77lIO~ cV}R8w$BIcJjtUG6jtdwV96vBHAhSVg0MvV7_W%F@ literal 0 HcmV?d00001 diff --git a/tests/resources/test_benchmark_output/doublet/HP_STIM/simplified__varopex_P90_HP_STIM.nc b/tests/resources/test_benchmark_output/doublet/HP_STIM/simplified__varopex_P90_HP_STIM.nc new file mode 100644 index 0000000000000000000000000000000000000000..92046c52f7c20b66ffb740de2d52262df065b52f GIT binary patch literal 2368 zcmZ>EabskF04@dw1||ju2F3~qpBcoiM6e+&1_o{h1_l-oPDw0Dgz14w@-Q$kfb?i%(9?D=A9MiO)?f%1p^jgakhW8z`(CM0-A(R_+6(HQuzuoZ{5@)WqTv zNWx%XfT(d~dVK)oCWDHC^J11#cnU* zzk=&q)-W(IC=@3r=A_1_B_@~T7sV%*U~@9q9{czI?QR()&0}C-P(;^*&n_f=*zygZ zb5O8CN@`kWUM4(!N~45fK~ZLIDoO}~-2?SAh~h6!&CQI@P0RxMpdu5TO2KLzBZA+0 zzHXIgU|YL0@Tg^8h(j+wE!xv{0Wo}sC!j*+FMo}sCcg`tr}Y^+W|kf*P!Z?uwo zQEF;ld1i8kl8!;FPN<(}NVHN)YI;#>s*;X@o`IpciK(%XrID$jrKO3nv5sSCh=+fW zXGmnUl50S)yONHQrJ<3LQfw?1851K5OOOo6f3D6Up8kH(O8(HYC>XgcQi|0Ha13(v zbq#S1idI5SVvuyDq+@ENXJ~3>Xl7sv24*N4(6fM&j;Wrpg}Irr1r%7KC`V3OAU|4K zT3Q;IqpE>q1!#6r(lInOH83zhF$JOmmRXc^Ow5eIN+2Pan_5zos-$BWtK%5q862(T z3dwj%INM+Tn3e%?~L`%qvdIF9KDop!S4?k%h6jo`JcciGrblfq{a7f|;>}sim==iHV^R zC{tKkDi|o}T3TA_L3mJ70otx$VPN32aje&W;8>y`;8^H!%&|J|pJR{pX~&k;mq7{C cQTBGKqjSHcqXGki;{pZ-#}5n)$ZU`r0Kj))mjD0& literal 0 HcmV?d00001 diff --git a/tests/resources/test_benchmark_output/doublet/HP_STIM/simplified__welld_P10_HP_STIM.nc b/tests/resources/test_benchmark_output/doublet/HP_STIM/simplified__welld_P10_HP_STIM.nc index d380235ee50ef59ba4f884920dd42c1660cdb927..0562bc05eb1ffc5e77b6105ef07e85deaa33a9f8 100644 GIT binary patch delta 23 fcmX>gbUgbUgbUgbUgbUgbU Date: Fri, 30 Jan 2026 11:53:21 +0100 Subject: [PATCH 7/8] fixing the tests so they also check the values of the GA4A scenarios and not only a happy flow --- tests/java/test_utc_properties.py | 43 ++++++++++++------ .../ga4a/ga4a_ORC_new_config.nc | Bin 0 -> 18248 bytes .../ga4a/ga4a_chiller_new_config.nc | Bin 0 -> 18248 bytes .../ga4a/ga4a_directheatHP_new_config.nc | Bin 0 -> 18248 bytes .../ga4a/ga4a_directheat_new_config.nc | Bin 0 -> 18248 bytes 5 files changed, 28 insertions(+), 15 deletions(-) create mode 100644 tests/resources/test_benchmark_output/ga4a/ga4a_ORC_new_config.nc create mode 100644 tests/resources/test_benchmark_output/ga4a/ga4a_chiller_new_config.nc create mode 100644 tests/resources/test_benchmark_output/ga4a/ga4a_directheatHP_new_config.nc create mode 100644 tests/resources/test_benchmark_output/ga4a/ga4a_directheat_new_config.nc diff --git a/tests/java/test_utc_properties.py b/tests/java/test_utc_properties.py index 3a227eb..380bd86 100644 --- a/tests/java/test_utc_properties.py +++ b/tests/java/test_utc_properties.py @@ -4,6 +4,7 @@ from pythermogis import * class UTCBuilder(TestCase): scenarios_file_path = Path(__file__).parent.parent / "resources" / "test_input" / "scenarios" + benchmark_path = Path(__file__).parent.parent / "resources" / "test_benchmark_output" / "ga4a" def test_tg_scenario_xmls_parse_and_run(self): # These are the current 2.4 scenario settings, for BaseCase, HP, Stim and HP&Stim @@ -16,20 +17,32 @@ class UTCBuilder(TestCase): def test_ga4a_scenario_xmls_parse_and_run(self): # The ga4a scenarios no longer work as they are missing necessary input parameters; they were generated by an older version of TG, I corrected them using the gui, producing a new set of configs. scenarios = ["ga4a_ORC_new_config.xml", "ga4a_directheat_new_config.xml", "ga4a_directheatHP_new_config.xml", "ga4a_chiller_new_config.xml"] - utc_properties = [instantiate_utc_properties_from_xml(self.scenarios_file_path / scenario) for scenario in scenarios] - # If test reaches here, then parsing of xml's worked, check that the scenarios actually run on a set of test data: - [self.run_scenario(utc_property) for utc_property in utc_properties] - def run_scenario(self, utc_properties): - input_data = xr.Dataset({ - "thickness_mean": ((), 300), - "thickness_sd": ((), 50), - "ntg": ((), 0.5), - "porosity": ((), 0.5), - "depth": ((), 5000), - "ln_permeability_mean": ((), 5), - "ln_permeability_sd": ((), 0.5), - }) - - calculate_doublet_performance_stochastic(input_data, utc_properties=utc_properties) + # If test reaches here, then parsing of xml's worked, check that the scenarios actually run on a set of test data: + for scenario in scenarios: + utc_properties = instantiate_utc_properties_from_xml(self.scenarios_file_path / scenario) + benchmark_results = xr.load_dataset((self.benchmark_path / scenario).with_suffix(".nc")) + self.run_scenario(utc_properties, benchmark_results) + + def run_scenario(self, utc_properties, benchmark_results: xr.Dataset = None): + input_data = xr.Dataset( + { + "thickness_mean": ((), 300), + "thickness_sd": ((), 50), + "ntg": ((), 0.5), + "porosity": ((), 0.5), + "depth": ((), 5000), + "ln_permeability_mean": ((), 5), + "ln_permeability_sd": ((), 0.5), + } + ) + + results = calculate_doublet_performance_stochastic( + input_data, + utc_properties=utc_properties, + rng_seed=0 + ) + + if benchmark_results is not None: + xr.testing.assert_equal(results, benchmark_results) diff --git a/tests/resources/test_benchmark_output/ga4a/ga4a_ORC_new_config.nc b/tests/resources/test_benchmark_output/ga4a/ga4a_ORC_new_config.nc new file mode 100644 index 0000000000000000000000000000000000000000..565e5f79a6f0f12a230edd9284dcfe7023c03a0a GIT binary patch literal 18248 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 literal 0 HcmV?d00001 diff --git a/tests/resources/test_benchmark_output/ga4a/ga4a_directheatHP_new_config.nc b/tests/resources/test_benchmark_output/ga4a/ga4a_directheatHP_new_config.nc new file mode 100644 index 0000000000000000000000000000000000000000..fa2c74ace2ebb508f5a5bf3ea92370eeffde33f8 GIT binary patch literal 18248 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 literal 0 HcmV?d00001 -- GitLab From e353961e214f699283d357269d8c8478e2b904bd Mon Sep 17 00:00:00 2001 From: bretth Date: Fri, 30 Jan 2026 16:12:17 +0100 Subject: [PATCH 8/8] Fixing tests --- .../thermogis_jar/thermogis-1.7.0-shaded.jar | 4 +- tests/java/test_ThermoGISDoublet_Benchmark.py | 12 ++-- tests/java/test_utc_properties.py | 10 +-- .../HP/simplified__50yearcooling_P10_HP.nc | Bin 2368 -> 2368 bytes .../HP/simplified__50yearcooling_P50_HP.nc | Bin 2368 -> 2368 bytes .../HP/simplified__50yearcooling_P90_HP.nc | Bin 2368 -> 2368 bytes .../HP/simplified__breakthrough_P10_HP.nc | Bin 2368 -> 2368 bytes .../HP/simplified__breakthrough_P50_HP.nc | Bin 2368 -> 2368 bytes .../HP/simplified__breakthrough_P90_HP.nc | Bin 2368 -> 2368 bytes .../doublet/HP/simplified__capex_P10_HP.nc | Bin 2368 -> 2368 bytes .../doublet/HP/simplified__capex_P50_HP.nc | Bin 2368 -> 2368 bytes .../doublet/HP/simplified__capex_P90_HP.nc | Bin 2368 -> 2368 bytes .../doublet/HP/simplified__cop_P10_HP.nc | Bin 2368 -> 2368 bytes .../doublet/HP/simplified__cop_P50_HP.nc | Bin 2368 -> 2368 bytes .../doublet/HP/simplified__cop_P90_HP.nc | Bin 2368 -> 2368 bytes .../HP/simplified__fixedopex_P10_HP.nc | Bin 2368 -> 2368 bytes .../HP/simplified__fixedopex_P50_HP.nc | Bin 2368 -> 2368 bytes .../HP/simplified__fixedopex_P90_HP.nc | Bin 2368 -> 2368 bytes .../doublet/HP/simplified__flowr_P10_HP.nc | Bin 2368 -> 2368 bytes .../doublet/HP/simplified__flowr_P50_HP.nc | Bin 2368 -> 2368 bytes .../doublet/HP/simplified__flowr_P90_HP.nc | Bin 2368 -> 2368 bytes .../doublet/HP/simplified__hprod_P10_HP.nc | Bin 2368 -> 2368 bytes .../doublet/HP/simplified__hprod_P50_HP.nc | Bin 2368 -> 2368 bytes .../doublet/HP/simplified__hprod_P90_HP.nc | Bin 2368 -> 2368 bytes .../doublet/HP/simplified__npv_P10_HP.nc | Bin 2368 -> 2368 bytes .../doublet/HP/simplified__npv_P50_HP.nc | Bin 2368 -> 2368 bytes .../doublet/HP/simplified__npv_P90_HP.nc | Bin 2368 -> 2368 bytes .../doublet/HP/simplified__opex_P10_HP.nc | Bin 2368 -> 2368 bytes .../doublet/HP/simplified__opex_P50_HP.nc | Bin 2368 -> 2368 bytes .../doublet/HP/simplified__opex_P90_HP.nc | Bin 2368 -> 2368 bytes .../doublet/HP/simplified__power_P10_HP.nc | Bin 2368 -> 2368 bytes .../doublet/HP/simplified__power_P50_HP.nc | Bin 2368 -> 2368 bytes .../doublet/HP/simplified__power_P90_HP.nc | Bin 2368 -> 2368 bytes .../HP/simplified__power_heatpump_P10_HP.nc | Bin 2368 -> 2368 bytes .../HP/simplified__power_heatpump_P50_HP.nc | Bin 2368 -> 2368 bytes .../HP/simplified__power_heatpump_P90_HP.nc | Bin 2368 -> 2368 bytes .../doublet/HP/simplified__pres_P10_HP.nc | Bin 2368 -> 2368 bytes .../doublet/HP/simplified__pres_P50_HP.nc | Bin 2368 -> 2368 bytes .../doublet/HP/simplified__pres_P90_HP.nc | Bin 2368 -> 2368 bytes .../doublet/HP/simplified__utc_P10_HP.nc | Bin 2368 -> 2368 bytes .../doublet/HP/simplified__utc_P50_HP.nc | Bin 2368 -> 2368 bytes .../doublet/HP/simplified__utc_P90_HP.nc | Bin 2368 -> 2368 bytes .../doublet/HP/simplified__varopex_P10_HP.nc | Bin 2368 -> 2368 bytes .../doublet/HP/simplified__varopex_P50_HP.nc | Bin 2368 -> 2368 bytes .../doublet/HP/simplified__varopex_P90_HP.nc | Bin 2368 -> 2368 bytes .../doublet/HP/simplified__welld_P10_HP.nc | Bin 2368 -> 2368 bytes .../doublet/HP/simplified__welld_P50_HP.nc | Bin 2368 -> 2368 bytes .../doublet/HP/simplified__welld_P90_HP.nc | Bin 2368 -> 2368 bytes .../simplified__50yearcooling_P10_HP_STIM.nc | Bin 2368 -> 2368 bytes .../simplified__50yearcooling_P50_HP_STIM.nc | Bin 2368 -> 2368 bytes .../simplified__50yearcooling_P90_HP_STIM.nc | Bin 2368 -> 2368 bytes .../simplified__breakthrough_P10_HP_STIM.nc | Bin 2368 -> 2368 bytes .../simplified__breakthrough_P50_HP_STIM.nc | Bin 2368 -> 2368 bytes .../simplified__breakthrough_P90_HP_STIM.nc | Bin 2368 -> 2368 bytes .../HP_STIM/simplified__capex_P10_HP_STIM.nc | Bin 2368 -> 2368 bytes .../HP_STIM/simplified__capex_P50_HP_STIM.nc | Bin 2368 -> 2368 bytes .../HP_STIM/simplified__capex_P90_HP_STIM.nc | Bin 2368 -> 2368 bytes .../HP_STIM/simplified__cop_P10_HP_STIM.nc | Bin 2368 -> 2368 bytes .../HP_STIM/simplified__cop_P50_HP_STIM.nc | Bin 2368 -> 2368 bytes .../HP_STIM/simplified__cop_P90_HP_STIM.nc | Bin 2368 -> 2368 bytes .../simplified__fixedopex_P10_HP_STIM.nc | Bin 2368 -> 2368 bytes .../simplified__fixedopex_P50_HP_STIM.nc | Bin 2368 -> 2368 bytes .../simplified__fixedopex_P90_HP_STIM.nc | Bin 2368 -> 2368 bytes .../HP_STIM/simplified__flowr_P10_HP_STIM.nc | Bin 2368 -> 2368 bytes .../HP_STIM/simplified__flowr_P50_HP_STIM.nc | Bin 2368 -> 2368 bytes .../HP_STIM/simplified__flowr_P90_HP_STIM.nc | Bin 2368 -> 2368 bytes .../HP_STIM/simplified__hprod_P10_HP_STIM.nc | Bin 2368 -> 2368 bytes .../HP_STIM/simplified__hprod_P50_HP_STIM.nc | Bin 2368 -> 2368 bytes .../HP_STIM/simplified__hprod_P90_HP_STIM.nc | Bin 2368 -> 2368 bytes .../HP_STIM/simplified__npv_P10_HP_STIM.nc | Bin 2368 -> 2368 bytes .../HP_STIM/simplified__npv_P50_HP_STIM.nc | Bin 2368 -> 2368 bytes .../HP_STIM/simplified__npv_P90_HP_STIM.nc | Bin 2368 -> 2368 bytes .../HP_STIM/simplified__opex_P10_HP_STIM.nc | Bin 2368 -> 2368 bytes .../HP_STIM/simplified__opex_P50_HP_STIM.nc | Bin 2368 -> 2368 bytes .../HP_STIM/simplified__opex_P90_HP_STIM.nc | Bin 2368 -> 2368 bytes .../HP_STIM/simplified__power_P10_HP_STIM.nc | Bin 2368 -> 2368 bytes .../HP_STIM/simplified__power_P50_HP_STIM.nc | Bin 2368 -> 2368 bytes .../HP_STIM/simplified__power_P90_HP_STIM.nc | Bin 2368 -> 2368 bytes .../simplified__power_heatpump_P10_HP_STIM.nc | Bin 2368 -> 2368 bytes .../simplified__power_heatpump_P50_HP_STIM.nc | Bin 2368 -> 2368 bytes .../simplified__power_heatpump_P90_HP_STIM.nc | Bin 2368 -> 2368 bytes .../HP_STIM/simplified__pres_P10_HP_STIM.nc | Bin 2368 -> 2368 bytes .../HP_STIM/simplified__pres_P50_HP_STIM.nc | Bin 2368 -> 2368 bytes .../HP_STIM/simplified__pres_P90_HP_STIM.nc | Bin 2368 -> 2368 bytes .../HP_STIM/simplified__utc_P10_HP_STIM.nc | Bin 2368 -> 2368 bytes .../HP_STIM/simplified__utc_P50_HP_STIM.nc | Bin 2368 -> 2368 bytes .../HP_STIM/simplified__utc_P90_HP_STIM.nc | Bin 2368 -> 2368 bytes .../simplified__varopex_P10_HP_STIM.nc | Bin 2368 -> 2368 bytes .../simplified__varopex_P50_HP_STIM.nc | Bin 2368 -> 2368 bytes .../simplified__varopex_P90_HP_STIM.nc | Bin 2368 -> 2368 bytes .../HP_STIM/simplified__welld_P10_HP_STIM.nc | Bin 2368 -> 2368 bytes .../HP_STIM/simplified__welld_P50_HP_STIM.nc | Bin 2368 -> 2368 bytes .../HP_STIM/simplified__welld_P90_HP_STIM.nc | Bin 2368 -> 2368 bytes .../ga4a/ga4a_directheatHP_new_config.nc | Bin 18248 -> 18248 bytes .../test_pythermogis_doublet_benchmark.py | 68 ++++-------------- 95 files changed, 27 insertions(+), 67 deletions(-) diff --git a/src/pythermogis/thermogis_jar/thermogis-1.7.0-shaded.jar b/src/pythermogis/thermogis_jar/thermogis-1.7.0-shaded.jar index fc6552f..80f1bc2 100644 --- a/src/pythermogis/thermogis_jar/thermogis-1.7.0-shaded.jar +++ b/src/pythermogis/thermogis_jar/thermogis-1.7.0-shaded.jar @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:7bb756dd1bef93ebc739f5987d87f0552d24d2fa5b144a6e218966db2db9efbc -size 172249408 +oid sha256:4367dce45eaf82bb2a1665d00b374a601dc37b4e540645532612c5f9eafbc167 +size 172249041 diff --git a/tests/java/test_ThermoGISDoublet_Benchmark.py b/tests/java/test_ThermoGISDoublet_Benchmark.py index 2543995..2af7317 100644 --- a/tests/java/test_ThermoGISDoublet_Benchmark.py +++ b/tests/java/test_ThermoGISDoublet_Benchmark.py @@ -222,7 +222,7 @@ class ThermoGISDoubletBenchmark(TestCase): self.assertTrue(np.isclose(10.368587, results.utc(), 0.001)) self.assertTrue(np.isclose(17.378712, results.capex(), 0.001)) - def test_calculateDoubletPerformance_directheatHP_App(self): + def test_calculateDoubletPerformance_directheatHP2(self): """ This is a copy of a test from the Java ThermoGisDoubletTest.java script; to validate that this python implementation of the ThermoGIS Doublet returns the same values. @@ -272,11 +272,11 @@ class ThermoGISDoubletBenchmark(TestCase): self.assertTrue(np.isclose(17499.99940, transmissivity, 0.001)) self.assertTrue(np.isclose(163.99771118164062, results.flow(), 1)) self.assertTrue(np.isclose(60, results.pres(), 0.001)) - self.assertTrue(np.isclose(5.140035, results.power(), 0.001)) - self.assertTrue(np.isclose(977.9297, results.welld(), 0.001)) - self.assertTrue(np.isclose(2.7099774, results.cop(), 0.001)) - self.assertTrue(np.isclose(13.172601, results.utc(), 0.001)) - self.assertTrue(np.isclose(18.448061, results.capex(), 0.001)) + self.assertTrue(np.isclose(5.6734843, results.power(), 0.001)) + self.assertTrue(np.isclose(955.27344, results.welld(), 0.001)) + self.assertTrue(np.isclose(2.6190805, results.cop(), 0.001)) + self.assertTrue(np.isclose(13.150635, results.utc(), 0.001)) + self.assertTrue(np.isclose(19.1619, results.capex(), 0.001)) def test_calculateDoubletPerformance_ORC(self): """ diff --git a/tests/java/test_utc_properties.py b/tests/java/test_utc_properties.py index 380bd86..ea8ba59 100644 --- a/tests/java/test_utc_properties.py +++ b/tests/java/test_utc_properties.py @@ -22,10 +22,10 @@ class UTCBuilder(TestCase): # If test reaches here, then parsing of xml's worked, check that the scenarios actually run on a set of test data: for scenario in scenarios: utc_properties = instantiate_utc_properties_from_xml(self.scenarios_file_path / scenario) - benchmark_results = xr.load_dataset((self.benchmark_path / scenario).with_suffix(".nc")) - self.run_scenario(utc_properties, benchmark_results) + benchmark_path = (self.benchmark_path / scenario).with_suffix(".nc") + self.run_scenario(utc_properties, benchmark_path) - def run_scenario(self, utc_properties, benchmark_results: xr.Dataset = None): + def run_scenario(self, utc_properties, benchmark_path: Path = None): input_data = xr.Dataset( { "thickness_mean": ((), 300), @@ -44,5 +44,5 @@ class UTCBuilder(TestCase): rng_seed=0 ) - if benchmark_results is not None: - xr.testing.assert_equal(results, benchmark_results) + if benchmark_path is not None: + xr.testing.assert_equal(results, xr.load_dataset(benchmark_path)) diff --git a/tests/resources/test_benchmark_output/doublet/HP/simplified__50yearcooling_P10_HP.nc b/tests/resources/test_benchmark_output/doublet/HP/simplified__50yearcooling_P10_HP.nc index b29aac9e91a758e864c338536df8e2930dae06c1..c3c472d0fabed4fb4e5d21988ee6a122e822e700 100644 GIT binary patch delta 71 zcmX>gbULIgVX>3y5Saw delta 71 pcmX>gbU1A_w=%)o#UcT`|ta9qH^;P`=o0htX_0{|1i4MYF{ diff --git a/tests/resources/test_benchmark_output/doublet/HP/simplified__50yearcooling_P50_HP.nc b/tests/resources/test_benchmark_output/doublet/HP/simplified__50yearcooling_P50_HP.nc index b29aac9e91a758e864c338536df8e2930dae06c1..c3c472d0fabed4fb4e5d21988ee6a122e822e700 100644 GIT binary patch delta 71 zcmX>gbULIgVX>3y5Saw delta 71 pcmX>gbU1A_w=%)o#UcT`|ta9qH^;P`=o0htX_0{|1i4MYF{ diff --git a/tests/resources/test_benchmark_output/doublet/HP/simplified__50yearcooling_P90_HP.nc b/tests/resources/test_benchmark_output/doublet/HP/simplified__50yearcooling_P90_HP.nc index b29aac9e91a758e864c338536df8e2930dae06c1..c3c472d0fabed4fb4e5d21988ee6a122e822e700 100644 GIT binary patch delta 71 zcmX>gbULIgVX>3y5Saw delta 71 pcmX>gbU1A_w=%)o#UcT`|ta9qH^;P`=o0htX_0{|1i4MYF{ diff --git a/tests/resources/test_benchmark_output/doublet/HP/simplified__breakthrough_P10_HP.nc b/tests/resources/test_benchmark_output/doublet/HP/simplified__breakthrough_P10_HP.nc index 86c34882d161e72ebe5915b4fd5476a7ac250720..f53a0cc1ab40d5227bf9f2721a6c62ad037607b8 100644 GIT binary patch delta 70 zcmX>gbUgbUgbUgbUgbUgbUgbUgbUwF4q6*sKCJB QxPXDd@dE<`G8?1@0F|#5ng9R* diff --git a/tests/resources/test_benchmark_output/doublet/HP/simplified__capex_P50_HP.nc b/tests/resources/test_benchmark_output/doublet/HP/simplified__capex_P50_HP.nc index bee08c1236fb526f7fcc051b8c8ea37c3cc70418..2bd49a68a5a0c20e73a1a9ac1daeab143812e809 100644 GIT binary patch delta 71 zcmX>gbUgbU>hhcrnCrk-xU%BEMw}3=9m86Q9R9&ffdbQGtQM QaRCE^;|B%?WHv|*0IgbUYf8d4*$+_k#KzUoL56U|?WyT(VZdaqG=4M+F83 Q#{~=wjvp8pkl7$L0AZ9Fb^rhX delta 71 zcmX>gbUU_tA7j+yLaV>V7?f1rUk^f7_MSism3=9m8ZJn)-{cD086&M&C Q7cek5eqdlgW`ooK0IGf#00000 diff --git a/tests/resources/test_benchmark_output/doublet/HP/simplified__cop_P10_HP.nc b/tests/resources/test_benchmark_output/doublet/HP/simplified__cop_P10_HP.nc index ac10aaa7203b3190acfcdc4a05fbd257254a6c24..c0a2495f72e09aa34443187c42ef367c343db95b 100644 GIT binary patch delta 71 zcmX>gbUgbU--$YYz25G)UTTr!;WiD&%gqxR7#J8F%QzJr+t^zi6&M&C Q7cek5eqdlgW`ooK0M-*08UO$Q diff --git a/tests/resources/test_benchmark_output/doublet/HP/simplified__cop_P50_HP.nc b/tests/resources/test_benchmark_output/doublet/HP/simplified__cop_P50_HP.nc index d7d80accb77375c4783031288fd5c6996a13f090..d19701951d59df649d7d7643bbc5802a39396630 100644 GIT binary patch delta 71 zcmX>gbUYyV*Y>*lNC(RS^ delta 71 zcmX>gbUe?NgbU=KOQgbUgbU=-9yyH`%i)*TEC3=B@}E9W@LRnBx&U|?`u Pz`)@6fq?;;4N?OD+C>q^ delta 71 zcmX>gbUU{n88u1_lPlb3cL|@8=ddDljlO QE?{7A{J_9~%m%3e04<&vsQ>@~ diff --git a/tests/resources/test_benchmark_output/doublet/HP/simplified__fixedopex_P50_HP.nc b/tests/resources/test_benchmark_output/doublet/HP/simplified__fixedopex_P50_HP.nc index fd4c949937f8426f17cb248759664deccb90ab8e..42875864d8a8e2e0d2dcf046bf9807180ef4785c 100644 GIT binary patch delta 71 zcmX>gbU9vRKE@MJ delta 71 zcmX>gbU&e)%N^1_lPlrS@|jkMi$zRA69m QT)@EK_gbU*Y>*lN4R;eV delta 71 zcmX>gbU@0VLJFfcGURvzwfoV7vKQGtQM QaRCE^;|B%?WHv|*04s7BJ^%m! diff --git a/tests/resources/test_benchmark_output/doublet/HP/simplified__flowr_P10_HP.nc b/tests/resources/test_benchmark_output/doublet/HP/simplified__flowr_P10_HP.nc index f3774daa2c6774ab5056e6ce168b59c570043e6a..65ff038ffc5b96e7bacaee67289ae1728359a45b 100644 GIT binary patch delta 70 zcmX>gbUFE2NDTmQ>lxz! delta 70 zcmX>gbUgbUjQO!?|3JeU6 P3m6z2KQJ&Lvq5SAf|DAS delta 70 zcmX>gbUgbU9vR1-lnM delta 70 zcmX>gbUXEQFfcgx`UE9vRHG~+h diff --git a/tests/resources/test_benchmark_output/doublet/HP/simplified__hprod_P10_HP.nc b/tests/resources/test_benchmark_output/doublet/HP/simplified__hprod_P10_HP.nc index e058c732c0ec69a6d30ba5b83dde8708b5f3828a..203a04e066277db9fa39971348c6cd108978e2a1 100644 GIT binary patch delta 71 zcmX>gbUgbUgbUFsr{tmB-2^wBCoOxa~?AsU^7#O^i{ldN645SLIgVX>32t5)d delta 71 zcmX>gbUgbUgbUM=U|{gvS>@^ZbibUV0t18N P0tN=h4-5>*Y>*lN^5PQ- diff --git a/tests/resources/test_benchmark_output/doublet/HP/simplified__npv_P10_HP.nc b/tests/resources/test_benchmark_output/doublet/HP/simplified__npv_P10_HP.nc index dc3ac74fd733cc7d762e105b3dfcb3a306e1fc73..53958df4b11afbd7558f92455ca41a20bde86888 100644 GIT binary patch delta 71 zcmX>gbUgbUM4h+sc#&r_sw>2`P1tVX4B}9ob`}_fq}ukso2gbUgbUgbUufYpLmhnT78UbUAw*sJ*?Cfq{YHz>&u$2ewV#;HbdB R;JAQ+!SMqF12P+=1^|)i8tMQ5 delta 71 zcmX>gbUgbUgbU__Q4S*wh&q7#JMgbU0>W!{YMojtUG6 QjtdwV96vBHAhSVg0B747>i_@% delta 71 zcmX>gbU=8+M0i!-)=Iy^kG&V>UA|Ffcf%9+r1-Jy7kaz`)?R PfPumB0|Nsx8>9vR7>^Sk diff --git a/tests/resources/test_benchmark_output/doublet/HP/simplified__opex_P90_HP.nc b/tests/resources/test_benchmark_output/doublet/HP/simplified__opex_P90_HP.nc index 44e82f88308fa10f6f94e50c02b020f8cef0813e..926c3868fa3af90960a09710b4ef7c5bb270239a 100644 GIT binary patch delta 71 zcmX>gbUn+a delta 71 zcmX>gbU)ETGNSvfq}vP*Yz(B(y>vF3JeU6 P3m6z2KQJ&Lvq5SAfg2TB diff --git a/tests/resources/test_benchmark_output/doublet/HP/simplified__power_P10_HP.nc b/tests/resources/test_benchmark_output/doublet/HP/simplified__power_P10_HP.nc index af95187a4abbfd6944a454e9f026545b881147e2..b7624ae049113d2daf41b441bae5a1608db8e12a 100644 GIT binary patch delta 71 zcmX>gbU6{Xj delta 71 zcmX>gbUV6ofq{X+alWapgbU-BOTOK+w>}hmj>J)Ke>M&qnU|?`usd2~gtk-5o1qKGk P1q=+19~c;r*&sCl6ZR7z delta 71 zcmX>gbUgO$vtDmtjFfcGU)>&0MPM`Y4QGtQM QaRCE^;|B%?WHv|*03U%EUH||9 diff --git a/tests/resources/test_benchmark_output/doublet/HP/simplified__power_P90_HP.nc b/tests/resources/test_benchmark_output/doublet/HP/simplified__power_P90_HP.nc index 8a0c5ea8dab88cc86465a948d9a47fb078587cd5..10792f93c9f7e5644268a8b7c156d4db6f70fe14 100644 GIT binary patch delta 71 zcmX>gbUG9roODZiR@W0t18N P0tN=h4-5>*Y>*lNL-iC5 delta 71 zcmX>gbUX&OBS3m7zU|?WybWm_~%>C`_sKCJB QxPXDd@dE<`G8?1@0Q*oEWB>pF diff --git a/tests/resources/test_benchmark_output/doublet/HP/simplified__power_heatpump_P10_HP.nc b/tests/resources/test_benchmark_output/doublet/HP/simplified__power_heatpump_P10_HP.nc index a206de3f94f56f0ea58acc1ac71d8eeb02788b8c..f2f33e9af244c7fc093fcacd59b2819fc975e727 100644 GIT binary patch delta 71 zcmX>gbUXE+?0&nY=FAFp#{K023yfq}u{cK$Pm|33p96&M&C Q7cek5eqdlgW`ooK05<3pUjP6A delta 71 hcmX>gbUgbUgbUgbUgbUgbUgbUgbUvxT-)A~WnyEV#Ffcd;AG_*gJGpPN1g8c7<1`FC delta 35 qcmX>gbUgbUgbUMMgN?_{P`wJaB2Vm*=`G0 diff --git a/tests/resources/test_benchmark_output/doublet/HP/simplified__utc_P10_HP.nc b/tests/resources/test_benchmark_output/doublet/HP/simplified__utc_P10_HP.nc index 3425ad0d93d9cd3792d29a74851e33c2b7b74df2..ffe0d659e129a0931a2b4cd65b606f501c1290ef 100644 GIT binary patch delta 71 zcmX>gbUgbUgbU?bNjeUzB3C-ByXx++=0~W*>Z?u+3=9koyFG0kwwmZWDljlO QE?{7A{J_9~%m%3e0Hb~toB#j- delta 71 zcmX>gbU}UW-(hx`ykxh-OuKZ4=>;borg6_=U|?WySixT4u;9QdM+F83 Q#{~=wjvp8pkl7$L0ISdy@c;k- diff --git a/tests/resources/test_benchmark_output/doublet/HP/simplified__utc_P90_HP.nc b/tests/resources/test_benchmark_output/doublet/HP/simplified__utc_P90_HP.nc index ff37e93906ae94210c704dad57cb649b4c1d8862..c82c1d492cacd2f7dad10ba143861f23670d93f0 100644 GIT binary patch delta 71 zcmX>gbU@3oiKueeQrPFP;pPvAb!)R27#J8Fjz2o;urIRQQGtQM QaRCE^;|B%?WHv|*0P$@X&j0`b delta 71 zcmX>gbUgbUJ*IS)5P0}0{7#JKE PFfcfNU|>LIgVX>3w;m9; delta 71 zcmX>gbU9vRO(_&u diff --git a/tests/resources/test_benchmark_output/doublet/HP/simplified__varopex_P50_HP.nc b/tests/resources/test_benchmark_output/doublet/HP/simplified__varopex_P50_HP.nc index 2d436b22dfe554a3910813df3fb9a01fc8cf1655..e02de9b9cc1812722aafa7e228b478e071894a74 100644 GIT binary patch delta 71 zcmX>gbUgbUM7N$B@MNW0h|GSWZfq}s>!0MG_#Uv3&1qKGk P1q=+19~c;r*&sClo?jJ@ diff --git a/tests/resources/test_benchmark_output/doublet/HP/simplified__varopex_P90_HP.nc b/tests/resources/test_benchmark_output/doublet/HP/simplified__varopex_P90_HP.nc index 92046c52f7c20b66ffb740de2d52262df065b52f..783a0c2e2922e030b6c6f94f98b760aef035abd5 100644 GIT binary patch delta 71 zcmX>gbUgbU8k7JJ2asM29tWP_(tiH^^z`)=rdpp(9xnI&zfq}ts P0Rw~M2L=XYHb@Nsidz*g diff --git a/tests/resources/test_benchmark_output/doublet/HP/simplified__welld_P10_HP.nc b/tests/resources/test_benchmark_output/doublet/HP/simplified__welld_P10_HP.nc index 0562bc05eb1ffc5e77b6105ef07e85deaa33a9f8..de1150010b73958be14be32d069dff1c85ea1581 100644 GIT binary patch delta 43 pcmX>gbUET?ko!~-rfQw}&PFfceSU|?|kz`%gaW?*1o001*l3tIpH delta 43 pcmX>gbUET?jxzyX(8=N%js7#JKEFfcfNU|>LIGcYhP001GA3eNxl diff --git a/tests/resources/test_benchmark_output/doublet/HP/simplified__welld_P50_HP.nc b/tests/resources/test_benchmark_output/doublet/HP/simplified__welld_P50_HP.nc index c1aabc3c5bc9cb92b3b94e63d50a0370e12fc758..caddb8052e040190368eb0d791d4a6bb766a0fc7 100644 GIT binary patch delta 43 ocmX>gbUET?kzp9YuCiw=$o3=ED77#JKsFfbsq85kHC05T5?NdN!< delta 43 ocmX>gbUET?kKuLhS%0S=A|3=ED77#JKsFfbsq85kHC045g--~a#s diff --git a/tests/resources/test_benchmark_output/doublet/HP/simplified__welld_P90_HP.nc b/tests/resources/test_benchmark_output/doublet/HP/simplified__welld_P90_HP.nc index 894c1cfa94017b3fd2606f9c701dba1ca273684e..9dc6ae19c35848535bc0f3ee95518937fdc4ee09 100644 GIT binary patch delta 59 zcmX>gbU9vR DOym%9 delta 59 zcmX>gbUgbULIgVX>3y5Saw delta 71 pcmX>gbU1A_w=%)o#UcT`|ta9qH^;P`=o0htX_0{|1i4MYF{ diff --git a/tests/resources/test_benchmark_output/doublet/HP_STIM/simplified__50yearcooling_P50_HP_STIM.nc b/tests/resources/test_benchmark_output/doublet/HP_STIM/simplified__50yearcooling_P50_HP_STIM.nc index b29aac9e91a758e864c338536df8e2930dae06c1..c3c472d0fabed4fb4e5d21988ee6a122e822e700 100644 GIT binary patch delta 71 zcmX>gbULIgVX>3y5Saw delta 71 pcmX>gbU1A_w=%)o#UcT`|ta9qH^;P`=o0htX_0{|1i4MYF{ diff --git a/tests/resources/test_benchmark_output/doublet/HP_STIM/simplified__50yearcooling_P90_HP_STIM.nc b/tests/resources/test_benchmark_output/doublet/HP_STIM/simplified__50yearcooling_P90_HP_STIM.nc index b29aac9e91a758e864c338536df8e2930dae06c1..c3c472d0fabed4fb4e5d21988ee6a122e822e700 100644 GIT binary patch delta 71 zcmX>gbULIgVX>3y5Saw delta 71 pcmX>gbU1A_w=%)o#UcT`|ta9qH^;P`=o0htX_0{|1i4MYF{ diff --git a/tests/resources/test_benchmark_output/doublet/HP_STIM/simplified__breakthrough_P10_HP_STIM.nc b/tests/resources/test_benchmark_output/doublet/HP_STIM/simplified__breakthrough_P10_HP_STIM.nc index 86c34882d161e72ebe5915b4fd5476a7ac250720..f53a0cc1ab40d5227bf9f2721a6c62ad037607b8 100644 GIT binary patch delta 70 zcmX>gbUgbUgbUgbUgbUgbUgbUgbUwF4q6*sKCJB QxPXDd@dE<`G8?1@0F|#5ng9R* diff --git a/tests/resources/test_benchmark_output/doublet/HP_STIM/simplified__capex_P50_HP_STIM.nc b/tests/resources/test_benchmark_output/doublet/HP_STIM/simplified__capex_P50_HP_STIM.nc index bee08c1236fb526f7fcc051b8c8ea37c3cc70418..2bd49a68a5a0c20e73a1a9ac1daeab143812e809 100644 GIT binary patch delta 71 zcmX>gbUgbU>hhcrnCrk-xU%BEMw}3=9m86Q9R9&ffdbQGtQM QaRCE^;|B%?WHv|*0IgbUYf8d4*$+_k#KzUoL56U|?WyT(VZdaqG=4M+F83 Q#{~=wjvp8pkl7$L0AZ9Fb^rhX delta 71 zcmX>gbUU_tA7j+yLaV>V7?f1rUk^f7_MSism3=9m8ZJn)-{cD086&M&C Q7cek5eqdlgW`ooK0IGf#00000 diff --git a/tests/resources/test_benchmark_output/doublet/HP_STIM/simplified__cop_P10_HP_STIM.nc b/tests/resources/test_benchmark_output/doublet/HP_STIM/simplified__cop_P10_HP_STIM.nc index ac10aaa7203b3190acfcdc4a05fbd257254a6c24..c0a2495f72e09aa34443187c42ef367c343db95b 100644 GIT binary patch delta 71 zcmX>gbUgbU--$YYz25G)UTTr!;WiD&%gqxR7#J8F%QzJr+t^zi6&M&C Q7cek5eqdlgW`ooK0M-*08UO$Q diff --git a/tests/resources/test_benchmark_output/doublet/HP_STIM/simplified__cop_P50_HP_STIM.nc b/tests/resources/test_benchmark_output/doublet/HP_STIM/simplified__cop_P50_HP_STIM.nc index d7d80accb77375c4783031288fd5c6996a13f090..d19701951d59df649d7d7643bbc5802a39396630 100644 GIT binary patch delta 71 zcmX>gbUYyV*Y>*lNC(RS^ delta 71 zcmX>gbUe?NgbU=KOQgbUgbU=-9yyH`%i)*TEC3=B@}E9W@LRnBx&U|?`u Pz`)@6fq?;;4N?OD+C>q^ delta 71 zcmX>gbUU{n88u1_lPlb3cL|@8=ddDljlO QE?{7A{J_9~%m%3e04<&vsQ>@~ diff --git a/tests/resources/test_benchmark_output/doublet/HP_STIM/simplified__fixedopex_P50_HP_STIM.nc b/tests/resources/test_benchmark_output/doublet/HP_STIM/simplified__fixedopex_P50_HP_STIM.nc index fd4c949937f8426f17cb248759664deccb90ab8e..42875864d8a8e2e0d2dcf046bf9807180ef4785c 100644 GIT binary patch delta 71 zcmX>gbU9vRKE@MJ delta 71 zcmX>gbU&e)%N^1_lPlrS@|jkMi$zRA69m QT)@EK_gbU*Y>*lN4R;eV delta 71 zcmX>gbU@0VLJFfcGURvzwfoV7vKQGtQM QaRCE^;|B%?WHv|*04s7BJ^%m! diff --git a/tests/resources/test_benchmark_output/doublet/HP_STIM/simplified__flowr_P10_HP_STIM.nc b/tests/resources/test_benchmark_output/doublet/HP_STIM/simplified__flowr_P10_HP_STIM.nc index f3774daa2c6774ab5056e6ce168b59c570043e6a..65ff038ffc5b96e7bacaee67289ae1728359a45b 100644 GIT binary patch delta 70 zcmX>gbUFE2NDTmQ>lxz! delta 70 zcmX>gbUgbUjQO!?|3JeU6 P3m6z2KQJ&Lvq5SAf|DAS delta 70 zcmX>gbUgbU9vR1-lnM delta 70 zcmX>gbUXEQFfcgx`UE9vRHG~+h diff --git a/tests/resources/test_benchmark_output/doublet/HP_STIM/simplified__hprod_P10_HP_STIM.nc b/tests/resources/test_benchmark_output/doublet/HP_STIM/simplified__hprod_P10_HP_STIM.nc index e058c732c0ec69a6d30ba5b83dde8708b5f3828a..203a04e066277db9fa39971348c6cd108978e2a1 100644 GIT binary patch delta 71 zcmX>gbUgbUgbUFsr{tmB-2^wBCoOxa~?AsU^7#O^i{ldN645SLIgVX>32t5)d delta 71 zcmX>gbUgbUgbUM=U|{gvS>@^ZbibUV0t18N P0tN=h4-5>*Y>*lN^5PQ- diff --git a/tests/resources/test_benchmark_output/doublet/HP_STIM/simplified__npv_P10_HP_STIM.nc b/tests/resources/test_benchmark_output/doublet/HP_STIM/simplified__npv_P10_HP_STIM.nc index dc3ac74fd733cc7d762e105b3dfcb3a306e1fc73..53958df4b11afbd7558f92455ca41a20bde86888 100644 GIT binary patch delta 71 zcmX>gbUgbUM4h+sc#&r_sw>2`P1tVX4B}9ob`}_fq}ukso2gbUgbUgbUufYpLmhnT78UbUAw*sJ*?Cfq{YHz>&u$2ewV#;HbdB R;JAQ+!SMqF12P+=1^|)i8tMQ5 delta 71 zcmX>gbUgbUgbU__Q4S*wh&q7#JMgbU0>W!{YMojtUG6 QjtdwV96vBHAhSVg0B747>i_@% delta 71 zcmX>gbU=8+M0i!-)=Iy^kG&V>UA|Ffcf%9+r1-Jy7kaz`)?R PfPumB0|Nsx8>9vR7>^Sk diff --git a/tests/resources/test_benchmark_output/doublet/HP_STIM/simplified__opex_P90_HP_STIM.nc b/tests/resources/test_benchmark_output/doublet/HP_STIM/simplified__opex_P90_HP_STIM.nc index 44e82f88308fa10f6f94e50c02b020f8cef0813e..926c3868fa3af90960a09710b4ef7c5bb270239a 100644 GIT binary patch delta 71 zcmX>gbUn+a delta 71 zcmX>gbU)ETGNSvfq}vP*Yz(B(y>vF3JeU6 P3m6z2KQJ&Lvq5SAfg2TB diff --git a/tests/resources/test_benchmark_output/doublet/HP_STIM/simplified__power_P10_HP_STIM.nc b/tests/resources/test_benchmark_output/doublet/HP_STIM/simplified__power_P10_HP_STIM.nc index af95187a4abbfd6944a454e9f026545b881147e2..b7624ae049113d2daf41b441bae5a1608db8e12a 100644 GIT binary patch delta 71 zcmX>gbU6{Xj delta 71 zcmX>gbUV6ofq{X+alWapgbU-BOTOK+w>}hmj>J)Ke>M&qnU|?`usd2~gtk-5o1qKGk P1q=+19~c;r*&sCl6ZR7z delta 71 zcmX>gbUgO$vtDmtjFfcGU)>&0MPM`Y4QGtQM QaRCE^;|B%?WHv|*03U%EUH||9 diff --git a/tests/resources/test_benchmark_output/doublet/HP_STIM/simplified__power_P90_HP_STIM.nc b/tests/resources/test_benchmark_output/doublet/HP_STIM/simplified__power_P90_HP_STIM.nc index 8a0c5ea8dab88cc86465a948d9a47fb078587cd5..10792f93c9f7e5644268a8b7c156d4db6f70fe14 100644 GIT binary patch delta 71 zcmX>gbUG9roODZiR@W0t18N P0tN=h4-5>*Y>*lNL-iC5 delta 71 zcmX>gbUX&OBS3m7zU|?WybWm_~%>C`_sKCJB QxPXDd@dE<`G8?1@0Q*oEWB>pF diff --git a/tests/resources/test_benchmark_output/doublet/HP_STIM/simplified__power_heatpump_P10_HP_STIM.nc b/tests/resources/test_benchmark_output/doublet/HP_STIM/simplified__power_heatpump_P10_HP_STIM.nc index a206de3f94f56f0ea58acc1ac71d8eeb02788b8c..f2f33e9af244c7fc093fcacd59b2819fc975e727 100644 GIT binary patch delta 71 zcmX>gbUXE+?0&nY=FAFp#{K023yfq}u{cK$Pm|33p96&M&C Q7cek5eqdlgW`ooK05<3pUjP6A delta 71 hcmX>gbUgbUgbUgbUgbUgbUgbUgbUvxT-)A~WnyEV#Ffcd;AG_*gJGpPN1g8c7<1`FC delta 35 qcmX>gbUgbUgbUMMgN?_{P`wJaB2Vm*=`G0 diff --git a/tests/resources/test_benchmark_output/doublet/HP_STIM/simplified__utc_P10_HP_STIM.nc b/tests/resources/test_benchmark_output/doublet/HP_STIM/simplified__utc_P10_HP_STIM.nc index 3425ad0d93d9cd3792d29a74851e33c2b7b74df2..ffe0d659e129a0931a2b4cd65b606f501c1290ef 100644 GIT binary patch delta 71 zcmX>gbUgbUgbU?bNjeUzB3C-ByXx++=0~W*>Z?u+3=9koyFG0kwwmZWDljlO QE?{7A{J_9~%m%3e0Hb~toB#j- delta 71 zcmX>gbU}UW-(hx`ykxh-OuKZ4=>;borg6_=U|?WySixT4u;9QdM+F83 Q#{~=wjvp8pkl7$L0ISdy@c;k- diff --git a/tests/resources/test_benchmark_output/doublet/HP_STIM/simplified__utc_P90_HP_STIM.nc b/tests/resources/test_benchmark_output/doublet/HP_STIM/simplified__utc_P90_HP_STIM.nc index ff37e93906ae94210c704dad57cb649b4c1d8862..c82c1d492cacd2f7dad10ba143861f23670d93f0 100644 GIT binary patch delta 71 zcmX>gbU@3oiKueeQrPFP;pPvAb!)R27#J8Fjz2o;urIRQQGtQM QaRCE^;|B%?WHv|*0P$@X&j0`b delta 71 zcmX>gbUgbUJ*IS)5P0}0{7#JKE PFfcfNU|>LIgVX>3w;m9; delta 71 zcmX>gbU9vRO(_&u diff --git a/tests/resources/test_benchmark_output/doublet/HP_STIM/simplified__varopex_P50_HP_STIM.nc b/tests/resources/test_benchmark_output/doublet/HP_STIM/simplified__varopex_P50_HP_STIM.nc index 2d436b22dfe554a3910813df3fb9a01fc8cf1655..e02de9b9cc1812722aafa7e228b478e071894a74 100644 GIT binary patch delta 71 zcmX>gbUgbUM7N$B@MNW0h|GSWZfq}s>!0MG_#Uv3&1qKGk P1q=+19~c;r*&sClo?jJ@ diff --git a/tests/resources/test_benchmark_output/doublet/HP_STIM/simplified__varopex_P90_HP_STIM.nc b/tests/resources/test_benchmark_output/doublet/HP_STIM/simplified__varopex_P90_HP_STIM.nc index 92046c52f7c20b66ffb740de2d52262df065b52f..783a0c2e2922e030b6c6f94f98b760aef035abd5 100644 GIT binary patch delta 71 zcmX>gbUgbU8k7JJ2asM29tWP_(tiH^^z`)=rdpp(9xnI&zfq}ts P0Rw~M2L=XYHb@Nsidz*g diff --git a/tests/resources/test_benchmark_output/doublet/HP_STIM/simplified__welld_P10_HP_STIM.nc b/tests/resources/test_benchmark_output/doublet/HP_STIM/simplified__welld_P10_HP_STIM.nc index 0562bc05eb1ffc5e77b6105ef07e85deaa33a9f8..de1150010b73958be14be32d069dff1c85ea1581 100644 GIT binary patch delta 43 pcmX>gbUET?ko!~-rfQw}&PFfceSU|?|kz`%gaW?*1o001*l3tIpH delta 43 pcmX>gbUET?jxzyX(8=N%js7#JKEFfcfNU|>LIGcYhP001GA3eNxl diff --git a/tests/resources/test_benchmark_output/doublet/HP_STIM/simplified__welld_P50_HP_STIM.nc b/tests/resources/test_benchmark_output/doublet/HP_STIM/simplified__welld_P50_HP_STIM.nc index c1aabc3c5bc9cb92b3b94e63d50a0370e12fc758..caddb8052e040190368eb0d791d4a6bb766a0fc7 100644 GIT binary patch delta 43 ocmX>gbUET?kzp9YuCiw=$o3=ED77#JKsFfbsq85kHC05T5?NdN!< delta 43 ocmX>gbUET?kKuLhS%0S=A|3=ED77#JKsFfbsq85kHC045g--~a#s diff --git a/tests/resources/test_benchmark_output/doublet/HP_STIM/simplified__welld_P90_HP_STIM.nc b/tests/resources/test_benchmark_output/doublet/HP_STIM/simplified__welld_P90_HP_STIM.nc index 894c1cfa94017b3fd2606f9c701dba1ca273684e..9dc6ae19c35848535bc0f3ee95518937fdc4ee09 100644 GIT binary patch delta 59 zcmX>gbU9vR DOym%9 delta 59 zcmX>gbULV!*n=gtauy20N6>9?k D*gPQk diff --git a/tests/simulation/test_pythermogis_doublet_benchmark.py b/tests/simulation/test_pythermogis_doublet_benchmark.py index a26b2fa..74ecf70 100644 --- a/tests/simulation/test_pythermogis_doublet_benchmark.py +++ b/tests/simulation/test_pythermogis_doublet_benchmark.py @@ -199,72 +199,32 @@ class ThermoGISDoubletBenchmark(TestCase): "ntg": ((), 1.0), "porosity": ((), 0.0), "depth": ((), 2000), - "temperature": ((), 50), + "temperature": ((), 60), "ln_permeability_mean": ((), np.log(175)), "ln_permeability_sd": ((), 0.0), } ) + # Act results = calculate_doublet_performance_stochastic( - input_data, utc_properties=utc_properties, rng_seed=0 + input_data, + utc_properties=utc_properties, + rng_seed=0 ) power_hpelec = results.heat_pump_power / (results.cophp - 1) power_ratio = results.power / (results.power + power_hpelec) - - # Assert - self.assertTrue(np.isclose(7.066167950630188, results.power + power_hpelec, 0.1)) - self.assertTrue(np.isclose(8.325023354044424, results.utc * power_ratio, 0.1)) - self.assertTrue(np.isclose(152.49330139160156, results.flow_rate, 0.001)) + self.assertTrue(np.isclose(9.24121513, results.power + power_hpelec, 0.1)) + self.assertTrue(np.isclose(7.06127862, results.utc * power_ratio, 0.1)) + self.assertTrue(np.isclose(162.15298462, results.flow_rate, 0.001)) self.assertTrue(np.isclose(60, results.pres, 0.001)) - self.assertTrue(np.isclose(5.6734843254089355, results.power, 0.001)) - self.assertTrue(np.isclose(955.2734375, results.welld, 0.001)) - self.assertTrue(np.isclose(3.8904712200164795, results.cop, 0.001)) - self.assertTrue(np.isclose(3.404754161834717, results.cophp, 0.001)) - self.assertTrue(np.isclose(10.368586540222168, results.utc, 0.001)) - self.assertTrue(np.isclose(17.378711700439453, results.capex, 0.001)) - - def test_calculateDoubletPerformance_directHeat_heatpumpon_butnotused(self): - """ - This is a copy of a test from the Java ThermoGisDoubletTest.java script; - to validate that this python implementation of the ThermoGIS Doublet. - returns the same values. - """ - # Arrange - # Instantiate the UTC properties class - utc_properties = ( - self.setup_template_utc_properties_builder() - .setOpexPerPower(100) - .setOpexBase(0) - .setHpDirectHeatInputTemp(70) - .setUseHeatPump(True) - .setDhReturnTemp(35) - .build() - ) - - input_data = xr.Dataset( - { - "thickness_mean": ((), 100), - "thickness_sd": ((), 0.0), - "ntg": ((), 1.0), - "porosity": ((), 0.0), - "depth": ((), 2000), - "temperature": ((), 75), - "ln_permeability_mean": ((), np.log(175)), - "ln_permeability_sd": ((), 0.0), - } - ) - - # Act - results = calculate_doublet_performance_stochastic( - input_data, utc_properties=utc_properties, rng_seed=0 - ) - - - # Assert - self.assertTrue(np.isclose(8.331591606140137, results.power, 0.001)) - self.assertTrue(np.isclose(0.0, results.heat_pump_power, 0.001)) + self.assertTrue(np.isclose(7.76031208, results.power, 0.001)) + self.assertTrue(np.isclose(977.9296875, results.welld, 0.001)) + self.assertTrue(np.isclose(4.78490305, results.cop, 0.001)) + self.assertTrue(np.isclose(3.40475416, results.cophp, 0.001)) + self.assertTrue(np.isclose(8.40878487, results.utc, 0.001)) + self.assertTrue(np.isclose(18.24893951, results.capex, 0.001)) def setup_template_utc_properties_builder(self): -- GitLab