### Question:
LinearLossTerm extends ADMMObjectiveTerm { @Override public void minimize(float stepSize, float[] consensusValues) { float weight = (float)((WeightedGroundRule)groundRule).getWeight(); for (int i = 0; i < size; i++) { LocalVariable variable = variables[i]; float value = consensusValues[variable.getGlobalId()] - variable.getLagrange() / stepSize; value -= (weight * coefficients[i] / stepSize); variable.setValue(value); } } LinearLossTerm(GroundRule groundRule, Hyperplane<LocalVariable> hyperplane); @Override void minimize(float stepSize, float[] consensusValues); @Override float evaluate(); @Override float evaluate(float[] consensusValues);  }### Answer:
@Test public void testMinimize() { float[] z = {0.4f, 0.5f}; float[] y = {0.0f, 0.0f}; float[] coeffs = {0.3f, -1.0f}; float weight = 1.0f; float stepSize = 1.0f; float[] expected = {0.1f, 1.5f}; testProblem(z, y, coeffs, weight, stepSize, expected); }