boppo_core 0.1.0

The core APIs for creating activities for the Boppo tablet
Documentation
use super::*;
#[test]
fn test_invert() {
    assert_eq!(Buttons::row(Row::Top).invert(), Buttons::row(Row::Bottom));
    assert_eq!(Buttons::all().invert(), Buttons::none());
}

#[test]
fn test_indices_rows() {
    assert_eq!(
        Buttons::row(Row::Top).indices().collect::<Vec<_>>(),
        vec![0, 1, 2, 3, 4]
    );
    assert_eq!(
        Buttons::row(Row::Bottom).indices().collect::<Vec<_>>(),
        vec![5, 6, 7, 8, 9]
    );
}

#[test]
fn test_indices_column() {
    assert_eq!(
        Buttons::column(Column::C0).indices().collect::<Vec<_>>(),
        vec![0, 5]
    );
    assert_eq!(
        Buttons::column(Column::C2).indices().collect::<Vec<_>>(),
        vec![2, 7]
    );
    assert_eq!(
        Buttons::column(Column::C4).indices().collect::<Vec<_>>(),
        vec![4, 9]
    );
}

#[test]
fn test_indices_reverse() {
    let mut iter = Buttons::none().indices();
    assert_eq!(iter.next_back(), None);

    let mut iter = Buttons::from_indices([0_usize]).indices();
    assert_eq!(iter.next_back(), Some(0));
    assert_eq!(iter.next_back(), None);

    let mut iter = Buttons::all().indices();
    assert_eq!(iter.next(), Some(0));
    assert_eq!(iter.next_back(), Some(9));
    assert_eq!(iter.next_back(), Some(8));
    assert_eq!(iter.next(), Some(1));
    assert_eq!(iter.next_back(), Some(7));
    assert_eq!(iter.next_back(), Some(6));
    assert_eq!(iter.next(), Some(2));
    assert_eq!(iter.next_back(), Some(5));
    assert_eq!(iter.next_back(), Some(4));
    assert_eq!(iter.next_back(), Some(3));
    assert_eq!(iter.next_back(), None);
}

#[test]
fn test_rotate_180() {
    assert_eq!(Buttons::from_index(0).rotate_180(), Buttons::from_index(9));
    assert_eq!(Buttons::from_index(1).rotate_180(), Buttons::from_index(8));
    assert_eq!(Buttons::from_index(3).rotate_180(), Buttons::from_index(6));
    assert_eq!(Buttons::from_index(4).rotate_180(), Buttons::from_index(5));
    assert_eq!(Buttons::from_index(5).rotate_180(), Buttons::from_index(4));
    assert_eq!(
        Buttons::from_indices([0, 8]).rotate_180(),
        Buttons::from_indices([1, 9])
    );
    assert_eq!(Buttons::all().rotate_180(), Buttons::all());
    assert_eq!(Buttons::none().rotate_180(), Buttons::none());
}