Example #1
0
        static void Main()
        {
            var component = new SlowComponent();
            var adapter = new StopwatchAdapter(new Stopwatch());
            var logger = new LoggingStopwatch(adapter);
            var profile = new ProfilingComponent(component, logger);

            profile.Something();

            Console.ReadKey();
        }
        public void SecondIsLongerThanFirst()
        {
            var lsw = new LoggingStopwatch();

            lsw.Mark("first");

            long markElapsed = lsw.Mark("second");
            long difference  = lsw.Difference("first", "second");

            _log.WriteLine($"Mark At: {markElapsed}");
            _log.WriteLine($"Difference: {difference}");

            Assert.NotEqual(0.0, markElapsed);
            Assert.NotEqual(0.0, difference);
        }
        public void FirstMarkIsZeroElapsed()
        {
            var lsw = new LoggingStopwatch();

            var output = lsw.Mark <LoggingStopwatch, long>("first",
                                                           (sw) =>
            {
                var start = sw.ElapsedAt("first_Begin");
                _log.WriteLine(start.ToString());

                Assert.Equal(0.0, start);

                return(start);
            }, lsw);
        }
        public async Task MarksListMatchesValues()
        {
            var random = new Random();
            var lsw    = new LoggingStopwatch();

            var first = lsw.Mark("first");
            await Task.Delay((int)(random.NextDouble() * (double)random.Next(15, 150)));

            var second = lsw.Mark("second");
            await Task.Delay((int)(random.NextDouble() * (double)random.Next(15, 150)));

            var third = lsw.Mark("third");

            var marks = lsw.ElapsedMarks;

            _log.WriteLine($"Marks: {string.Join(", ", marks)}");

            Assert.Equal(lsw.Difference("first", "third"),
                         marks.First(m => m.Mark == "third").ElapsedMilliseconds -
                         marks.First(m => m.Mark == "first").ElapsedMilliseconds);
        }