Skip to content

Switch MET's R-based differencing logic over to using the Python-based METplus implementation #2718

@JohnHalleyGotway

Description

@JohnHalleyGotway

Describe the Enhancement

The existing testing infrastructure for MET uses Perl to run the unit tests defined in each XML file. #2717 switches the Perl control logic over to Python. This task is to reimplement the R-based differencing logic in MET to using Python-based implementation in METplus.

The comp_*.sh scripts in the bin directory are just wrappers to the R functions defined in the R_test directory.

This line of test_regression.sh calls comp_dir.sh to compare the output generated by 2 different runs of the unit tests. That script should be updated to run the Python-based METplus differencing logic instead. The current METplus differencing logic can be found in diff_util.py.

Note that additional work may be required to enhance the METplus differencing logic. For example, if the unit tests are enhanced in #2717 to store runtime and resource (i.e. memory) consumption information, the differencing logic should be enhanced to compare those outputs between 2 runs.

Time Estimate

2 weeks? But please update as needed.

Sub-Issues

Consider breaking the enhancement down into sub-issues.
None needed at this time.

Relevant Deadlines

List relevant project deadlines here or state NONE.

Funding Source

@natalieb-noaa is funded through the DTC to work on METplus tasks.

Define the Metadata

Assignee

  • Select engineer(s) or no engineer required
  • Select scientist(s) or no scientist required

Labels

  • Review default alert labels
  • Select component(s)
  • Select priority
  • Select requestor(s)

Milestone and Projects

  • Select Milestone as the next official version or Backlog of Development Ideas
  • For the next official version, select the MET-X.Y.Z Development project

Define Related Issue(s)

Consider the impact to the other METplus components.

Enhancement Checklist

See the METplus Workflow for details.

  • Complete the issue definition above, including the Time Estimate and Funding Source.
  • Fork this repository or create a branch of develop.
    Branch name: feature_<Issue Number>_<Description>
  • Complete the development and test your changes.
  • Add/update log messages for easier debugging.
  • Add/update unit tests.
  • Add/update documentation.
  • Push local changes to GitHub.
  • Submit a pull request to merge into develop.
    Pull request: feature <Issue Number> <Description>
  • Define the pull request metadata, as permissions allow.
    Select: Reviewer(s) and Development issue
    Select: Milestone as the next official version
    Select: MET-X.Y.Z Development project for development toward the next official release
  • Iterate until the reviewer(s) accept and merge your changes.
  • Delete your fork or branch.
  • Close this issue.

Sub-issues

Metadata

Metadata

Assignees

Type

No type

Projects

Status

🏁 Done

Relationships

None yet

Development

No branches or pull requests

Issue actions