public void detect_no_anomalies_if_rates_are_set_to_min_max_value() { var strategy = new RelativeRateOfChangeStrategy(int.MinValue, int.MaxValue); var anomalyResult = strategy.Detect(data, (0, int.MaxValue)); var expected = Enumerable.Empty <(int, Anomaly)>(); anomalyResult.SequenceEqual(expected).ShouldBeTrue(); }
public void attribute_indices_correctly_for_higher_orders_without_search_interval() { var data = new[] { 0.0, 1.0, 3.0, 6.0, 18.0, 72.0 }; var strategy = new RelativeRateOfChangeStrategy(Option <double> .None, 8.0, 2); var anomalyResult = strategy.Detect(data, (0, int.MaxValue)); var expected = new[]
public void ignore_max_rate_if_none_is_given() { var strategy = new RelativeRateOfChangeStrategy(0.5, Option <double> .None); var anomalyResult = strategy.Detect(data, (0, int.MaxValue)); var expected = Enumerable .Range(21, 11) .Where(i => i % 2 != 0) .Select(value => (value, new Anomaly(data[value], 1.0))); anomalyResult.SequenceEqual(expected).ShouldBeTrue(); }