### Question:
ReshapeVertex extends UnaryTensorOpVertex<T, TENSOR, VERTEX> implements NonProbabilisticVertex<TENSOR, VERTEX>, Differentiable { @ExportVertexToPythonBindings public ReshapeVertex(@LoadVertexParam(INPUT_NAME) TensorVertex<T, TENSOR, VERTEX> inputVertex, @LoadVertexParam(SHAPE_NAME) long... proposedShape) { super(proposedShape, inputVertex, inputVertex.ofType()); } @ExportVertexToPythonBindings  ReshapeVertex(@LoadVertexParam(INPUT_NAME) TensorVertex<T, TENSOR, VERTEX> inputVertex,
                         @LoadVertexParam(SHAPE_NAME) long... proposedShape); @Override ForwardModePartialDerivative forwardModeAutoDifferentiation(Map<Vertex, ForwardModePartialDerivative> derivativeOfParentsWithRespectToInput); @Override Map<Vertex, ReverseModePartialDerivative> reverseModeAutoDifferentiation(ReverseModePartialDerivative derivativeOfOutputWithRespectToSelf); @SaveVertexParam(SHAPE_NAME) long[] getProposedShape(); @Override boolean isDifferentiable();  }### Answer:
@Test public void reshapeVertex() { DoubleVertex a = new UniformVertex(0, 10); a.setValue(DoubleTensor.create(new double[]{1, 2, 3, 4}, 2, 2)); DoubleVertex reshapeVertex = a.reshape(4, 1); reshapeVertex.getValue(); Assert.assertArrayEquals(new long[]{4, 1}, reshapeVertex.getShape()); Assert.assertArrayEquals(new double[]{1, 2, 3, 4}, reshapeVertex.getValue().asFlatDoubleArray(), 1e-6); }