### Question:
BroydenMatrixUpdateFunction implements NewtonRootFinderMatrixUpdateFunction { @Override public DoubleMatrix getUpdatedMatrix( Function<DoubleArray, DoubleMatrix> j, DoubleArray x, DoubleArray deltaX, DoubleArray deltaY, DoubleMatrix matrix) { ArgChecker.notNull(deltaX, "deltaX"); ArgChecker.notNull(deltaY, "deltaY"); ArgChecker.notNull(matrix, "matrix"); double length2 = OG_ALGEBRA.getInnerProduct(deltaX, deltaX); if (length2 == 0.0) { return matrix; } Matrix temp = OG_ALGEBRA.subtract(deltaY, OG_ALGEBRA.multiply(matrix, deltaX)); temp = OG_ALGEBRA.scale(temp, 1.0 / length2); return (DoubleMatrix) OG_ALGEBRA.add(matrix, OG_ALGEBRA.getOuterProduct(temp, deltaX)); }  @Override DoubleMatrix getUpdatedMatrix(
      Function<DoubleArray, DoubleMatrix> j, DoubleArray x,
      DoubleArray deltaX,
      DoubleArray deltaY,
      DoubleMatrix matrix);  }### Answer:
@Test public void testNullDeltaX() { assertThatIllegalArgumentException() .isThrownBy(() -> UPDATE.getUpdatedMatrix(J, V, null, V, M)); }
@Test public void testNullDeltaY() { assertThatIllegalArgumentException() .isThrownBy(() -> UPDATE.getUpdatedMatrix(J, V, V, null, M)); }
@Test public void testNullMatrix() { assertThatIllegalArgumentException() .isThrownBy(() -> UPDATE.getUpdatedMatrix(J, V, V, V, null)); }