public void Run() { var typedModel = ViewModels.CreateTypedViewModel(); var dynamicModel = ViewModels.CreateDynamicViewModel(); var dictionaryModel = ViewModels.CreateDictionaryModel(); var benchmarks = GetBenchmarkCases().ToArray(); Console.WriteLine("Warming up and validating benchmarks"); foreach (var benchmark in benchmarks) { Templates.AssertTemplateSample(benchmark.RenderTypedModel(typedModel), benchmark.Name + " (Typed Model)"); if (benchmark.SupportsUntypedModel) { Templates.AssertTemplateSample(benchmark.RenderUntypedModel(typedModel), benchmark.Name + " (Untyped Model)"); } if (benchmark.SupportsDynamicModel) { Templates.AssertTemplateSample(benchmark.RenderDynamicModel(dynamicModel), benchmark.Name + " (Dynamic Model)"); } if (benchmark.SupportsDictionaryModel) { Templates.AssertTemplateSample(benchmark.RenderDictionaryModel(dictionaryModel), benchmark.Name + " (Dictionary Model)"); } } Console.WriteLine("----------"); foreach (var benchmark in benchmarks) { Execute(() => benchmark.RenderTypedModel(typedModel), benchmark.Name + " (Typed Model)"); if (benchmark.SupportsUntypedModel) { Execute(() => benchmark.RenderUntypedModel(typedModel), benchmark.Name + " (Untyped Model)"); } if (benchmark.SupportsDynamicModel) { Execute(() => benchmark.RenderDynamicModel(dynamicModel), benchmark.Name + " (Dynamic Model)"); } if (benchmark.SupportsDictionaryModel) { Execute(() => benchmark.RenderDictionaryModel(dictionaryModel), benchmark.Name + " (Dictionary Model)"); } } foreach (var benchmark in benchmarks.OfType <IDisposable>()) { benchmark.Dispose(); } }
public void Run() { var model = ViewModels.CreateTypedViewModel(); var benchmarks = GetBenchmarkCases().ToArray(); Console.WriteLine("Warming up benchmarks"); for (int i = 0, j = benchmarks.Length; i < j; i++) { benchmarks[i].Render(NullTextWriter.Instance, model); } Console.WriteLine("-----------"); for (int i = 0, j = benchmarks.Length; i < j; i++) { Execute(benchmarks[i], model); } foreach (var benchmark in benchmarks.OfType <IDisposable>()) { benchmark.Dispose(); } }