Beispiel #1
0
 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']))
Beispiel #2
0
 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']))
Beispiel #3
0
    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))
Beispiel #4
0
 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']))
Beispiel #5
0
 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']))
Beispiel #6
0
 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']))
Beispiel #7
0
 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']))
Beispiel #8
0
    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))
Beispiel #9
0
 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))
Beispiel #10
0
    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))
Beispiel #11
0
    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))
Beispiel #12
0
    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))
Beispiel #13
0
 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)
Beispiel #16
0
    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))
Beispiel #17
0
    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))
Beispiel #18
0
    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))
Beispiel #20
0
    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)
Beispiel #22
0
    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))
Beispiel #23
0
    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)
Beispiel #25
0
 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)
Beispiel #27
0
    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))
Beispiel #28
0
    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))
Beispiel #29
0
def test_anomaly_detect_ts(data):
    results = detts.anomaly_detect_ts(data,
                                      max_anoms=0.02,
                                      direction='both',
                                      only_last='day',
                                      plot=False)