holoviz/datashader

Increase coverage

ianthomas23 opened this issue · 0 comments

Overall coverage is at 87% but I would like to get it higher. There are some crucial code paths that are not covered by tests such as the handling of date/time DataFrame columns.

Using codecov on github is limited to non-CUDA code, so I am running it locally on a CUDA system to get the most accurate figures. This is my workflow:

git clean -fxd
pip install -ve .
DATASHADER_TEST_GPU=1 pytest datashader/tests/ -k "not benchmarks" --cov=./datashader --cov-report html --cov-append
NUMBA_DISABLE_JIT=1   pytest datashader/tests/ -k "not benchmarks" --cov=./datashader --cov-report html --cov-append

The tests are run twice, once with numba and cuda and once without. HTML files are created in the htmlcov directory. Current summary is:

Module                                  statements missing  excluded  coverage
datashader/__init__.py                          25       5         0     80%
datashader/__main__.py                          11      11         0      0%
datashader/bundling.py                         290       4         0     99%
datashader/colors.py                            39       4         0     90%
datashader/compiler.py                         141       4         0     97%
datashader/composite.py                        105       4         0     96%
datashader/core.py                             482      60         0     88%
datashader/data_libraries/__init__.py           14       4         0     71%
datashader/data_libraries/cudf.py                7       0         0    100%
datashader/data_libraries/dask.py              120       3         0     98%
datashader/data_libraries/dask_cudf.py           7       0         0    100%
datashader/data_libraries/dask_xarray.py       185       2         0     99%
datashader/data_libraries/pandas.py             33       0         0    100%
datashader/data_libraries/xarray.py             19       2         0     89%
datashader/datatypes.py                        384      24         0     94%
datashader/enums.py                              9       0         0    100%
datashader/glyphs/__init__.py                    8       0         0    100%
datashader/glyphs/area.py                     1056     187         0     82%
datashader/glyphs/glyph.py                      93      11         0     88%
datashader/glyphs/line.py                     1034      62         0     94%
datashader/glyphs/points.py                    188      18         0     90%
datashader/glyphs/polygon.py                   154       9         0     94%
datashader/glyphs/quadmesh.py                  396      50         0     87%
datashader/glyphs/trimesh.py                   144      11         0     92%
datashader/layout.py                           110      12         0     89%
datashader/macros.py                            99       7         0     93%
datashader/mpl_ext.py                          265     134         0     49%
datashader/pipeline.py                          20       0         0    100%
datashader/reductions.py                      1034     106         0     90%
datashader/resampling.py                       551      94         0     83%
datashader/tests/__init__.py                     0       0         0    100%
datashader/tiles.py                            223      68         0     70%
datashader/transfer_functions/__init__.py      535      59         0     89%
datashader/transfer_functions/_cpu_utils.py     12       0         0    100%
datashader/transfer_functions/_cuda_utils.py    90      54         0     40%
datashader/utils.py                            347      75         0     78%
Total                                         8230    1084         0     87%