class EdmxEstimator {

    public static EdmxEstimate estimate(double[] data, int delta, int numPerms) {
        val scaledData = DataUtil.unitScale(data);
        val breakout = estimateSimpleBreakout(scaledData, delta);
        val energyDistance = breakout.getEnergyDistance();
        val pValue = estimatePValue(scaledData, delta, numPerms, energyDistance);

        return new EdmxEstimate()
                .setLocation(breakout.location)
                .setEnergyDistance(breakout.energyDistance)
                .setPreBreakoutMedian(breakout.preBreakoutMedian)
                .setPostBreakoutMedian(breakout.postBreakoutMedian)
                .setPValue(pValue);
    }

}