Prepare the code

Install the code from source

You need to install the code from source. The installation tutorial already details how to do that properly.

Prepare your environment for testings

The lib is a set of methods and classes to perform ultrasound imaging operations, and it is provided with a set of unit and integration tests. The better way to make sure the lib isn’t broken and works properly is to make sure all these tests can run without errors. This is a routine to make sure the code is stable, and you should run it whenever you modify anything, in order to avoid regression.

The tests are validated on some sample data, both experimental and from simulation, that can be downloaded using the resources/download_resources.py script:

$ cd resources
$ python download_resources.py

If you are using a GPU environment, you will also need to update the version of cupy you are using within the requirements_gpu.txt. It should be based on the CUDA version you have installed, as specified in the installation section.

The tox routine

Last but not least, you should have a look to the tox.ini file, which is listing the routine to perform. The main section is the first one:

[tox]
envlist =
    ; CPU
    cpu_tests
    ; GPU, comment the next line if you are on a CPU only system
    gpu_tests
    ; Generate documentation
    docs
skipsdist = true

Each line is running a distinct testing environment, one for the tests on CPU, another one for the ones in GPU, and the last one is generating the present documentation using Sphinx. If you don’t have a GPU on your system, you should comment the gpu_test line.

You should also note the second section, which contains the ULTRASPY_CPU_LIB line, which is commented. By default, the CPU code runs using the Numba library which is faster. If you want to test the Numpy lib, which is using matricial operations, you can uncomment this line to set the environment variable accordingly.

If everything is set as you want, you can run the routine using:properly.

$ pip install tox
$ tox

If this succeeded, then you’re all set!