//[Theory, AutoData] public void Compare_ShouldReturnCorrectValue( Generator <int> generator) { //arrange var firstActionTime = generator.First(i => i >= 50 && i <= 100); var secondActionTime = generator.First(i => i >= 50 && i <= 100); //act var actual = PerformanceTime.Compare(() => Thread.Sleep(firstActionTime), () => Thread.Sleep(secondActionTime)); //assert actual.Item1.Milliseconds.Should().BeInRange(firstActionTime, firstActionTime + 5); actual.Item2.Milliseconds.Should().BeInRange(secondActionTime, secondActionTime + 5); }
//[Theory, AutoData] public async Task CompareAsync_ShouldReturnCorrectValue( Generator <int> generator) { //arrange var firstActionTime = generator.First(i => i >= 50 && i <= 100); var secondActionTime = generator.First(i => i >= 50 && i <= 100); //act var actual = await PerformanceTime.Compare(() => Task.Delay(firstActionTime), () => Task.Delay(secondActionTime)); //assert actual.Item1.Milliseconds.Should().BeInRange(firstActionTime, firstActionTime + 20); actual.Item2.Milliseconds.Should().BeInRange(secondActionTime, secondActionTime + 20); }
public void ResolveViewModel_WhenCalled2Times_ShouldBeFasterTheSecondTime( [Frozen] Mock <IViewModelFactory> viewModelFactory, CreateCommandsAndOvvmViewModelFactory sut, object request, Mock <ViewModelWithCommands> expected) { //arrange viewModelFactory.Setup(v => v.ResolveViewModel(request)).Returns(expected.Object); //act var firstCallTime = PerformanceTime.Measure(() => sut.ResolveViewModel(request)).DebugWriteline("First call : {0}"); var secondCallTime = PerformanceTime.Measure(() => sut.ResolveViewModel(request)).DebugWriteline("Second call : {0}"); //assert secondCallTime.Should().BeLessThan(firstCallTime); }