dancepredictor 0.1.0

StepMania Step Generator
Documentation
use crate::{DanceStage, FootPart, FootPlacement, StepGraph};
use danceparser::{NoteKind, Row};

#[test]
fn test_graph_walk() {
    let dance_stage = DanceStage::ddr_solo();
    let mut graph = StepGraph::new(dance_stage);
    graph.append(
        0.0,
        &Row {
            columns: vec![
                NoteKind::Tap,
                NoteKind::Empty,
                NoteKind::Empty,
                NoteKind::Empty,
            ],
        },
    );
    graph.append(
        1.0,
        &Row {
            columns: vec![
                NoteKind::Empty,
                NoteKind::Tap,
                NoteKind::Empty,
                NoteKind::Empty,
            ],
        },
    );
    graph.append(
        2.0,
        &Row {
            columns: vec![
                NoteKind::Empty,
                NoteKind::Empty,
                NoteKind::Tap,
                NoteKind::Empty,
            ],
        },
    );
    graph.append(
        3.0,
        &Row {
            columns: vec![
                NoteKind::Empty,
                NoteKind::Empty,
                NoteKind::Empty,
                NoteKind::Tap,
            ],
        },
    );
    assert_eq!(
        graph.compute_path(),
        vec![
            FootPlacement::from_ddr_solo(
                FootPart::LeftHeel,
                FootPart::None,
                FootPart::None,
                FootPart::None
            ),
            FootPlacement::from_ddr_solo(
                FootPart::LeftHeel,
                FootPart::RightHeel,
                FootPart::None,
                FootPart::None
            ),
            FootPlacement::from_ddr_solo(
                FootPart::None,
                FootPart::RightHeel,
                FootPart::LeftHeel,
                FootPart::None
            ),
            FootPlacement::from_ddr_solo(
                FootPart::None,
                FootPart::None,
                FootPart::LeftHeel,
                FootPart::RightHeel
            )
        ]
    );
}