/// <summary> /// Internal constructor for Chronometer. Initializes a new instance of Chronometer with the given options. /// </summary> /// <param name="options"><see cref="ChronometerOptions"/></param> /// <param name="normalizedMeanCalculator">Implementation of <see cref="INormalizedMeanCalculator"/></param> /// <param name="timerFactory">Implementation of <see cref="ITimerFactory"/></param> /// <param name="memoryOptimizer">Implementation of <see cref="IMemoryOptimizer"/></param> /// <param name="performanceOptimizer">Implementation of <see cref="IPerformanceOptimizer"/></param> /// <param name="debugModeDetector">Implementation of <see cref="IDebugModeDetector"/></param> internal Chronometer( ChronometerOptions options, INormalizedMeanCalculator normalizedMeanCalculator, ITimerFactory timerFactory, IMemoryOptimizer memoryOptimizer, IPerformanceOptimizer performanceOptimizer, IDebugModeDetector debugModeDetector) { if (options == null) { throw new ArgumentNullException("options"); } if (options.NumberOfInterations == null) { throw new ArgumentException(Properties.Resources.NumberOfIterationsLessThan1ExceptionMessage, "options"); } if (options.NumberOfInterations.HasValue && options.NumberOfInterations.Value < 1) { throw new ArgumentException(Properties.Resources.NumberOfIterationsLessThan1ExceptionMessage, "options"); } if (normalizedMeanCalculator == null) { throw new ArgumentNullException("normalizedMeanCalculator"); } if (timerFactory == null) { throw new ArgumentNullException("timerFactory"); } if (memoryOptimizer == null) { throw new ArgumentNullException("memoryOptimizer"); } if (performanceOptimizer == null) { throw new ArgumentNullException("performanceOptimizer"); } if (debugModeDetector == null) { throw new ArgumentNullException("debugModeDetector"); } Options = options; _normalizedMeanCalculator = normalizedMeanCalculator; _timerFactory = timerFactory; _memoryOptimizer = memoryOptimizer; _performanceOptimizer = performanceOptimizer; _debugModeDetector = debugModeDetector; }
public void it_should_throw_ArgumentException_if_NumberOfIterations_options_value_is_less_than_1() { _options = ChronometerOptionsGenerator.Default().WithNumberOfIterations(0); Assert.Throws<ArgumentException>( () => new Narkhedegs.PerformanceMeasurement.Chronometer(_options, _normalizedMeanCalculatorMock.Object, _timerFactoryMock.Object, _memoryOptimizerMock.Object, _performanceOptimizerMock.Object, _debugModeDetectorMock.Object), Narkhedegs.PerformanceMeasurement.Properties.Resources.NumberOfIterationsLessThan1ExceptionMessage); }
public void it_should_assign_the_value_of_options_parameter_to_Options_property_if_options_parameter_is_not_null() { _options = new ChronometerOptions { NumberOfInterations = 10 }; var chronometer = new Narkhedegs.PerformanceMeasurement.Chronometer(_options, _normalizedMeanCalculatorMock.Object, _timerFactoryMock.Object, _memoryOptimizerMock.Object, _performanceOptimizerMock.Object, _debugModeDetectorMock.Object); Assert.AreEqual(chronometer.Options, _options); }
/// <summary> /// Instantiates and returns correct timer based on the <see cref="ChronometerOptions"/>. If value of /// ChronometerOptions.MeasureUsingProcessorTime is true then returns <see cref="ProcessorTimer"/> otherwise /// returns <see cref="StopwatchTimer"/>. /// </summary> /// <param name="options"><see cref="ChronometerOptions"/></param> /// <returns>Implementation of <see cref="ITimer"/></returns> /// <exception cref="ArgumentNullException">Throws ArgumentNullException if options parameter is null.</exception> public ITimer Create(ChronometerOptions options) { if(options == null) throw new ArgumentNullException("options"); ITimer timer; if (options.MeasureUsingProcessorTime) { timer = new ProcessorTimer(); } else { timer = new StopwatchTimer(); } return timer; }
/// <summary> /// Instantiates and returns correct timer based on the <see cref="ChronometerOptions"/>. If value of /// ChronometerOptions.MeasureUsingProcessorTime is true then returns <see cref="ProcessorTimer"/> otherwise /// returns <see cref="StopwatchTimer"/>. /// </summary> /// <param name="options"><see cref="ChronometerOptions"/></param> /// <returns>Implementation of <see cref="ITimer"/></returns> /// <exception cref="ArgumentNullException">Throws ArgumentNullException if options parameter is null.</exception> public ITimer Create(ChronometerOptions options) { if (options == null) { throw new ArgumentNullException("options"); } ITimer timer; if (options.MeasureUsingProcessorTime) { timer = new ProcessorTimer(); } else { timer = new StopwatchTimer(); } return(timer); }
/// <summary> /// Internal constructor for Chronometer. Initializes a new instance of Chronometer with the given options. /// </summary> /// <param name="options"><see cref="ChronometerOptions"/></param> /// <param name="normalizedMeanCalculator">Implementation of <see cref="INormalizedMeanCalculator"/></param> /// <param name="timerFactory">Implementation of <see cref="ITimerFactory"/></param> /// <param name="memoryOptimizer">Implementation of <see cref="IMemoryOptimizer"/></param> /// <param name="performanceOptimizer">Implementation of <see cref="IPerformanceOptimizer"/></param> /// <param name="debugModeDetector">Implementation of <see cref="IDebugModeDetector"/></param> internal Chronometer( ChronometerOptions options, INormalizedMeanCalculator normalizedMeanCalculator, ITimerFactory timerFactory, IMemoryOptimizer memoryOptimizer, IPerformanceOptimizer performanceOptimizer, IDebugModeDetector debugModeDetector) { if(options == null) throw new ArgumentNullException("options"); if(options.NumberOfInterations == null) throw new ArgumentException(Properties.Resources.NumberOfIterationsLessThan1ExceptionMessage, "options"); if(options.NumberOfInterations.HasValue && options.NumberOfInterations.Value < 1) throw new ArgumentException(Properties.Resources.NumberOfIterationsLessThan1ExceptionMessage, "options"); if(normalizedMeanCalculator == null) throw new ArgumentNullException("normalizedMeanCalculator"); if(timerFactory == null) throw new ArgumentNullException("timerFactory"); if (memoryOptimizer == null) throw new ArgumentNullException("memoryOptimizer"); if (performanceOptimizer == null) throw new ArgumentNullException("performanceOptimizer"); if (debugModeDetector == null) throw new ArgumentNullException("debugModeDetector"); Options = options; _normalizedMeanCalculator = normalizedMeanCalculator; _timerFactory = timerFactory; _memoryOptimizer = memoryOptimizer; _performanceOptimizer = performanceOptimizer; _debugModeDetector = debugModeDetector; }
public void it_should_assign_a_default_value_of_1_to_NumberOfInterations_property() { var options = new ChronometerOptions(); Assert.AreEqual(1, options.NumberOfInterations); }
public void it_should_throw_ArgumentNullException_if_options_parameter_is_null() { _options = null; Assert.Throws<ArgumentNullException>( () => new Narkhedegs.PerformanceMeasurement.Chronometer(_options, _normalizedMeanCalculatorMock.Object, _timerFactoryMock.Object, _memoryOptimizerMock.Object, _performanceOptimizerMock.Object, _debugModeDetectorMock.Object)); }
public void SetUp() { _options = ChronometerOptionsGenerator.Default(); _normalizedMeanCalculatorMock = new Mock<INormalizedMeanCalculator>(); _timerFactoryMock = new Mock<ITimerFactory>(); _memoryOptimizerMock = new Mock<IMemoryOptimizer>(); _performanceOptimizerMock = new Mock<IPerformanceOptimizer>(); _debugModeDetectorMock = new Mock<IDebugModeDetector>(); }
/// <summary> /// Initializes a new instance of Chronometer with the given options. /// </summary> /// <param name="options"><see cref="ChronometerOptions"/></param> public Chronometer(ChronometerOptions options) : this(options, new NormalizedMeanCalculator(), new TimerFactory(), new MemoryOptimizer(), new PerformanceOptimizer(), new DebugModeDetector()) { }
/// <summary> /// Initializes a new instance of Chronometer with the given options. /// </summary> /// <param name="options"><see cref="ChronometerOptions"/></param> public Chronometer(ChronometerOptions options) : this( options, new NormalizedMeanCalculator(), new TimerFactory(), new MemoryOptimizer(), new PerformanceOptimizer(), new DebugModeDetector()) { }