public void EstimatorMinkowski_Estimate() { Estimator estimator = new EstimatorMinkowski(pure, output, 2.0); double result = estimator.Estimate(); Assert.IsTrue(ExtraMath.EqualValue(result, 6.245)); }
/// <summary> /// Переключает режим работы между вводом данных и анализом /// </summary> /// <param name="parameters">Структура с параметрами запуск</param> /// <param name="distance">Расстояние</param> /// <param name="manhattan">Расстояние Манхеттена</param> /// <param name="euclid">Расстояние Евклида</param> /// <param name="correlation">Коэффициент корреляции<</param> /// <param name="cos">Косинусная мера</param> public void Switch(StrategiesParameters parameters, out double distance, out double manhattan, out double euclid, out double correlation, out double cos) { emulatorSettings = parameters.EmulatorSetting; IsEmulation = parameters.Source != SourceType.Network; correlation = 0.0; euclid = 0.0; distance = 0.0; manhattan = 0.0; cos = 0.0; if (!emulatorSettings.Fast) { if (IsWorking == false) { time = 0.0; IsWorking = true; setStrategies(parameters); refreshChart(); if ((source != null) && (filter != null) && (noiser != null)) source.Start(); } else { IsWorking = false; unsetStrategies(); if (IsEmulation) { Estimator estimatorDistance = new EstimatorDistance(pure, output); Estimator estimatorManhattan = new EstimatorMinkowski(pure, output, 1.0); Estimator estimatorEuclid = new EstimatorMinkowski(pure, output, 2.0); Estimator estimatorCorrelation = new EstimatorCorrelation(pure, output); Estimator estimatorCos = new EstimatorCos(pure, output); distance = estimatorDistance.Estimate(); manhattan = estimatorManhattan.Estimate(); euclid = estimatorEuclid.Estimate(); correlation = estimatorCorrelation.Estimate(); cos = estimatorCos.Estimate(); } } } else { double x = 0.0; setStrategies(parameters); time = 0.0; refreshChart(); while (x <= emulatorSettings.Range) { double currentInput, currentOutput, currentPure; currentInput = ((SourceEmulator)source).GetNext(); filter.AddInput(currentInput); currentOutput = filter.GetOutput(); currentPure = ((SourceEmulator)source).DataPure; input.Add(currentInput); pure.Add(currentPure); output.Add(currentOutput); mainChart.Series["input"].Points.AddXY(x, currentInput); mainChart.Series["output"].Points.AddXY(x, currentOutput); mainChart.Series["pure"].Points.AddXY(x, currentPure); x += emulatorSettings.Interval / 1000.0; } Estimator estimatorDistance = new EstimatorDistance(pure, output); Estimator estimatorManhattan = new EstimatorMinkowski(pure, output, 1.0); Estimator estimatorEuclid = new EstimatorMinkowski(pure, output, 2.0); Estimator estimatorCorrelation = new EstimatorCorrelation(pure, output); Estimator estimatorCos = new EstimatorCos(pure, output); distance = estimatorDistance.Estimate(); manhattan = estimatorManhattan.Estimate(); euclid = estimatorEuclid.Estimate(); correlation = estimatorCorrelation.Estimate(); cos = estimatorCos.Estimate(); } }