### Question:
ExponentialVertex extends VertexImpl<DoubleTensor, DoubleVertex> implements DoubleVertex, Differentiable, ProbabilisticDouble, SamplableWithManyScalars<DoubleTensor>, LogProbGraphSupplier { @Override public double logProb(DoubleTensor value) { DoubleTensor lambdaValues = rate.getValue(); DoubleTensor logPdfs = Exponential.withParameters(lambdaValues).logProb(value); return logPdfs.sumNumber(); } ExponentialVertex(@LoadShape long[] tensorShape,
                             @LoadVertexParam(RATE_NAME) Vertex<DoubleTensor, ?> rate); @ExportVertexToPythonBindings  ExponentialVertex(Vertex<DoubleTensor, ?> rate);  ExponentialVertex(double rate); @SaveVertexParam(RATE_NAME) DoubleVertex getRate(); @Override double logProb(DoubleTensor value); @Override LogProbGraph logProbGraph(); @Override Map<Vertex, DoubleTensor> dLogProb(DoubleTensor value, Set<? extends Vertex> withRespectTo); @Override DoubleTensor sampleWithShape(long[] shape, KeanuRandom random);  }### Answer:
@Test public void logProbIsNegInfWhereXLessThanOne() { DoubleTensor matrixX = DoubleTensor.create(new double[]{1, -2}, new long[]{2, 1}); DoubleTensor maskResult = Exponential.withParameters(DoubleTensor.scalar(1.0)).logProb(matrixX); assertArrayEquals(new double[]{-1, Double.NEGATIVE_INFINITY}, maskResult.asFlatDoubleArray(), 0.0); }