public ConditionalAnalysis(SimulatedAnnualReturns simulatedAnnualReturns)
        {
            var parentIntervals = new Intervals(simulatedAnnualReturns.Parent);
            var groupedReturns  = new GroupedReturns(parentIntervals, simulatedAnnualReturns.Parent, simulatedAnnualReturns.Child);

            foreach (TailType tailType in Enum.GetValues(typeof(TailType)))
            {
                var intervalReturns       = groupedReturns.GetReturnsByTailType(tailType);
                var parentIntervalReturns = groupedReturns.GetParentReturnsByTailType(tailType);
                var unconditionalAnalysis = new UnconditionalAnalysis(intervalReturns, parentIntervalReturns);
                SetAnalysisByTailType(tailType, unconditionalAnalysis);
            }
        }
        private void SetAnalysisByTailType(TailType tailType, UnconditionalAnalysis analysis)
        {
            switch (tailType)
            {
            case TailType.LeftTail:
                LeftTail = analysis;
                return;

            case TailType.LeftNormal:
                LeftNormal = analysis;
                return;

            case TailType.RightNormal:
                RightNormal = analysis;
                return;

            case TailType.RightTail:
                RightTail = analysis;
                return;

            default:
                throw new NotImplementedException();
            }
        }