def test_center(): """Test getting and setting the center.""" circle = Circle(1) assert all(circle.center == (0, 0, 0)) center = (1, 1, 1) circle.center = center assert all(circle.center == center)
def test_moment_inertia(r, center): circle = Circle(r) assert np.all(np.asarray(circle.planar_moments_inertia) >= 0) circle.center = center area = np.pi * r ** 2 expected = [np.pi / 4 * r ** 4] * 3 expected[0] += area * center[0] ** 2 expected[1] += area * center[1] ** 2 expected[2] = area * center[0] * center[1] np.testing.assert_allclose(circle.planar_moments_inertia[:2], expected[:2]) np.testing.assert_allclose(circle.planar_moments_inertia[2], expected[2]) assert circle.polar_moment_inertia == pytest.approx(sum(expected[:2]))
def test_inertia_tensor(): """Test the inertia tensor calculation.""" circle = Circle(1) circle.center = (0, 0, 0) assert np.sum(circle.inertia_tensor > 1e-6) == 1 assert circle.inertia_tensor[2, 2] == np.pi / 2