s2gpp 1.0.2

Algorithm for Highly Efficient Detection of Correlation Anomalies in Multivariate Time Series
Documentation
use crate::data_store::edge::Edge;
use crate::data_store::node::IndependentNode;
use crate::parameters::Parameters;
use crate::training::transposition::Transposer;
use crate::training::Training;
use crate::SyncInterface;

#[test]
fn test_assignments() {
    let mut parameters = Parameters::default();
    parameters.n_cluster_nodes = 2;
    let mut training = Training::init(parameters);

    training.transposition.range_start_point = Some(0);
    training.transposition.partition_len = Some(2);

    training.data_store.add_edges(vec![
        Edge::new(
            IndependentNode::new(0, 0, 0).into_ref(),
            IndependentNode::new(1, 0, 0).into_ref(),
        ),
        Edge::new(
            IndependentNode::new(1, 0, 1).into_ref(),
            IndependentNode::new(2, 0, 1).into_ref(),
        ),
        Edge::new(
            IndependentNode::new(2, 0, 1).into_ref(),
            IndependentNode::new(3, 0, 1).into_ref(),
        ),
        Edge::new(
            IndependentNode::new(3, 0, 2).into_ref(),
            IndependentNode::new(4, 0, 2).into_ref(),
        ),
        Edge::new(
            IndependentNode::new(4, 0, 3).into_ref(),
            IndependentNode::new(5, 0, 3).into_ref(),
        ),
    ]);

    let assignments = training.assign_edges_to_neighbours();
    let edges = training.data_store.get_edges();
    assert_eq!(edges.len(), 3);
    assert_eq!(assignments.get(&1).unwrap().len(), 2);
}