public void testRotateGlobal0_0_m30RotateGlobal0_m40_0TranslateLocal4_0_0() {

		double[][] matrix = HoneyBee.createTransformForOrigin();

		matrix = HoneyBee.rotateAroundGlobalAxes(matrix, 0, 0, -30);

		matrix = HoneyBee.rotateAroundGlobalAxes(matrix, 0, -40, 0);

		matrix = HoneyBee.translateAlongLocalAxes(matrix, 4, 0, 0);

		double[] actualTranslation = HoneyBee
				.getTranslationFromTransform(matrix);

		double[] expectedTranslation = new double[] {
				4 - (8 * SIN15 * SIN15) - (8 * SIN20 * SIN20 * COS30),
				(-8 * SIN15 * COS15), 8 * SIN20 * COS20 * COS30 };

		boolean passed = HoneyBee.assertVectorsEqual(expectedTranslation,
				actualTranslation, SCALE);

		assertTrue(passed);

		double[][] actualRotation = HoneyBee.getRotationFromTransform(matrix);

		double[][] expectedRotation = new double[][] {
				new double[] { 0.663414001465, -0.499999940395, 0.556670427322 },
				new double[] { 0.38302218914, 0.866025447845, 0.321393728256 },
				new double[] { -0.642787575722, 1.60373581082e-08,
						0.766044437885 } };

		passed = HoneyBee.assertMatricesEqual(expectedRotation, actualRotation,
				SCALE);

		assertTrue(passed);

	}