public IEnumerable <CalculationMethodCombination> MapFrom(ParameterIdentification parameterIdentification)
        {
            var treeRoot = new TreeItem <CalculationMethodWithCompoundName>();
            var categorialParameterIdentificationRunMode = parameterIdentification.Configuration.RunMode.DowncastTo <CategorialParameterIdentificationRunMode>();

            parameterIdentification.DistinctCompoundNames().Each(compoundName =>
            {
                buildCalculationMethodCombinationTree(compoundName, categorialParameterIdentificationRunMode.CalculationMethodCacheFor(compoundName), treeRoot);
            });

            return(allCombinations(treeRoot).Where(x => !categorialParameterIdentificationRunMode.AllTheSame || x.AllCompoundsUseSameCalculationMethod()));
        }