def test_assertion_for_getter(): """Test assertion for empty Coordinates objects""" coords = Coordinates() with raises(ValueError, match="Object is empty"): coords.get_cart() with raises(ValueError, match="Object is empty"): coords.get_sph() with raises(ValueError, match="Object is empty"): coords.get_cyl()
def test_getitem(): """Test getitem with different parameters.""" # test without weights coords = Coordinates([1, 2], 0, 0) new = coords[0] assert isinstance(new, Coordinates) npt.assert_allclose(new.get_cart(), np.atleast_2d([1, 0, 0])) # test with weights coords = Coordinates([1, 2], 0, 0, weights=[.1, .9]) new = coords[0] assert isinstance(new, Coordinates) npt.assert_allclose(new.get_cart(), np.atleast_2d([1, 0, 0])) assert new.weights == np.array(.1) # test with 3D array coords = Coordinates([[1, 2, 3, 4, 5], [2, 3, 4, 5, 6]], 0, 0) new = coords[0:1] assert isinstance(new, Coordinates) assert new.cshape == (1, 5) # test if sliced object stays untouched coords = Coordinates([0, 1], [0, 1], [0, 1]) new = coords[0] new.set_cart(2, 2, 2) assert coords.cshape == (2, ) npt.assert_allclose(coords.get_cart()[0], np.array([0, 0, 0]))
def test_inverse_rotation(): """Test the inverse rotation.""" xyz = np.concatenate((np.ones((2, 4, 1)), np.zeros( (2, 4, 1)), np.zeros((2, 4, 1))), -1) c = Coordinates(xyz[..., 0].copy(), xyz[..., 1].copy(), xyz[..., 2].copy()) c.rotate('z', 90) c.rotate('z', 90, inverse=True) npt.assert_allclose(c.get_cart(), xyz, atol=1e-15)
def test_rotation(rot_type, rot): """Test rotation with different formats.""" c = Coordinates(1, 0, 0) c.rotate(rot_type, rot) npt.assert_allclose(c.get_cart(), np.atleast_2d([0, 1, 0]), atol=1e-15)