galaxy_save_core 0.2.0

Defining common types and traits used in the save data of Super Mario Galaxy and Super Mario Galaxy 2
Documentation
use super::*;

#[test]
fn test_on() {
    let array = [false, false, true, true, false, true, true, false];
    let bit_array = BitArray8::from(array);

    for i in 0..8 {
        assert_eq!(bit_array.test(i), array[i as usize]);
    }
}

#[test]
#[should_panic]
fn test_on_panic() {
    let bit_array = BitArray8::new();
    bit_array.test(8);
}

#[test]
fn test_set() {
    let mut bits = 0b00000000u8;
    let mut bit_array = BitArray8::from(bits);

    for i in 0..8 {
        bit_array.set(i);
        bits |= 1 << i;
        assert_eq!(bit_array, BitArray8::from(bits));
    }
}

#[test]
#[should_panic]
fn test_set_panic() {
    let mut bit_array = BitArray8::new();
    bit_array.set(8);
}

#[test]
fn test_clear() {
    let mut bits = 0b11111111u8;
    let mut bit_array = BitArray8::from(bits);

    for i in 0..8 {
        bit_array.clear(i);
        bits &= !(1 << i);
        assert_eq!(bit_array, BitArray8::from(bits));
    }
}

#[test]
#[should_panic]
fn test_clear_panic() {
    let mut bit_array = BitArray8::new();
    bit_array.clear(8);
}