We are glad that you are considering contributing to navipy, and are
looking forward to your contribution.

# Pre-requisit
We strongly recommand you to download, install, test, and compile the documentation

## Installation
```
git clone git@gitlab.ub.uni-bielefeld.de:olivier.bertrand/navipy.git
cd navipy
python setup.py install
```

## Unittesting
From the root directory of the repository

```
python -m unittest discover navipy
```

## Blend-unittesting
Several functionalty of navipy requires Blender, and thus code has to be run within blender (see doc for details). Unittesting of function requiring blender can be done as follow

```
blendunittest
```

Note: this command require blender to be installed

## Doc building
The doc is contained in doc/source

```
cd doc
make html
```

# Convention
We follow the PEP8 recommendation and the code should be formatted as such.

# Testing
Ideally every function should be properly tested. Test file should match the pattern 'test*.py' here the * should match the module to be tested. For example to test function within maths.py, a file named test_maths.py should be created and stored in the same folder than maths.py

Certain functionalities require the use of blender. Such test need to be stored in a file 'blendtest*.py'. Note that the blendunittest command uses the blender environment navipy/resources/twocylinders_world.blend. Therefore your test function should use this environment as well.

# Documentation
The documentation is based on Sphinx syntax. Although documenting functions is a must, tutorial is a bonus that will strongly encourage.