Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

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

Open
8 of 21 tasks
JohnHalleyGotway opened this issue Oct 19, 2023 · 0 comments
Assignees
Labels
component: testing Software testing issue priority: medium Medium Priority requestor: METplus Team METplus Development Team type: enhancement Improve something that it is currently doing
Milestone

Comments

@JohnHalleyGotway
Copy link
Collaborator

JohnHalleyGotway commented Oct 19, 2023

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.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
component: testing Software testing issue priority: medium Medium Priority requestor: METplus Team METplus Development Team type: enhancement Improve something that it is currently doing
Projects
Status: 🟢 Ready
Development

No branches or pull requests

2 participants