################################
Semi-Markov Library FAQ
################################
Testing
^^^^^^^^^^
There are three levels of testing.
* **Build Tests** Regular testing is done on Linux and Mac with gcc 4.7, gcc 4.8, clang 3.3,
and clang 3.4. There is a `Jenkins `_ instance locally that runs
builds inside of `Docker `_ containers. This handles builds on Ubuntu
and Fedora. Mac builds are tested by hand.
.. figure:: images/jenkins_main.*
:align: center
:width: 400px
* **System-level Tests** There are currently just a few of these, namely a set of SIR
models whose theoretical properties are known, contained in examples/sir_mixed.cpp.
We verify the percentage of runs which become epidemic.
* **Unit Tests** The distributions (exponential, Weibull, and others) have a unit test
called disttest, built from the test directory. This samples the distributions
and compares Kolmogorov-Smirnov estimators of those samples with theoretical results.
Code Style
^^^^^^^^^^^^^
The code follows the Boost library guidelines for compatibility, but Boost isn't
a style guide, so it follows the Google C++ Style Guide.