Ticket #5734 (assigned)
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: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: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: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: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.
Moved to milestone 2.4