Transform(FrameSet) was never called in Python, because
Transform(Mapping) was listed first in the pybind11 wrapper,
and so was always called.
Fixing this turned up several bugs in normalizing frames:
- naive tests in PointEndpoint and SpherePointEndpoint
were fooled when a FrameSet was passed in as a Frame.
- SpherePointEndpoint needed a tweak so that permAxes
was called on the frame argument, rather than a copy
when the frame was a FrameSet.
I added tests for all this in tests/test_transform.py. I'm afraid that file is getting rather large, but I'm not sure what to do about it. Perhaps some refactoring could make it smaller.
I also replaced all usage of self.assertTrue(numpy.allclose(...)) with numpy.testing.assert_allclose(...) as a separate commit.
Transform(FrameSet) was never called in Python, because
Transform(Mapping) was listed first in the pybind11 wrapper,
and so was always called.
Fixing this turned up several bugs in normalizing frames:
were fooled when a FrameSet was passed in as a Frame.
was called on the frame argument, rather than a copy
when the frame was a FrameSet.
I added tests for all this in tests/test_transform.py. I'm afraid that file is getting rather large, but I'm not sure what to do about it. Perhaps some refactoring could make it smaller.
I also replaced all usage of self.assertTrue(numpy.allclose(...)) with numpy.testing.assert_allclose(...) as a separate commit.