Vector3D one = cartesian(1, 1, 1);
assertThat(one.add(cartesian(0, 0, 0)), is(equalTo(one)));
assertThat(one.add(cartesian(1, 0, 0)), is(equalTo(cartesian(2, 1, 1))));
assertThat(one.multiply(5.0), is(cartesian(5, 5, 5)));
assertThat(one.divide(0.2), is(equalTo(cartesian(5, 5, 5))));
assertThat(one.subtract(cartesian(0, 1, 0)), is(equalTo(cartesian(1, 0, 1))));
assertThat(one.negate(), is(equalTo(cartesian(-1, -1, -1))));
assertThat(one.addX(1.0), is(equalTo(cartesian(2, 1, 1))));
assertThat(one.addY(-1.0), is(equalTo(cartesian(1, 0, 1))));
assertThat(one.addZ(0.0), is(one));
// original vector should remain the same