Exemplo n.º 1
0
 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>();
 }
Exemplo n.º 2
0
        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));
        }
Exemplo n.º 3
0
        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_execute_code_under_test_for_value_of_numberOfIterations()
        {
            var    numberOfTimesActionIsExecuted = 0;
            Action action = () => numberOfTimesActionIsExecuted += 1;

            _options = ChronometerOptionsGenerator.Default().WithNumberOfIterations(10);

            _chronometer = new Narkhedegs.PerformanceMeasurement.Chronometer(_options,
                                                                             _normalizedMeanCalculatorMock.Object, _timerFactoryMock.Object, _memoryOptimizerMock.Object,
                                                                             _performanceOptimizerMock.Object, _debugModeDetectorMock.Object);
            _chronometer.Measure(action);

            Assert.AreEqual(10, numberOfTimesActionIsExecuted);
        }
        public void it_should_call_NormalizedMeanCalculator_if_UseNormalizedMean_option_is_true()
        {
            Action doNothing = () => { };

            _options = ChronometerOptionsGenerator.Default().WithUseNormalizedMean();

            _chronometer = new Narkhedegs.PerformanceMeasurement.Chronometer(_options,
                                                                             _normalizedMeanCalculatorMock.Object, _timerFactoryMock.Object, _memoryOptimizerMock.Object,
                                                                             _performanceOptimizerMock.Object, _debugModeDetectorMock.Object);
            _chronometer.Measure(doNothing);

            _normalizedMeanCalculatorMock.Verify(calculator => calculator.Calculate(It.IsAny <IEnumerable <double> >()),
                                                 Times.Once);
        }
Exemplo n.º 6
0
        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);
        }
        it_should_not_allow_measurements_if_AllowMeasurementsUnderDebugMode_option_is_false_and_the_current_process_is_in_debug_mode
            ()
        {
            _debugModeDetectorMock.Setup(debugModeDetector => debugModeDetector.IsInDebugMode()).Returns(true);

            Action doNothing = () => { };

            _options = ChronometerOptionsGenerator.Default().DoNotAllowMeasurementsUnderDebugMode();

            _chronometer = new Narkhedegs.PerformanceMeasurement.Chronometer(_options,
                                                                             _normalizedMeanCalculatorMock.Object, _timerFactoryMock.Object, _memoryOptimizerMock.Object,
                                                                             _performanceOptimizerMock.Object, _debugModeDetectorMock.Object);

            Assert.Throws <InvalidOperationException>(() => _chronometer.Measure(doNothing));
        }
        public void SetUp()
        {
            _options = ChronometerOptionsGenerator.Default();
            _normalizedMeanCalculatorMock = new Mock <INormalizedMeanCalculator>();

            _timerFactoryMock = new Mock <ITimerFactory>();
            _timerFactoryMock.Setup(timerFactory => timerFactory.Create(It.IsAny <ChronometerOptions>()))
            .Returns(new FakeTimer());

            _memoryOptimizerMock = new Mock <IMemoryOptimizer>();

            _performanceOptimizerMock = new Mock <IPerformanceOptimizer>();

            _debugModeDetectorMock = new Mock <IDebugModeDetector>();
            _debugModeDetectorMock.Setup(debugModeDetector => debugModeDetector.IsInDebugMode()).Returns(false);

            _chronometer = new Narkhedegs.PerformanceMeasurement.Chronometer(_options,
                                                                             _normalizedMeanCalculatorMock.Object, _timerFactoryMock.Object, _memoryOptimizerMock.Object,
                                                                             _performanceOptimizerMock.Object, _debugModeDetectorMock.Object);
        }
Exemplo n.º 9
0
        public void it_should_assign_a_default_value_of_1_to_NumberOfInterations_property()
        {
            var options = new ChronometerOptions();

            Assert.AreEqual(1, options.NumberOfInterations);
        }
 public static ChronometerOptions DoNotAllowMeasurementsUnderDebugMode(this ChronometerOptions options)
 {
     options.AllowMeasurementsUnderDebugMode = false;
     return(options);
 }
 public static ChronometerOptions WithUseNormalizedMean(this ChronometerOptions options)
 {
     options.UseNormalizedMean = true;
     return(options);
 }
 public static ChronometerOptions WithMeasureUsingProcessorTime(this ChronometerOptions options)
 {
     options.MeasureUsingProcessorTime = true;
     return(options);
 }
 public static ChronometerOptions WithWarmup(this ChronometerOptions options)
 {
     options.Warmup = true;
     return(options);
 }
 public static ChronometerOptions WithNumberOfIterations(this ChronometerOptions options, int?numberOfIterations)
 {
     options.NumberOfInterations = numberOfIterations;
     return(options);
 }