extern crate input;
extern crate serde_json;
use input::*;
#[test]
fn test_encode_decode() {
let test = |input| {
let encoded = serde_json::to_string(&input).unwrap();
let decoded: Input = serde_json::from_str(&encoded).unwrap();
assert_eq!(decoded, input);
};
test(Input::Button(ButtonArgs {
state: ButtonState::Press,
button: Button::Keyboard(Key::A),
scancode: None,
}));
test(Input::Button(ButtonArgs {
state: ButtonState::Release,
button: Button::Keyboard(Key::A),
scancode: None,
}));
test(Input::Move(Motion::MouseCursor([0.0, 0.0])));
test(Input::Text("hello".into()));
test(Input::Resize(ResizeArgs {
window_size: [0.0, 0.0],
draw_size: [0, 0],
}));
test(Input::Focus(true));
test(Input::Cursor(true));
test(Input::Close(CloseArgs));
let test = |l| {
let encoded = serde_json::to_string(&l).unwrap();
let decoded: Loop = serde_json::from_str(&encoded).unwrap();
assert_eq!(decoded, l);
};
test(Loop::Render(RenderArgs {
window_size: [0.0, 0.0],
draw_size: [0, 0],
ext_dt: 0.0,
}));
test(Loop::AfterRender(AfterRenderArgs));
test(Loop::Update(UpdateArgs { dt: 0.0 }));
test(Loop::Idle(IdleArgs { dt: 0.0 }));
}