That should be defined in a separate file, so it can be used as a unit test.
The unit tests should also cover the expected behaviors of the different classes and different combinations of options, including errors. For instance, we should test that `Sparse(sparse_init=12).get_weights(rng, shape=(10, 12))` raises an Exception, etc.