### Question:
Descriptives { public static double median(FlatDataCollection flatDataCollection) { double[] doubleArray = flatDataCollection.stream().filter(x -> x!=null).mapToDouble(TypeInference::toDouble).toArray(); int n = doubleArray.length; if(n==0) { throw new IllegalArgumentException("The provided collection can't be empty."); } Arrays.sort(doubleArray); double median; if(n%2==0) { median = (doubleArray[n/2 - 1] + doubleArray[n/2])/2.0; } else { median = doubleArray[n/2]; } return median; }  static int count(Iterable it); static double sum(FlatDataCollection flatDataCollection); static double mean(FlatDataCollection flatDataCollection); static double meanSE(FlatDataCollection flatDataCollection); static double median(FlatDataCollection flatDataCollection); static double min(FlatDataCollection flatDataCollection); static double max(FlatDataCollection flatDataCollection); static double minAbsolute(FlatDataCollection flatDataCollection); static double maxAbsolute(FlatDataCollection flatDataCollection); static double range(FlatDataCollection flatDataCollection); static double geometricMean(FlatDataCollection flatDataCollection); static double harmonicMean(FlatDataCollection flatDataCollection); static double variance(FlatDataCollection flatDataCollection, boolean isSample); static double std(FlatDataCollection flatDataCollection, boolean isSample); static double cv(double std, double mean); static double moment(FlatDataCollection flatDataCollection, int r); static double moment(FlatDataCollection flatDataCollection, int r, double mean); static double kurtosis(FlatDataCollection flatDataCollection); static double kurtosisSE(FlatDataCollection flatDataCollection); static double skewness(FlatDataCollection flatDataCollection); static double skewnessSE(FlatDataCollection flatDataCollection); static AssociativeArray percentiles(FlatDataCollection flatDataCollection, int cutPoints); static AssociativeArray quartiles(FlatDataCollection flatDataCollection); static double covariance(TransposeDataList transposeDataList, boolean isSample); static double autocorrelation(FlatDataList flatDataList, int lags); static AssociativeArray frequencies(FlatDataCollection flatDataCollection); static FlatDataCollection mode(FlatDataCollection flatDataCollection); static void normalize(AssociativeArray associativeArray); static void normalizeExp(AssociativeArray associativeArray);  }### Answer:
@Test public void testMedian() { logger.info("median"); FlatDataCollection flatDataCollection = generateFlatDataCollection(); double expResult = 2.565; double result = Descriptives.median(flatDataCollection); assertEquals(expResult, result, Constants.DOUBLE_ACCURACY_HIGH); }