Skip to main content

Accuracy and testing

Accuracy​

The results were checked against PsychroLib (the ASHRAE reference implementation) above 0 °C and an independent Murphy and Koop implementation below 0 °C: 34,057 results across every function from -100 to 200 °C, run inside Ignition 8.1 and 8.3, with zero failures. Results agree to better than a billionth of a degree.

Against CoolProp, an independent real-gas model, dew points differ by about 0.06 °C, roughly ten times less than the uncertainty of a typical ±2 % RH sensor.

In a 200 °C dryer, where PsychroLib's wet bulb fails (returning 200 °C), this module returns 63.19 °C, in line with CoolProp's 63.17 °C.

Run the tests​

The tests are in the psychrometrics-ignition repository. They need JDK 17, Maven 3.8 or newer, and Python 3. The commands below are for Windows PowerShell, from the root of the repository.

The Python cross-check​

random_check.py cross-checks every function on random air states against PsychroLib, Murphy and Koop, and CoolProp:

python -m venv .venv
.\.venv\Scripts\Activate.ps1
pip install -r psychro-core\src\test\python\requirements.txt
mvn -q test-compile
python psychro-core\src\test\python\random_check.py --n 5000

It exits with code 0 when every check passes, and 1 otherwise.

The Ignition accuracy test​

This test runs the functions inside Ignition, on a gateway with the module installed.

  1. Paste psychro-core\src\test\ignition\accuracy_test.py into the Designer Script Console and run it. It writes every input and result to a CSV in the Designer computer's temp folder, and prints the path of the CSV.

  2. Check the CSV in Python, with the same virtual environment as above:

    python psychro-core\src\test\python\compare_ignition.py --csv <that path>

It checks every Ignition result against the Python references, and exits with code 0 when every result matches, and 1 otherwise.