Testing

UHI has some testing helpers for use in test suites. This is primarily for library authors.

Indexing

You can see if your library passes the indexing test suite. We provide three sets of tests: 1D, 2D, and 3D tests. These can be implemented on your own library (my.Histogram in this example) like this:

import uhi.testing.indexing

class TestAccess1D(uhi.testing.indexing.Indexing1D[my.Histogram]):
    @classmethod
    def make_histogram(cls) -> my.Histogram:
        return my.Histogram(cls.get_uhi())

class TestAccess2D(uhi.testing.indexing.Indexing2D[my.Histogram]):
    @classmethod
    def make_histogram(cls) -> my.Histogram:
        return my.Histogram(cls.get_uhi())

class TestAccess3D(uhi.testing.indexing.Indexing3D[my.Histogram]):
    @classmethod
    def make_histogram(cls) -> my.Histogram:
        return my.Histogram(cls.get_uhi())

If you don’t support serialization, then you can manually set the values with the UHI item, or check the docstrings to see what the correct parameters are.

Make sure you don’t import from uhi.testing.indexing, as some runners (unittest) will pick the base classes up and try to run those too.