### Question:
ValidatingTransform extends Transform { @Override public ValidatingTransform setScale(final double x, final double y, final double z) { super.setScale(x, y, z); validate(); return this; } ValidatingTransform();  ValidatingTransform(final ReadOnlyTransform source); @Override Transform fromHomogeneousMatrix(final ReadOnlyMatrix4 matrix); @Override ValidatingTransform setRotation(final ReadOnlyMatrix3 rotation); @Override ValidatingTransform setRotation(final ReadOnlyQuaternion rotation); @Override ValidatingTransform setScale(final double x, final double y, final double z); @Override ValidatingTransform setScale(final double uniformScale); @Override ValidatingTransform setScale(final ReadOnlyVector3 scale); @Override ValidatingTransform setTranslation(final double x, final double y, final double z); @Override ValidatingTransform setTranslation(final ReadOnlyVector3 translation); @Override Transform translate(final double x, final double y, final double z); @Override Transform translate(final ReadOnlyVector3 vec); @Override Transform multiply(final ReadOnlyTransform transformBy, final Transform store); @Override Transform invert(final Transform store); @Override Transform set(final ReadOnlyTransform source); @Override ValidatingTransform clone();  }### Answer:
@Test(expected = InvalidTransformException.class) public void testSetScaleReadOnlyVector3() { final ValidatingTransform vt1 = new ValidatingTransform(); vt1.setScale(new Vector3(1, 1, 1)); vt1.setScale(new Vector3(1, 1, Double.NaN)); }
@Test(expected = InvalidTransformException.class) public void testSetScaleDoubleDoubleDouble() { final ValidatingTransform vt1 = new ValidatingTransform(); vt1.setScale(0, 0, 1); vt1.setScale(0, 0, Double.NaN); }
@Test(expected = InvalidTransformException.class) public void testSetScaleDouble() { final ValidatingTransform vt1 = new ValidatingTransform(); vt1.setScale(1); vt1.setScale(Double.NaN); }