### Question:
Vector3 extends AVector3 { public Vector3 add(final IVector3 vector) { x += vector.x(); y += vector.y(); z += vector.z(); return this; } @SuppressWarnings("unused") private  Vector3(); private  Vector3(final double x, final double y, final double z); private  Vector3(final IVector3 original); static IVector3 valueOf(final String value); static Vector3 zero(); static Vector3 fromXYZ(final double x, final double y, final double z); static Vector3 fromXY(final double x, final double y); static Vector3 from2d(final IVector2 xy, final double z); static Vector3 copy(final IVector3 original); static Vector3 fromArray(final double[] arr); static Vector3 fromProjection(final IVector3 origin, final IVector2 ground, final double height); @Override IVector3 copy(); void set(final IVector2 xy, final double z); void set(final IVector3 xyz); void setXY(final IVector2 xy); void set(final int i, final double value); Vector3 add(final IVector3 vector); Vector3 subtract(final IVector3 vector); Vector3 multiply(final double f); Vector3 apply(final Function<Double, Double> function); @Override Vector3 getXYZVector(); @Override double x(); @Override double y(); @Override double z();  }### Answer:
@Test public void testAdd() { Vector3 vec1 = Vector3.fromXYZ(2, 1, 5); Vector3 vec2 = Vector3.fromXYZ(3, 4, 7); vec1.add(vec2); assertEquals(Vector3.fromXYZ(5, 5, 12), vec1); vec1 = Vector3.fromXYZ(-2, 0, -42); vec1.add(vec2); assertEquals(Vector3.fromXYZ(1, 4, -35), vec1); vec1 = Vector3.fromXYZ(-2, -3, 13); vec2 = Vector3.fromXYZ(-1, 5, -7); vec1.add(vec2); assertEquals(Vector3.fromXYZ(-3, 2, 6), vec1); }