added more information to the automated test section in dsp/mod.rs
This commit is contained in:
parent
51453bae16
commit
f1e3dc8aae
2 changed files with 19 additions and 1 deletions
|
@ -355,6 +355,24 @@ value now instead of the next sample.
|
||||||
|
|
||||||
### Automated Testing of Your Node
|
### Automated Testing of Your Node
|
||||||
|
|
||||||
|
First lets discuss shortly why automated tests are necessary. HexoDSP has an automated test
|
||||||
|
suite to check if any changes on the internal DSP helpers break something. Or if some
|
||||||
|
changes on some DSP node accidentally broke something. Or if a platform behaves weirdly.
|
||||||
|
Or even if upstream crates that are included broke or changed something essential.
|
||||||
|
|
||||||
|
A few things you can test your DSP code for:
|
||||||
|
|
||||||
|
- Is non 0.0 signal emitted?
|
||||||
|
- Is the signal inside the -1..1 or 0..1 range?
|
||||||
|
- Does the signal level change in expected ways if the input parameters are changed?
|
||||||
|
- Does the frequency spectrum peak at expected points in the FFT output?
|
||||||
|
- Does the frequency spectrum change to expected points in the FFT output when an input parameter
|
||||||
|
changed?
|
||||||
|
|
||||||
|
Try to nail down the characteristics of your DSP node with a few tests as well as possible.
|
||||||
|
|
||||||
|
For the FFT and other tests there are helper functions in `tests/common/mod.rs`
|
||||||
|
|
||||||
The start of your `tests/node_*.rs` file usually should look like this:
|
The start of your `tests/node_*.rs` file usually should look like this:
|
||||||
|
|
||||||
```ignore
|
```ignore
|
||||||
|
|
|
@ -314,7 +314,7 @@ impl Cell {
|
||||||
}
|
}
|
||||||
|
|
||||||
/// Finds the first free input or output (one without an adjacent cell). If any free input/output
|
/// Finds the first free input or output (one without an adjacent cell). If any free input/output
|
||||||
/// has an assigned input, that edge is returned.
|
/// has an assigned input, that edge is returned before any else.
|
||||||
/// With `dir` you can specify input with `CellDir::T`, output with `CellDir::B`
|
/// With `dir` you can specify input with `CellDir::T`, output with `CellDir::B`
|
||||||
/// and any with `CellDir::C`.
|
/// and any with `CellDir::C`.
|
||||||
pub fn find_first_adjacent_free(
|
pub fn find_first_adjacent_free(
|
||||||
|
|
Loading…
Reference in a new issue