The code is generally fine, but there are a few things to fix. Also, please add the tests in a dedicated commit and then the implementation in another one.
Once upon a time we also used to add features in more atomic commits (i.e., one commit to add the frontend for `GetDimensions()`, another to add the backend for `resinfo` and another one for `sampleinfo`), but it seems this tradition was lost.