public void TrampolineRecursion_CreatesThreeStackFrameForTrampolineExecuteAndTrampolineBounceAndTrampolineResult(int recursions) { var stackTrace = new StackTrace(); var startingFrameCount = stackTrace.FrameCount; var endingFrameCount = Trampoline.Execute(() => TrampolineRecursive(recursions)).frameCount; var amountOfFramesUsed = endingFrameCount - startingFrameCount; amountOfFramesUsed.Should().Be(3); }
/// <summary> /// Finds and returns the deepest inner exception found in the provided exception object. /// </summary> /// <param name="exception">A <see cref="Exception"/> object to retrieve the innermost exception from.</param> /// <returns>The innermost <see cref="Exception"/> object found in <c>exception</c>.</returns> public static Exception FindInnermostException(this Exception exception) { Require.NotNull(exception, nameof(exception)); return(Trampoline.Execute(ExceptionDelver, exception));