diff --git a/server/src/services/analytic_service/analytic_unit/anomaly_analytic_unit.rs b/server/src/services/analytic_service/analytic_unit/anomaly_analytic_unit.rs index ce1872c..5e55419 100644 --- a/server/src/services/analytic_service/analytic_unit/anomaly_analytic_unit.rs +++ b/server/src/services/analytic_service/analytic_unit/anomaly_analytic_unit.rs @@ -54,13 +54,11 @@ impl SARIMA { let mut res_ts = Vec::<(u64, f64)>::new(); let from = ts[0].0; let to = ts.last().unwrap().0; - // let s_from = ts[ts.len() - (self.seasonality / DETECTION_STEP) as usize].0; + let iter_steps = (self.seasonality / DETECTION_STEP) as usize; if to - from != SEASONALITY_ITERATIONS * self.seasonality { return Err(anyhow::format_err!("timeserie to learn from should be {} * sasonality", SEASONALITY_ITERATIONS)); } - - let iter_steps = (self.seasonality / DETECTION_STEP) as usize; for k in 0..iter_steps { let mut vts = Vec::new(); @@ -69,12 +67,10 @@ impl SARIMA { } let mut vt: f64 = vts.iter().sum(); vt /= SEASONALITY_ITERATIONS as f64; - let t = ts[k + iter_steps * (SEASONALITY_ITERATIONS as usize - 1)].0; - + let t = ts[ts.len() - iter_steps + k].0; res_ts.push((t, vt)); } - // TODO: `to` should be equal to res_ts.last().0 self.ts = res_ts; return Ok(());