Skip to content
Snippets Groups Projects
Commit ee3b83c5 authored by Sam Yates's avatar Sam Yates
Browse files

Enhanced validation tests.

Validation of simulation results by comparing L-infinity distance and maximum peak displacement in voltage traces taken at mid-points and end-points of sections.

Note that these tests will broadly _fail_ at this point.

Reference data generation and visualization:
* Use voltage traces as validation data from NEURON; refactor generation scripts.
* Generate validation data as a dependency of `validation.exe`.
* Store validation data in a `tsplot`-compatible format.
* Extend `tsplot` to handle multiple time series per file, a non-time 'time' axis (see `-A` option), filtering of time series by meta data queries (see `-s` option).
* Remove pre-generated spike-time validation data files.

Core extensions:
* Add a single-cell `singleton_recipe` recipe wrapper.
* Allow cell descriptions to be cloned (explicitly) for use with this wrapper.
* Add `simple_sampler` which maintains a trace of scalar observables as a vector of (time, value) pairs.
* Allow cell groups to be exposed from `model` (used for post-synaptic event injection in synapse validation test.)

Utility extensions:
* Add `math::signum` function.
* Fix `value_type` determination in `util::transform_iterator` where the underlying iterator dereferences to a reference type.
* Add `util::max_element_by` and `util::max_value` sequence utilities to `rangeutil.hpp`.
* Small bug fixes for `util::optional` (one const correctness case, and proper behaviour for implicit conversion of `nothing_t` to `optional<void>`.)
* Generic `util::first` and `util::second` accessor functional objects for reference access to `std::pair` fields in the absence of generic lambda functions.
* Add `util::path` for path manipulation, corresponding to a subset of C++17 `std::filesystem::path` functionality. Only POSIX path semantics supported at this point.

Validation tests:
* Rework all validation tests as comparisons of voltage trace data against a (presumably converged) reference trace generated by NEURON.
* Add options to `validation.exe` driver for verbose output of test results (`-v`), limiting the compartment number in convergence tests (`-m`) and saving the generated traces to a `tsplot`-compatilble JSONfile (`-o`).
* Gather trace comparison metrics and analysis into `trace_analysis.hpp` and `trace_analysis.cpp`.
* Add super simple command line argument parsing utility `tinyopt.hpp`.
* Make a consistent naming of `ball_and_3stick` model across sources.
* New `ball_and_taper` model.
parent eb74bd20
No related branches found
No related tags found
No related merge requests found
Showing
with 547 additions and 1121 deletions
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment