/// <summary>
 /// Clears the output of all calculations with output in a calculation group.
 /// </summary>
 /// <param name="calculationGroup">The calculation group to clear the output for.</param>
 /// <remarks>The calculation group is enumerated recursively, also taking into account nested calculations.</remarks>
 public static void ClearCalculationOutput(this CalculationGroup calculationGroup)
 {
     foreach (ICalculation calc in calculationGroup.GetCalculations().Where(c => c.HasOutput))
     {
         calc.ClearOutput();
         calc.NotifyObservers();
     }
 }
 /// <summary>
 /// Method for determining if one or more calculations in a calculation group have output.
 /// </summary>
 /// <param name="calculationGroup">The calculation group to check the output for.</param>
 /// <returns><c>true</c> if one or more calculations in the calculation group have output, <c>false</c> otherwise.</returns>
 /// <remarks>The calculation group is enumerated recursively, also taking into account nested calculations.</remarks>
 public static bool HasOutput(this CalculationGroup calculationGroup)
 {
     return(calculationGroup.GetCalculations().Any(c => c.HasOutput));
 }