Documentation
Cite it
Unit tests and coverage
Contributors
This is the Crossmodal Perception and Plasticity lab (CPP) PsychToolBox (PTB) toolbox.
Those functions are mostly wrappers around some PTB functions to facilitate their use and their reuse (#DontRepeatYourself)
All the documentation and installtion information is accessible here.
├── demos # quick demo of how to use some functions
├── docs # documentation
├── manualTests # all the tests that cannot be automated (yet)
├── src # actual code of the CPP_PTB
│ ├── aperture # function related to create apertur (circle, wedge, bar...)
│ ├── dot # functions to simplify the creations of RDK
│ ├── errors # all error functions
│ ├── fixation # to create fixation cross, dots
│ ├── keyboard # to collect responses, abort experiment...
│ ├── randomization # functions to help with trial randomization
│ └── utils # set of general functions
└── tests # all the tests that that can be run by github actions
We use the camelCase
to more easily differentiates our functions from the ones
from PTB that use a PascalCase
.
In practice, we use the following regular expression for function names:
[a-z]+(([A-Z]|[0-9]){1}[a-z]+)*
.
Regular expressions look scary but are SUPER useful to sort through filenames:
A quick intro to regular expression
And many websites allow you to "design and test" your regular expression:
- regexper
- ...
We keep the McCabe complexity below 15 as reported by the
check_my_code function or the
MISS_HIT code checker. A couple of
code quality metrics are also checked automatically by MISS_HIT (avoiding
functions with too many nested if
blocks).
We use the MISS_HIT linter to automatically fix some linting issues.
The code style and quality is also checked during the continuous integration.
Unit tests are run with the mox unit toolbox and automated with github action on Octave.
Thanks goes to these wonderful people (emoji key):
Remi Gau 💻 🎨 📖 🐛 📓 🤔 🚇 🚧 |
marcobarilari 💻 🎨 📖 🐛 📓 🤔 |
CerenB 💻 🎨 📖 👀 |
Fede F. 🤔 💻 🖋 |
iqrashahzad14 🐛 |
This project follows the all-contributors specification. Contributions of any kind welcome!