@Test
public void testMultiply() {
final Transform trans1 = new Transform();
final Transform trans2 = new Transform();
assertEquals(Transform.IDENTITY, trans1.multiply(trans2, null));
trans1.setTranslation(1, 2, 3);
final Transform trans3 = trans1.multiply(trans2, null);
assertEquals(trans1, trans3);
trans2.setTranslation(-1, -2, -3);
trans1.multiply(trans2, trans3);
assertEquals(Transform.IDENTITY, trans3);
assertTrue(trans3.isRotationMatrix());
assertTrue(trans3.isIdentity());
assertTrue(trans3.isUniformScale());
trans2.setScale(1, 2, 1);
trans1.multiply(trans2, trans3);
assertEquals(new Transform().setScale(1, 2, 1), trans3);
assertTrue(trans3.isRotationMatrix());
assertFalse(trans3.isIdentity());
assertFalse(trans3.isUniformScale());
trans1.setScale(1, 2, 1);
trans1.multiply(trans2, trans3);
assertEquals(new Transform().setRotation(new Matrix3(1, 0, 0, 0, 4, 0, 0, 0, 1)).setTranslation(0, -2, 0),
trans3);
assertFalse(trans3.isRotationMatrix());
assertFalse(trans3.isIdentity());
assertFalse(trans3.isUniformScale());
}