Giter VIP home page Giter VIP logo

qa-toolbox's Introduction

Build Status

qa-toolbox

A framework for executing and documenting verification and validation tests.

Instructions

  1. Clone the repository: git clone [email protected]:TDycores-Project/qa-toolbox.git
  2. Within qa-toolbox:
    1. Create a file simulators.sim listing simulator names mapped to the complete path of the executables. Use default_simulators.sim as an example.
    2. Create a file config_files.txt listing the relative path from the root directory to the .cfg files to be run. Use default_configf_files.txt as an example.
    3. Create the documentation directory structure:
      • SPHINX_DIR - Top level directory where index.rst resides
      • SPHINX_DIR/source - Directory for supporting .rst files. Additional underlying directories may be created.
  3. Launch the test suite with make all DOC_DIR=$SPHINX_DIR.

qa-toolbox's People

Stargazers

 avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Forkers

ghammond86

qa-toolbox's Issues

qa-clean-test bug

qa-clean-test.py assumes simulators.sim and config_files.txt are in the qa-toolbox dir and does not accept arguments that the user can input into the Makefile.

Refactor regression, placing within the test

  • Create a new qa_test/regression directory and place tests in there.
  • Add regression keyword in .cfg file.
  • Add flag to test pointing to regression info
  • Add code to compare the .stat.gold files at the bottom of routine test.run()

Update 2D Plotting

2D plotting/error metrics assumes that x and y are equal, update error metric and plotting to account for different x and y lengths

Improve Python Documentation

Improve documentation to make clearer:

-what need for solution writer in time slice vs observation
-what to input for solution writer functions
-running steady state simulations in python

Automate absolute path for figures in description

In qa_test_doc.py, we need to swap the path to figures in description_text variable if the figure filename uses a relatively path (no "/" at the beginning of the path). May need to make description_text an array of lines (description_text = file.readlines()).

We cannot store absolute paths as they will differ across machines.

Absolute vs relative paths

Can we use absolute paths in the Sphinx index.rst or underlying toctree files? If not, we need an alternate approach to mapping results to the Sphinx doc directory, because qa-toolbox/* may not lie below Sphinx/doc.

Create script for cleaning out a test

Instead of relying on the makefile to clean all tests and files, we need a script that does so to avoid (1) -R issue on Mac, and (2) to leverage the paths to the tests in the config_files.txt (as these paths may not lie below the qa-toolbox makefile.

Observation/Time Slice check

Qa-toolbox will check and see if observation or time slice files are available, change to have it only check if time slice or observation is specified in the input deck

Revise naming convention for description files

Currently using description_ROOT.txt where where ROOT is the root name of the test case. We need to support two alternatives. Assuming the following:

abc.cfg with test case xyz.pflotran

abc.description is used to describe the test problem at directory level
xyz.description is used to describe the test problem at the test case level

In other words, key off whether these files exist and insert them accordingly.

Implement incremental testing

The ability to add tests or fix tests without re-running the entire suite.

  • Add the logic to run all tests regardless of failures.
  • Add the logic to re-run the tests that failed. (something along the lines of make try-again)
  • Add make clean

Directory hierarchy needed when writing index.rst

We need a directory hierarchy in the .rst files written for documentation in order to organize the tests. The hierarchy will be based on the path structure of the test repository. The qa-toolbox will use this path hierarchy when writing .rst files to TDYCORE_DOC_DIR/docs/source/*.

Improve 'make clean_tests'

Make clean currently removes all .png files. But what if we have a .png that is a image used in the problem description. We need to develop a naming convention for automatically-generated images. These images will be deleted by 'make clean_tests' while the other images will persists.

Update .tec PFLOTRAN files

PFLOTRAN has updated to use .pft instead of .tec files, need to change this in pflotran.py in the simulator modules when reading an observation file

Expand storage of "overall" objects

For each variable, we need to store the overall max error across time slices and observations for each run. These should be stored in the QATestDocRun class.

Spacing in .opt file for variables

Error will occur if there is a space between a comma and a variable in the options file which will be confusing to users, fix this so spaces are removed when processing opt file

Rethink Relative Error

If we divide by zero in relative error it is set to 1e22 but perhaps we should just include an offset instead

Cleaning up simulator-specific output

make clean_tests cleans up files that are specific to a simulator. We should develop simulator-specific scripts that perform the cleanup only if the simulator is present. In other words, we should not be traversing the test suite removing PFLOTRAN output:

-find . -type f -name 'pflotran_run.h5' -print0 | xargs -0 -r rm

if PFLOTRAN is not used.

In other words, the qa-toolbox makefile should only clean up files generated by qa-toolbox scripts, not the simulator output.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.