@Override
  protected boolean[] label(Dataset D) {
    if (useMeasured && (!D.getEntry(0).hasMeasurement()))
      throw new Error("Missing measured class.");
    if (!useMeasured && (!D.getEntry(0).hasPrediction()))
      throw new Error("Missing predicted class.");

    boolean[] output = new boolean[D.NEntries()];
    for (int i = 0; i < D.NEntries(); i++) {
      boolean isInside = false;
      double value =
          useMeasured ? D.getEntry(i).getMeasuredClass() : D.getEntry(i).getPredictedClass();
      if (value > lowerBound && value < upperBound) output[i] = insideRange;
      else output[i] = !insideRange;
    }
    return output;
  }