Ticket #5734 (assigned)

Opened 8 years ago

Last modified 5 years ago

Implement Fitting system tests

Reported by: Martyn Gigg Owned by: Roman Tolchenov
Priority: critical Milestone: Backlog
Component: Framework Keywords: Maintenance
Cc: Blocked By:
Blocking: Tester:

Description (last modified by Nick Draper) (diff)

From a discussion on skype

Roman Tolchenov: When a test generates some data for fitting and adds random noise to it Fit returns different values for the function parameters. The tolerance used in TS_ASSERT_DELTA can be too small. Different systems have different random number generators
...
[16:34:51] Peter Peterson: Are you testing rhobustness of the algorithm or that you get the same answer as last week. If it is rhobustness then increase the numbers in your ASSERT_DELTA, if is the same answer then fix the seed. I think with both you want the noise.
...
[16:39:04] Roman Tolchenov: A robustness test will be more robust if we don't fix the random sequence
[16:39:28] Peter Peterson: ...then increase your deltas
[16:39:49] Martyn Gigg: I personally think we want both
[16:41:23] Roman Tolchenov: These tests are usually written by developers who write new functions. I think we all need to agree on a testing strategy
[16:45:33] Russell Taylor: Presumably, by adding random noise we're essentially testing gsl, which you could argue isn't our job. It probably has some merit to do it somewhere, but perhaps not over and over.
[16:46:52] Peter Peterson: What unit test is this in again? I didn't catch the name.
[16:47:17] Russell Taylor: With unit tests we probably don't want to run into edge cases within the gsl - we want the same answer every time. Otherwise the risk is that the DELTAS end up being so large as to be meaningless.
[16:48:08] Roman Tolchenov: @Peter QuadEnBackgroundTest for example
[16:50:15] Peter Peterson: It looks more like an integration test http://en.wikipedia.org/wiki/Software_testing#Testing_levels
[16:50:57] Peter Peterson: Should the unit test be checking that the function gives back the expected result?
[16:51:11] Peter Peterson: ...for given x-values
[16:51:55] Peter Peterson: BTW: We don't have a good place for tests that check that a handful of components play "correctly" together.
[16:53:07] Roman Tolchenov: @Peter I guess so. But authors usually put their functions through Fit
[16:53:55] Russell Taylor: We'd have fewer problems with these pesky test failures if they all looked like QuadraticBackgroundTest :)
[16:54:01] Peter Peterson: I recently added a system test that loads all of the data files in the systemtest repository. Would it be good to have something 
similar, but with fit functions? I'm not sure how the autodiscovery would work.
[16:55:54] Peter Peterson: The idea is that we generate data using the function, add noise, fit and see if we get the same answer back. ...probably what all of the unit tests are doing though.

Basically the idea is that we generate data using the function, add noise, fit and see if we get the same answer back. We would probably only need to do this for a handful of functions to check the rhobustness of the fitting engine.

Change History

comment:1 Changed 8 years ago by Nick Draper

  • Milestone changed from Release 2.3 to Release 2.4

Moved to milestone 2.4

comment:2 Changed 8 years ago by Nick Draper

  • Status changed from new to assigned
  • Owner set to Roman Tolchenov

comment:3 Changed 8 years ago by Nick Draper

  • Milestone changed from Release 2.4 to Release 2.5

Moved at the code freeze for release 2.4

comment:4 Changed 7 years ago by Nick Draper

  • Milestone changed from Release 2.5 to Release 2.6

Moved to r2.6 at the end of r2.5

comment:5 Changed 7 years ago by Nick Draper

  • Status changed from assigned to new

comment:6 Changed 7 years ago by Nick Draper

  • Component changed from Mantid to Framework

comment:7 Changed 7 years ago by Nick Draper

  • Keywords Maintenance added
  • Priority changed from major to critical

comment:8 Changed 7 years ago by Nick Draper

  • Description modified (diff)
  • Milestone changed from Release 2.6 to Backlog

comment:9 Changed 7 years ago by Roman Tolchenov

  • Milestone changed from Backlog to Release 3.0

comment:10 Changed 7 years ago by Nick Draper

  • Milestone changed from Release 3.0 to Backlog

Moved out to backlog as not enough time in R3.0

comment:11 Changed 7 years ago by Roman Tolchenov

  • Milestone changed from Backlog to Release 3.1

comment:12 Changed 7 years ago by Roman Tolchenov

  • Milestone changed from Release 3.1 to Backlog

comment:13 Changed 7 years ago by Nick Draper

  • Status changed from new to assigned

Bulk move to assigned at the introduction of the triage step

comment:14 Changed 5 years ago by Stuart Campbell

This ticket has been transferred to github issue 6580

Note: See TracTickets for help on using tickets.