Tags:
create new tag
view all tags

Algorithm Deployment

ElizabethAuden 4 August 2006

Deployment and Testing

The eSDO solar algorithms have progressed well during 10 months of functionality development. During the next 5 months (August 2006 - end of December 2006) unit testing and science test scripts will be developed for each algorithm. In addition, all algorithms will be deployed as AstroGrid CEA applications, and the Coronal Loop Recognition algorithm will be examined for JSOC pipeline integration.

Important Dates:

31 August 2006 Algorithm deployment form filled out for each algorithm (see links below)
30 September 2006 At least 1 unit test per method for each .C class in each algorithm
31 December 2006 Thorough unit tests for every method in each .C class in each algorithm;
completed science testing documentation for each algorithm

Unit Testing Code

The object of unit testing is to ensure that each method can cleanly handle correct, incorrect and unexpected inputs cleanly. Unit tests should not focus on scientific validity of a method's output, but instead on the programmatic validity. If a method accepts a numerical value as input, can it handle positive, negative, zero, infinite and NaN values? Can a string method deal with empty strings? Does a method with void return type exit with the correct state? CUTest unit tests can be executed automatically with a call to an algorithm's AllTest executable. Each unit test should be as simple and specific as possible.

Please see CuTest for full details. eSDO algorithms will be tested with the CUTest unit testing package:

  • Each .C file in an algorithm will contain unit testing methods for every method within that .C file
  • Each .C file in an algorithm will contain a single "GetSuite" method for all unit testing methods within that .C file
  • Each algorithm's src directory will contain a single AllTests.c file that will execute unit tests for all .C files within that directory.

All .C files contained in an algorithm should be listed in the algorithm's deployment wiki page linked below:

  • List the .C file in red unless each method has at least one unit test.
  • List the .C file in green when each method has at least one unit test.
  • List the .C file in bold green when each method has thorough unit testing.
  • (Next to each class, please flag in brackets any inherited, unmodifed methods that will not be unit tested)

Science Testing Documents

Unlike unit tests, the object of science tests is to check an algorithm's scientific validity. Science tests operate end-to-end over an entire algorithm; unit tests operate on specific methods. eSDO science tests will be designed as human readable documents stating the test input (variables or files) to be used, the instructions a user should follow, and an explanation of the expected output. For instance, the science test document for the Coronal Loops Recognition algorithm might specify

  • input: an AIA test image or EIT image (provide a URL to the file or attach the FITS file to this algorithm's deployment wiki page)
  • instructions:
    • commandline - compilation and execution
    • AstroGrid - workflow instructions using the AstroGrid Client Runtime (Note: leave blank for now)
  • expected output: a FITS file containing an image with highlighted loops superimposed on the original AIA or EIT image, along with a table of loop footprints
  • current level of completion: output is FITS image containing image with highlighted loops superimposed, but table of footprints is not included.

Science testing documentation will be included in the algorithm deployment wiki pages linked below.

Links to Algorithms

Birmingham

  1. ModeParametersDeployment (including mode parameters and mode asymmetry analysis)

MSSL

  1. CoronalLoopDeployment
  2. MagneticExtrapolationDeployment
  3. HelicityDeployment

RAL

  1. CoronalDimmingDeployment
  2. SmallEventsDeployment

Sheffield

  1. LocalHelioseismologyInversionDeployment
  2. PerturbationMapDeployment
  3. SubsurfaceFlowDeployment

-- ElizabethAuden - 04 Aug 2006

Edit | Attach | Watch | Print version | History: r3 < r2 < r1 | Backlinks | Raw View | More topic actions
Topic revision: r3 - 2007-07-05 - ElizabethAuden
 
This site is powered by the TWiki collaboration platform Powered by PerlCopyright © 2008-2017 by the contributing authors. All material on this collaboration platform is the property of the contributing authors.
Ideas, requests, problems regarding TWiki? Send feedback