def test_anomaly_detect_ts_last_only_day(self): results = anomaly_detect_ts(self.data1, max_anoms=0.02, direction='both', only_last='day', plot=False) self.assertEquals(23, len(results['anoms']))
def test_anomaly_detect_ts_neg_only(self): results = anomaly_detect_ts(self.data1, max_anoms=0.02, direction='neg', only_last=None, plot=False) self.assertEquals(84, len(results['anoms']))
def test_anomaly_detect_ts_1_multithreaded(self): results = anomaly_detect_ts(self.data1, direction='both', alpha=0.05, plot=False, longterm=True, multithreaded=True) values = results['anoms'].values self.assertEquals(132, len(values)) self.assertTrue(np.isin(self.get_test_value(40.0), values)) self.assertTrue(np.isin(self.get_test_value(250.0), values)) self.assertTrue(np.isin(self.get_test_value(210.0), values)) self.assertTrue(np.isin(self.get_test_value(193.1036), values)) self.assertTrue( np.isin(self.get_test_value(186.82299999999998), values)) self.assertTrue(np.isin(self.get_test_value(181.514), values)) self.assertTrue(np.isin(self.get_test_value(27.6501), values)) self.assertTrue(np.isin(self.get_test_value(30.6972), values)) self.assertTrue(np.isin(self.get_test_value(39.5523), values)) self.assertTrue(np.isin(self.get_test_value(37.3052), values)) self.assertTrue(np.isin(self.get_test_value(30.8174), values)) self.assertTrue(np.isin(self.get_test_value(23.9362), values)) self.assertTrue(np.isin(self.get_test_value(27.6677), values)) self.assertTrue(np.isin(self.get_test_value(23.9362), values)) self.assertTrue(np.isin(self.get_test_value(149.541), values)) self.assertTrue(np.isin(self.get_test_value(52.0359), values)) self.assertTrue(np.isin(self.get_test_value(52.7478), values)) self.assertTrue(np.isin(self.get_test_value(151.549), values)) self.assertTrue(np.isin(self.get_test_value(147.028), values)) self.assertTrue(np.isin(self.get_test_value(31.2614), values))
def test_anomaly_detect_ts_pos_only_multithreaded(self): results = anomaly_detect_ts(self.data1, max_anoms=0.02, direction='pos', only_last=None, plot=False, multithreaded=True) self.assertEquals(50, len(results['anoms']))
def test_anomaly_detect_ts_longterm(self): results = anomaly_detect_ts(self.data1, max_anoms=0.02, direction='both', threshold=None, only_last=None, longterm=True) self.assertEquals(132, len(results['anoms']))
def test_anomaly_detect_ts_p99_threshold(self): results = anomaly_detect_ts(self.data1, max_anoms=0.02, direction='both', threshold='p99', only_last=None, plot=False) self.assertEquals(1, len(results['anoms']))
def test_anomaly_detect_ts_piecewise_median_period_weeks(self): results = anomaly_detect_ts(self.data1, max_anoms=0.02, piecewise_median_period_weeks=4, direction='both', threshold=None, only_last=None, longterm=False) self.assertEquals(132, len(results['anoms']))
def test_anomaly_detect_ts_3(self): results = anomaly_detect_ts(self.data3, direction='both', alpha=0.02, max_anoms=0.02, plot=False) values = results['anoms'].get_values() self.assertEquals(0, len(values))
def test_anomaly_detect_ts_p95_threshold(self): results = anomaly_detect_ts(self.data1, max_anoms=0.02, direction='both', threshold='p95', only_last=None, plot=False) values = results['anoms'].get_values() self.assertEquals(1, len(results['anoms'])) self.assertTrue(np.isin(self.get_test_value(250.0), values))
def test_anomaly_detect_ts_2(self): results = anomaly_detect_ts(self.data2, direction='both', alpha=0.02, max_anoms=0.02, plot=False, period_override=840) values = results['anoms'].values self.assertEquals(0, len(values))
def test_anomaly_detect_ts_2_multithreaded(self): results = anomaly_detect_ts(self.data2, direction='both', alpha=0.02, max_anoms=0.02, plot=False, multithreaded=True) values = results['anoms'].get_values() self.assertEquals(0, len(values))
def test_anomaly_detect_ts_4_longterm_true(self): results = anomaly_detect_ts(self.data4, direction='both', alpha=0.02, max_anoms=0.02, plot=False, longterm=True) values = results['anoms'].get_values() self.assertEquals(1, len(values)) self.assertTrue(np.isin(self.get_test_value(-1449.62440286), values))
def test_anomaly_detection_minutes_granularity(self): results = anomaly_detect_ts(self.data_minutes_granularity, direction='both', alpha=0.05, period_override=60, plot=False, longterm=True) values = results['anoms'].values self.assertEqual(2, len(values)) self.assertEqual(96, values[0]) self.assertEqual(97, values[1])
def test_perform_threshold_filter(self): results = anomaly_detect_ts(self.data1, max_anoms=0.02, direction='both', only_last=None, plot=False) periodic_max = self.data1.resample('1D').max() filtered_results = _perform_threshold_filter(results['anoms'], periodic_max, 'med_max') self.assertTrue(isinstance(filtered_results, Series)) self.assertEquals(4, len(filtered_results))
def test_anomaly_detect_ts_2(self): results = anomaly_detect_ts(self.data2, direction='both', alpha=0.02, max_anoms=0.02, plot=False, longterm=True) values = results['anoms'].get_values() self.assertEquals(2, len(values)) self.assertTrue(self.get_test_value(-549.97419676451) in values) self.assertTrue(self.get_test_value(-3241.79887765979) in values)
def test_get_only_last_results_5(self): results = anomaly_detect_ts(self.data5, max_anoms=0.05, direction='both', only_last=None) last_day = _get_only_last_results(self.a_series, results['anoms'], 'min', 'day') last_hr = _get_only_last_results(self.a_series, results['anoms'], 'min', 'hr') self.assertEquals(6, len(last_day)) self.assertEquals(6, len(last_hr))
def test_anomaly_detect_ts_last_only_hr(self): results = anomaly_detect_ts(self.data1, max_anoms=0.02, direction='both', only_last='hr', plot=False) values = results['anoms'].get_values() self.assertEquals(3, len(values)) self.assertTrue(np.isin(self.get_test_value(40.0), values)) self.assertTrue(np.isin(self.get_test_value(250.0), values)) self.assertTrue(np.isin(self.get_test_value(210.0), values))
def test_get_only_last_results_4_multithreaded(self): results = anomaly_detect_ts(self.data4, max_anoms=0.05, direction='both', only_last=None, multithreaded=True) last_day = _get_only_last_results(self.a_series, results['anoms'], 'min', 'day') last_hr = _get_only_last_results(self.a_series, results['anoms'], 'min', 'hr') self.assertEquals(8, len(last_day)) self.assertEquals(8, len(last_hr))
def test_get_only_last_results(self): results = anomaly_detect_ts(self.data1, max_anoms=0.02, direction='both', only_last=None, plot=False) last_day = _get_only_last_results(self.data1, results['anoms'], 'min', 'day') last_hr = _get_only_last_results(self.data1, results['anoms'], 'min', 'hr') self.assertEquals(23, len(last_day)) self.assertEquals(3, len(last_hr))
def test_anomaly_detect_ts_4(self): results = anomaly_detect_ts(self.data4, direction='both', alpha=0.02, max_anoms=0.02, plot=False) values = results['anoms'].get_values() self.assertEquals(2, len(values)) self.assertTrue(np.isin(self.get_test_value(-1732.99186610059), values)) self.assertTrue( np.isin(self.get_test_value(-2221.8524475234804), values))
def test_anomaly_detect_ts_med_max_threshold(self): results = anomaly_detect_ts(self.data1, max_anoms=0.02, direction='both', threshold='med_max', only_last=None, plot=False) values = results['anoms'].get_values() self.assertEquals(4, len(values)) self.assertTrue(self.get_test_value(203.231) in values) self.assertTrue(self.get_test_value(203.90099999999998) in values) self.assertTrue(self.get_test_value(250.0) in values) self.assertTrue(self.get_test_value(210.0) in values)
def test_anomaly_detect_ts_2_longterm_true_multithreaded(self): results = anomaly_detect_ts(self.data2, direction='both', alpha=0.02, max_anoms=0.02, plot=False, longterm=True, multithreaded=True) values = results['anoms'].values self.assertEquals(2, len(values)) self.assertTrue(np.isin(self.get_test_value(-549.97419676451), values)) self.assertTrue(np.isin(self.get_test_value(-3241.79887765979), values))
def test_anomaly_detect_ts_5(self): results = anomaly_detect_ts(self.data5, direction='both', alpha=0.02, max_anoms=0.02, plot=False) values = results['anoms'].get_values() self.assertEquals(5, len(values)) self.assertTrue(np.isin(self.get_test_value(-3355.47215640248), values)) self.assertTrue(np.isin(self.get_test_value(941.905602754994), values)) self.assertTrue(np.isin(self.get_test_value(-2428.98882200991), values))
def test_anomaly_detect_ts_5(self): results = anomaly_detect_ts(self.data5, direction='both', alpha=0.02, max_anoms=0.02, plot=False, longterm=True) values = results['anoms'].get_values() self.assertEquals(4, len(values)) self.assertTrue(self.get_test_value(-3355.47215640248) in values) self.assertTrue(self.get_test_value(941.905602754994) in values) self.assertTrue(self.get_test_value(-2428.98882200991) in values) self.assertTrue(self.get_test_value(-1263.4494013677302) in values)
def test_perform_threshold_filter_multithreaded(self): results = anomaly_detect_ts(self.data1, max_anoms=0.02, direction='both', only_last=None, plot=False, multithreaded=True) periodic_max = self.data1.resample('1D').max() filtered_results = _perform_threshold_filter(AnomalyResultSeries( results['anoms'], _get_dask_series(results['anoms'])), periodic_max, 'med_max', multithreaded=True) self.assertTrue(isinstance(filtered_results, pd.Series)) self.assertEquals(4, len(filtered_results))
def test_anomaly_detect_ts_3(self): results = anomaly_detect_ts(self.data3, direction='both', alpha=0.02, max_anoms=0.02, plot=False, longterm=True) values = results['anoms'].get_values() self.assertEquals(6, len(values)) self.assertTrue(self.get_test_value(677.306772096232) in values) self.assertTrue(self.get_test_value(3003.3770260296196) in values) self.assertTrue(self.get_test_value(375.68211544563) in values) self.assertTrue(self.get_test_value(4244.34731650009) in values) self.assertTrue(self.get_test_value(2030.44357652981) in values) self.assertTrue(self.get_test_value(4223.461867236129) in values)
def test_anomaly_detect_ts_5_longterm_true_multithreaded(self): results = anomaly_detect_ts(self.data5, direction='both', alpha=0.02, max_anoms=0.02, plot=False, longterm=True, multithreaded=True) values = results['anoms'].values self.assertEquals(4, len(values)) self.assertTrue(np.isin(self.get_test_value(-3355.47215640248), values)) self.assertTrue(np.isin(self.get_test_value(941.905602754994), values)) self.assertTrue(np.isin(self.get_test_value(-2428.98882200991), values)) self.assertTrue( np.isin(self.get_test_value(-1263.4494013677302), values))
def test_get_only_last_results_multithreaded(self): results = anomaly_detect_ts(self.data1, max_anoms=0.02, direction='both', only_last=None, plot=False, multithreaded=True) last_day = _get_only_last_results(self.a_series_multithreaded, results['anoms'], 'min', 'day', multithreaded=True) last_hr = _get_only_last_results(self.a_series_multithreaded, results['anoms'], 'min', 'hr', multithreaded=True) self.assertEquals(23, len(last_day)) self.assertEquals(3, len(last_hr))
def test_anomaly_detect_ts(data): results = detts.anomaly_detect_ts(data, max_anoms=0.02, direction='both', only_last='day', plot=False)