Ellipsoid { public void setA(final double a) throws IllegalArgumentException { if (invalidRadius(a)) { throw new IllegalArgumentException( "Radius must be a finite positive number."); } if (a > b) { throw new IllegalArgumentException("Radius 'a' must be the smallest."); } this.a = a; } Ellipsoid(final double a, final double b, final double c);  Ellipsoid(final Vector3dc u, final Vector3dc v, final Vector3dc w); double getA(); void setA(final double a); double getB(); void setB(final double b); double getC(); void setC(final double c); Vector3d getCentroid(); void setCentroid(final Vector3dc centroid); Matrix4d getOrientation(); void setOrientation(final Matrix3dc semiAxes); List<Vector3d> getSemiAxes(); double getVolume(); @SuppressWarnings("unchecked") void initSampling(final OpEnvironment ops); List<Vector3d> samplePoints(final long n); void setSemiAxes(final Vector3dc u, final Vector3dc v,
		final Vector3dc w);  }
@Test public void testSetA() { final Ellipsoid ellipsoid = new Ellipsoid(6, 7, 8); ellipsoid.setA(5); assertEquals(5, ellipsoid.getA(), 1e-12); }
@Test(expected = IllegalArgumentException.class) public void testSetAThrowsExceptionGTB() { final Ellipsoid ellipsoid = new Ellipsoid(1, 2, 3); ellipsoid.setA(3); }
@Test(expected = IllegalArgumentException.class) public void testSetAThrowsExceptionGTC() { final Ellipsoid ellipsoid = new Ellipsoid(2, 2, 2); ellipsoid.setA(3); }
@Test(expected = IllegalArgumentException.class) public void testSetAThrowsExceptionNegativeRadius() { final Ellipsoid ellipsoid = new Ellipsoid(1, 2, 3); ellipsoid.setA(-1); }
@Test(expected = IllegalArgumentException.class) public void testSetAThrowsExceptionNonFiniteRadius() { final Ellipsoid ellipsoid = new Ellipsoid(1, 2, 3); ellipsoid.setA(Double.NaN); }
@Test(expected = IllegalArgumentException.class) public void testSetAThrowsExceptionZeroRadius() { final Ellipsoid ellipsoid = new Ellipsoid(1, 2, 3); ellipsoid.setA(0); }