Beispiel #1
0
 public static MetricCalculator GetInstance(Employee employee)
 {
     if (instance == null)
     {
         instance = new MetricCalculator(employee);
     }
     return(instance);
 }
Beispiel #2
0
        private void rdbMetricUnitInput_CheckedChanged(object sender, EventArgs e)
        {
            if (rdbMetricUnitInput.Checked)
            {
                lblHeight.Text = "Height (cm)";
                lblWeight.Text = "Weight (kg)";

                bmiCalculator           = MetricCalculator.GetInstance(employee);
                lblHeightFt.Visible     = false;
                lblHeightIn.Visible     = false;
                txtHeightInches.Visible = false;
            }
        }
Beispiel #3
0
        public void RunAllMetricsAndGenerateReport()
        {
            var metricResults = new List <MetricResult>();

            foreach (var metric in _metrics)
            {
                IMetricCalculator calculator = new MetricCalculator();

                var result = calculator.Calculate(_assemblySearcher.GetAllAssemblies(), metric);
                metricResults.Add(result);
            }

            Report.Generate(metricResults.ToArray());
        }
        public List <ProgramTelemetry> GetArchiveTelemetry()
        {
            var metricCalculator = new MetricCalculator();
            var originalMetrics  = GetArchiveMetrics().ToList().ToArchiveTelemetry(GetIngestMetrics().ToList());
            var computedMetrics  = metricCalculator.GenerateProgramMetrics(originalMetrics);
            var allMetrics       = originalMetrics.Union(computedMetrics.Select(m => m.Item1)).ToList();

            foreach (var metric in allMetrics)
            {
                Metric metricDefinition;
                App.Config.Parameters.Metrics.TryGetValue(metric.MetricName, out metricDefinition);
                metric.Metric = metricDefinition;
            }
            return(allMetrics);
        }
        public List <IngestTelemetry> GetIngestTelemetry()
        {
            var metricCalculator = new MetricCalculator();
            var originalMetrics  = GetIngestMetrics().ToList().ToIngestTelemetry(_channelId, TimeSpan.FromSeconds(2));
            var computedMetrics  = metricCalculator.GenerateIngestMetrics(originalMetrics);
            var allMetrics       = originalMetrics.Union(computedMetrics.Select(m => m.Item1)).ToList();

            foreach (var metric in allMetrics)
            {
                Metric metricDefinition;
                App.Config.Parameters.Metrics.TryGetValue(metric.MetricName, out metricDefinition);
                metric.Metric = metricDefinition;
            }
            return(allMetrics);
        }
        public List <EgressTelemetry> GetOriginTelemetry(int reservedUnits)
        {
            var metricCalculator = new MetricCalculator();
            var originalMetrics  = GetOriginMetrics().ToList().ToEgressTelemetry(_originId, reservedUnits);
            var computedMetrics  = metricCalculator.GenerateEgressMetrics(originalMetrics);
            var allMetrics       = originalMetrics.Union(computedMetrics.Select(m => m.Item1)).ToList();

            foreach (var metric in allMetrics)
            {
                Metric metricDefinition;
                App.Config.Parameters.Metrics.TryGetValue(metric.MetricName, out metricDefinition);
                metric.Metric = metricDefinition;
            }
            return(allMetrics);
        }
Beispiel #7
0
        /// <summary>
        /// Gets range that describes expected limits for the benchmark. Should be wider than <see cref="IMetricValuesProvider.TryGetActualValues"/>.
        /// </summary>
        /// <param name="benchmark">The benchmark.</param>
        /// <param name="summary">Summary for the run.</param>
        /// <returns>Range that describes expected limits for the benchmark (or empty range if none).</returns>
        public MetricRange TryGetLimitValues(Benchmark benchmark, Summary summary)
        {
            Code.NotNull(benchmark, nameof(benchmark));
            Code.NotNull(summary, nameof(summary));

            if (ResultIsRelative)
            {
                if (TryGetRelativeValues(benchmark, summary, out var benchmarkValues, out var baselineValues))
                {
                    return(MetricCalculator.TryGetRelativeLimitValues(benchmarkValues, baselineValues));
                }
            }
            else if (TryGetValues(benchmark, summary, out var values))
            {
                return(MetricCalculator.TryGetLimitValues(values));
            }
            return(MetricRange.Empty);
        }
Beispiel #8
0
        /// <summary>Gets metric that describes variance of the value for the benchmark.</summary>
        /// <param name="summary">Summary for the run.</param>
        /// <param name="benchmark">The benchmark.</param>
        /// <returns>Metric that describes variance for the benchmark or <c>null</c> if none.</returns>
        public double?TryGetVariance(Benchmark benchmark, Summary summary)
        {
            Code.NotNull(benchmark, nameof(benchmark));
            Code.NotNull(summary, nameof(summary));

            if (ResultIsRelative)
            {
                if (TryGetRelativeValues(benchmark, summary, out var benchmarkValues, out var baselineValues))
                {
                    return(MetricCalculator.TryGetRelativeVariance(benchmarkValues, baselineValues));
                }
            }
            else if (TryGetValues(benchmark, summary, out var values))
            {
                return(MetricCalculator.TryGetVariance(values));
            }
            return(null);
        }
Beispiel #9
0
        public void MetricCalculator_Test(double height, double weight, double expectedBmi)
        {
            Employee emp = new Employee();

            emp.Name   = "Test";
            emp.Height = height;
            emp.Weight = weight;
            BMICalculator calculator = MetricCalculator.GetInstance(emp);

            string bmi = calculator.CalculateBMI().ToString("f2");

            calculator.CalculateWeight(calculator.BMI);

            Assert.Multiple(() =>
            {
                Assert.AreEqual(calculator.unit, "kg", "Check unit");
                Assert.AreEqual(calculator.Type, UnitTypes.Metric, "Check unit Type");
                Assert.AreEqual(bmi, expectedBmi.ToString("f2"), "Check BMI");
            });
        }