Skip to content

NREL/EnergyPlusRegressionTool

Repository files navigation

EnergyPlus Regressions

Documentation Status Run Tests PyPIRelease Flake8 Coverage Status

Overview

This library provides tools for performing regressions between EnergyPlus builds. Developers often propose changes to EnergyPlus for:

  • New feature development
  • Defect repair
  • Refactoring for structure or performance

When a developer proposes these changes, those code changes must be tested prior to accepting them into the main branch. A continuous integration system runs the tests and provides results, but there can be a sometimes lengthy delay waiting on those results, depending on how busy the system is at that time. This set of tools provides a way to run these regressions locally.

Usage

This tool works on all three major platforms: Windows, Mac, and Ubuntu (LTS). GitHub Actions test on multiple platforms, and it is regularly used on all three as well.

To install the tool, simply pip install it into your Python environment (either system or virtual environment) The project page on PyPi is: https://pypi.org/project/energyplus-regressions/.

  • Download using Pip (pip install energyplus-regressions).
  • Once installed into the Python install, there will be a binary available to run: energyplus_regression_runner.

Development

For setting up a development environment to do work on this tool, the steps are pretty minimal:

  • Install Python, if needed
  • Clone this repository (git clone https://github.com/NREL/EnergyPlusRegressionTool)
  • Install dependencies (pip3 install -r requirements.txt)

Documentation

Program documentation, including user guide and typical workflows, are available in the documentation. This documentation is written using RST with Sphinx, and published on ReadTheDocs.

Testing

Exhaustive unit tests have been added to the "underneath the hood" code, like the functions that calculate diffs and run builds. The unit tests are run on Github Actions. The GUI code is not unit tested, but tested routinely on all platforms.