static double RunTest(int collectionSize, ISortImplementation algo) { var iterationCount = 0; var minElapsedTime = TimeSpan.FromSeconds(2); var chrono = new Stopwatch(); Debug.Assert(Stopwatch.IsHighResolution); algo.SetCollection(GenerateRandomInts(collectionSize)); do { chrono.Start(); algo.Sort(); chrono.Stop(); iterationCount++; }while (chrono.Elapsed < minElapsedTime); return(chrono.Elapsed.TotalMilliseconds / iterationCount); }