si4703 0.1.0

Platform-agnostic Rust driver for the Si4703 and Si4702 FM radio turners (receivers).
Documentation
use embedded_hal_mock::{
    delay::MockNoop as NoopDelay,
    pin::{Mock as PinMock, State as PinState, Transaction as PinTrans},
};
use si4703::{
    reset_and_select_i2c_method1, reset_and_select_i2c_method1_with_gpio3,
    reset_and_select_i2c_method2,
};

#[test]
fn can_reset_method1() {
    let mut rst = PinMock::new(&[PinTrans::set(PinState::Low), PinTrans::set(PinState::High)]);
    let mut sda = PinMock::new(&[PinTrans::set(PinState::Low)]);
    let mut delay = NoopDelay::new();
    reset_and_select_i2c_method1(&mut rst, &mut sda, &mut delay).unwrap();
    rst.done();
    sda.done()
}

#[test]
fn can_reset_method1_with_gpio3() {
    let mut rst = PinMock::new(&[PinTrans::set(PinState::Low), PinTrans::set(PinState::High)]);
    let mut sda = PinMock::new(&[PinTrans::set(PinState::Low)]);
    let mut gpio3 = PinMock::new(&[PinTrans::set(PinState::Low)]);
    let mut delay = NoopDelay::new();
    reset_and_select_i2c_method1_with_gpio3(&mut rst, &mut sda, &mut gpio3, &mut delay).unwrap();
    rst.done();
    sda.done();
    gpio3.done()
}

#[test]
fn can_reset_method2() {
    let mut rst = PinMock::new(&[PinTrans::set(PinState::Low), PinTrans::set(PinState::High)]);
    let mut gpio1 = PinMock::new(&[PinTrans::set(PinState::High)]);
    let mut gpio3 = PinMock::new(&[PinTrans::set(PinState::High)]);
    let mut delay = NoopDelay::new();
    reset_and_select_i2c_method2(&mut rst, &mut gpio1, &mut gpio3, &mut delay).unwrap();
    rst.done();
    gpio1.done();
    gpio3.done()
}