use super::*;
use dtee::{Controller, Updates};
const WIDTH: usize = 800;
const HEIGHT: usize = 600;
#[test]
fn _0001() {
let mut controller = Controller::new(INPUT_0002).with_viewport(WIDTH, HEIGHT);
assert_eq!((1, 1), controller.cursor().pos());
assert_eq!(Updates::default(), controller.cursor_move_left());
assert_eq!((1, 1), controller.cursor().pos());
}
#[test]
fn _0002() {
let mut controller = Controller::new(INPUT_0002).with_viewport(WIDTH, HEIGHT);
assert_eq!((1, 1), controller.cursor().pos());
assert_eq!(Some(false), controller.cursor_move_right().temporary());
assert_eq!((2, 1), controller.cursor().pos());
assert_eq!((true, false, false, false), controller.cursor_move_left().get());
assert_eq!((1, 1), controller.cursor().pos());
}
#[test]
fn _0003() {
let mut controller = Controller::new(INPUT_0002).with_viewport(WIDTH, HEIGHT);
assert_eq!((1, 1), controller.cursor().pos());
(1..=17).for_each(|_| {
assert_eq!(Some(false), controller.cursor_move_right().temporary());
});
assert_eq!((18, 1), controller.cursor().pos());
(1..=100).for_each(|_| {
assert_eq!(None, controller.cursor_move_right().temporary());
assert_eq!((18, 1), controller.cursor().pos());
});
}
#[test]
fn _0004() {
let mut controller = Controller::new(INPUT_0002).with_viewport(10, 21);
assert_eq!((1, 1), controller.cursor().pos());
(1..=6).for_each(|i| {
assert_eq!(Some(false), controller.cursor_move_right().temporary());
assert_eq!((1 + i, 1), controller.cursor().pos());
});
assert_eq!((7, 1), controller.cursor().pos());
(1..=11).for_each(|i| {
assert_eq!(Some(true), controller.cursor_move_right().temporary());
assert_eq!((7 + i, 1), controller.cursor().pos());
});
assert_eq!((18, 1), controller.cursor().pos());
(1..=100).for_each(|_| {
assert_eq!(None, controller.cursor_move_right().temporary());
assert_eq!((18, 1), controller.cursor().pos());
});
(1..=6).for_each(|i| {
assert_eq!((true, false, false, false), controller.cursor_move_left().get());
assert_eq!((18 - i, 1), controller.cursor().pos());
});
assert_eq!((12, 1), controller.cursor().pos());
(1..=11).for_each(|i| {
assert_eq!((true, false, true, false), controller.cursor_move_left().get());
assert_eq!((12 - i, 1), controller.cursor().pos());
});
assert_eq!((1, 1), controller.cursor().pos());
(1..=100).for_each(|_| {
assert_eq!((false, false, false, false), controller.cursor_move_left().get());
assert_eq!((1, 1), controller.cursor().pos());
});
}
#[test]
fn _0005() {
let mut controller = Controller::new(INPUT_0002).with_viewport(WIDTH, HEIGHT);
assert_eq!((1, 1), controller.cursor().pos());
assert_eq!(None, controller.cursor_move_up().temporary());
assert_eq!((1, 1), controller.cursor().pos());
}
#[test]
fn _0006() {
let mut controller = Controller::new(INPUT_0002).with_viewport(WIDTH, HEIGHT);
assert_eq!((1, 1), controller.cursor().pos());
assert_eq!(Some(false), controller.cursor_move_down().temporary());
assert_eq!((1, 3), controller.cursor().pos());
}
#[test]
fn _0007() {
let mut controller = Controller::new(INPUT_0002).with_viewport(WIDTH, HEIGHT);
assert_eq!((1, 1), controller.cursor().pos());
(1..=10).for_each(|_| {
assert_eq!(Some(false), controller.cursor_move_down().temporary());
});
assert_eq!((1, 15), controller.cursor().pos());
(1..=100).for_each(|_| {
assert_eq!(None, controller.cursor_move_down().temporary());
assert_eq!((1, 15), controller.cursor().pos());
});
(1..=10).for_each(|_| {
assert_eq!(Some(false), controller.cursor_move_up().temporary());
});
assert_eq!((1, 1), controller.cursor().pos());
(1..=100).for_each(|_| {
assert_eq!(None, controller.cursor_move_up().temporary());
assert_eq!((1, 1), controller.cursor().pos());
});
}
#[test]
fn _0008() {
let mut controller = Controller::new(INPUT_0002).with_viewport(WIDTH, 10);
assert_eq!((1, 1), controller.cursor().pos());
(1..=5).for_each(|_| {
assert_eq!(Some(false), controller.cursor_move_down().temporary());
});
assert_eq!((1, 7), controller.cursor().pos());
(1..=5).for_each(|_| {
assert_eq!(Some(true), controller.cursor_move_down().temporary());
});
assert_eq!((1, 15), controller.cursor().pos());
(1..=100).for_each(|_| {
assert_eq!(None, controller.cursor_move_down().temporary());
assert_eq!((1, 15), controller.cursor().pos());
});
(1..=3).for_each(|_| {
assert_eq!(Some(false), controller.cursor_move_up().temporary());
});
assert_eq!((1, 9), controller.cursor().pos());
(1..=7).for_each(|_| {
assert_eq!(Some(true), controller.cursor_move_up().temporary());
});
assert_eq!((1, 1), controller.cursor().pos());
(1..=100).for_each(|_| {
assert_eq!(None, controller.cursor_move_up().temporary());
assert_eq!((1, 1), controller.cursor().pos());
});
}
#[test]
fn _0009() {
let mut controller = Controller::new(INPUT_0002).with_viewport(WIDTH, HEIGHT);
assert_eq!((1, 1), controller.cursor().pos());
(1..=4).for_each(|_| {
assert_eq!(Some(false), controller.cursor_move_down().temporary());
});
assert_eq!((1, 6), controller.cursor().pos());
(1..=3).for_each(|_| {
assert_eq!(Some(false), controller.cursor_move_right().temporary());
});
assert_eq!((4, 6), controller.cursor().pos());
(1..=100).for_each(|_| {
assert_eq!(None, controller.cursor_move_right().temporary());
});
assert_eq!((4, 6), controller.cursor().pos());
}
#[test]
fn _0010() {
let mut controller = Controller::new(INPUT_0002).with_viewport(WIDTH, HEIGHT);
assert_eq!((1, 1), controller.cursor().pos());
assert_eq!(Some(false), controller.cursor_move_down().temporary());
assert_eq!((1, 3), controller.cursor().pos());
assert_eq!(Some(false), controller.cursor_move_row_end().temporary());
assert_eq!((72, 3), controller.cursor().pos());
assert_eq!(Some(false), controller.cursor_move_down().temporary());
assert_eq!((72, 4), controller.cursor().pos());
(1..=25).for_each(|_| {
assert_eq!((true, false, false, false), controller.cursor_move_left().get());
});
assert_eq!((47, 4), controller.cursor().pos());
(1..=100).for_each(|_| {
assert_eq!((false, false, false, false), controller.cursor_move_left().get());
});
assert_eq!((47, 4), controller.cursor().pos());
}
#[test]
fn _0011() {
let mut controller = Controller::new(INPUT_0002).with_viewport(WIDTH, HEIGHT);
assert_eq!((1, 1), controller.cursor().pos());
assert_eq!(None, controller.cursor_move_cell_start().temporary());
assert_eq!((1, 1), controller.cursor().pos());
(1..=5).for_each(|_| {
assert_eq!(Some(false), controller.cursor_move_right().temporary());
});
assert_eq!((6, 1), controller.cursor().pos());
assert_eq!(Some(false), controller.cursor_move_cell_start().temporary());
assert_eq!((1, 1), controller.cursor().pos());
}
#[test]
fn _0012() {
let mut controller = Controller::new(INPUT_0002).with_viewport(WIDTH, HEIGHT);
assert_eq!((1, 1), controller.cursor().pos());
assert_eq!(Some(false), controller.cursor_move_cell_end().temporary());
assert_eq!(None, controller.cursor_move_cell_end().temporary());
assert_eq!((18, 1), controller.cursor().pos());
(1..=5).for_each(|_| {
assert_eq!((true, false, false, false), controller.cursor_move_left().get());
});
assert_eq!((13, 1), controller.cursor().pos());
assert_eq!(Some(false), controller.cursor_move_cell_end().temporary());
assert_eq!((18, 1), controller.cursor().pos());
}
#[test]
fn _0013() {
let mut controller = Controller::new(INPUT_0002).with_viewport(10, HEIGHT);
assert_eq!((1, 1), controller.cursor().pos());
assert_eq!(Some(true), controller.cursor_move_cell_end().temporary());
assert_eq!((18, 1), controller.cursor().pos());
assert_eq!(Some(true), controller.cursor_move_cell_start().temporary());
assert_eq!((1, 1), controller.cursor().pos());
}
#[test]
fn _0014() {
let mut controller = Controller::new(INPUT_0002).with_viewport(WIDTH, HEIGHT);
assert_eq!((1, 1), controller.cursor().pos());
assert_eq!(Some(false), controller.cursor_move_down().temporary());
assert_eq!((1, 3), controller.cursor().pos());
assert_eq!(Some(false), controller.cursor_move_row_end().temporary());
assert_eq!((72, 3), controller.cursor().pos());
assert_eq!(None, controller.cursor_move_row_end().temporary());
assert_eq!((72, 3), controller.cursor().pos());
}
#[test]
fn _0015() {
let mut controller = Controller::new(INPUT_0002).with_viewport(WIDTH, HEIGHT);
assert_eq!((1, 1), controller.cursor().pos());
assert_eq!(Some(false), controller.cursor_move_down().temporary());
assert_eq!((1, 3), controller.cursor().pos());
assert_eq!(Some(false), controller.cursor_move_row_end().temporary());
assert_eq!((72, 3), controller.cursor().pos());
assert_eq!(Some(false), controller.cursor_move_row_start().temporary());
assert_eq!((1, 3), controller.cursor().pos());
assert_eq!(None, controller.cursor_move_row_start().temporary());
assert_eq!((1, 3), controller.cursor().pos());
}
#[test]
fn _0016() {
let mut controller = Controller::new(INPUT_0002).with_viewport(30, HEIGHT);
assert_eq!((1, 1), controller.cursor().pos());
assert_eq!(Some(false), controller.cursor_move_down().temporary());
assert_eq!((1, 3), controller.cursor().pos());
assert!(controller.cursor().is_caret());
assert_eq!(Some(true), controller.cursor_move_row_end().temporary());
assert_eq!((72, 3), controller.cursor().pos());
assert_eq!(Some(true), controller.cursor_move_row_start().temporary());
assert_eq!((1, 3), controller.cursor().pos());
controller.cursor_toggle_caret_block();
assert!(controller.cursor().is_block());
assert_eq!(Some(true), controller.cursor_move_row_end().temporary());
assert_eq!((71, 3), controller.cursor().pos());
assert_eq!(Some(true), controller.cursor_move_row_start().temporary());
assert_eq!((1, 3), controller.cursor().pos());
controller.cursor_toggle_caret_under_score();
assert!(controller.cursor().is_under_score());
assert_eq!(Some(true), controller.cursor_move_row_end().temporary());
assert_eq!((71, 3), controller.cursor().pos());
assert_eq!(Some(true), controller.cursor_move_row_start().temporary());
assert_eq!((1, 3), controller.cursor().pos());
}
#[test]
fn _0017() {
let mut controller = Controller::new(INPUT_0002).with_viewport(WIDTH, HEIGHT);
assert_eq!((1, 1), controller.cursor().pos());
assert_eq!(Some(false), controller.cursor_move_down().temporary());
assert_eq!((1, 3), controller.cursor().pos());
assert_eq!(Some(false), controller.cursor_move_cell_next().temporary());
assert_eq!((5, 3), controller.cursor().pos());
assert_eq!(Some(false), controller.cursor_move_cell_next().temporary());
assert_eq!((17, 3), controller.cursor().pos());
assert_eq!(Some(false), controller.cursor_move_cell_next().temporary());
assert_eq!((25, 3), controller.cursor().pos());
assert_eq!(Some(false), controller.cursor_move_cell_next().temporary());
assert_eq!((47, 3), controller.cursor().pos());
assert_eq!(Some(false), controller.cursor_move_cell_next().temporary());
assert_eq!((61, 3), controller.cursor().pos());
assert_eq!(Some(false), controller.cursor_move_cell_next().temporary());
assert_eq!((72, 3), controller.cursor().pos());
assert_eq!(None, controller.cursor_move_cell_next().temporary());
assert_eq!((72, 3), controller.cursor().pos());
}
#[test]
fn _0018() {
let mut controller = Controller::new(INPUT_0002).with_viewport(WIDTH, HEIGHT);
assert_eq!((1, 1), controller.cursor().pos());
assert_eq!(Some(false), controller.cursor_move_down().temporary());
assert_eq!((1, 3), controller.cursor().pos());
assert_eq!(Some(false), controller.cursor_move_row_end().temporary());
assert_eq!((72, 3), controller.cursor().pos());
assert_eq!(Some(false), controller.cursor_move_cell_prev().temporary());
assert_eq!((60, 3), controller.cursor().pos());
assert_eq!(Some(false), controller.cursor_move_cell_prev().temporary());
assert_eq!((46, 3), controller.cursor().pos());
assert_eq!(Some(false), controller.cursor_move_cell_prev().temporary());
assert_eq!((24, 3), controller.cursor().pos());
assert_eq!(Some(false), controller.cursor_move_cell_prev().temporary());
assert_eq!((16, 3), controller.cursor().pos());
assert_eq!(Some(false), controller.cursor_move_cell_prev().temporary());
assert_eq!((4, 3), controller.cursor().pos());
assert_eq!(Some(false), controller.cursor_move_cell_prev().temporary());
assert_eq!((1, 3), controller.cursor().pos());
assert_eq!(None, controller.cursor_move_cell_prev().temporary());
assert_eq!((1, 3), controller.cursor().pos());
}
#[test]
fn _0019() {
let mut controller = Controller::new(INPUT_0002).with_viewport(40, HEIGHT);
assert_eq!((1, 1), controller.cursor().pos());
assert_eq!(Some(false), controller.cursor_move_down().temporary());
assert_eq!((1, 3), controller.cursor().pos());
assert_eq!(Some(false), controller.cursor_move_cell_next().temporary());
assert_eq!((5, 3), controller.cursor().pos());
assert_eq!(Some(false), controller.cursor_move_cell_next().temporary());
assert_eq!((17, 3), controller.cursor().pos());
assert_eq!(Some(false), controller.cursor_move_cell_next().temporary());
assert_eq!((25, 3), controller.cursor().pos());
assert_eq!(Some(true), controller.cursor_move_cell_next().temporary());
assert_eq!((47, 3), controller.cursor().pos());
assert_eq!(Some(true), controller.cursor_move_cell_next().temporary());
assert_eq!((61, 3), controller.cursor().pos());
assert_eq!(Some(true), controller.cursor_move_cell_next().temporary());
assert_eq!((72, 3), controller.cursor().pos());
assert_eq!(None, controller.cursor_move_cell_next().temporary());
assert_eq!((72, 3), controller.cursor().pos());
assert_eq!(Some(false), controller.cursor_move_cell_prev().temporary());
assert_eq!((60, 3), controller.cursor().pos());
assert_eq!(Some(false), controller.cursor_move_cell_prev().temporary());
assert_eq!((46, 3), controller.cursor().pos());
assert_eq!(Some(true), controller.cursor_move_cell_prev().temporary());
assert_eq!((24, 3), controller.cursor().pos());
assert_eq!(Some(true), controller.cursor_move_cell_prev().temporary());
assert_eq!((16, 3), controller.cursor().pos());
assert_eq!(Some(true), controller.cursor_move_cell_prev().temporary());
assert_eq!((4, 3), controller.cursor().pos());
assert_eq!(Some(true), controller.cursor_move_cell_prev().temporary());
assert_eq!((1, 3), controller.cursor().pos());
assert_eq!(None, controller.cursor_move_cell_prev().temporary());
assert_eq!((1, 3), controller.cursor().pos());
}
#[test]
fn _0020() {
let mut controller = Controller::new(INPUT_0002).with_viewport(WIDTH, HEIGHT);
assert_eq!((1, 1), controller.cursor().pos());
assert_eq!(Some(false), controller.cursor_move_down().temporary());
assert_eq!(Some(false), controller.cursor_move_down().temporary());
assert_eq!((1, 4), controller.cursor().pos());
assert_eq!(Some(false), controller.cursor_move_row_end().temporary());
assert_eq!((72, 4), controller.cursor().pos());
assert_eq!(None, controller.cursor_move_row_end().temporary());
assert_eq!((72, 4), controller.cursor().pos());
assert_eq!(Some(false), controller.cursor_move_row_start().temporary());
assert_eq!((1, 4), controller.cursor().pos());
assert_eq!(None, controller.cursor_move_row_start().temporary());
assert_eq!((1, 4), controller.cursor().pos());
}
#[test]
fn _0021() {
let mut controller = Controller::new(INPUT_0002).with_viewport(WIDTH, HEIGHT);
assert_eq!((1, 1), controller.cursor().pos());
(1..=4).for_each(|_| {
assert_eq!(Some(false), controller.cursor_move_down().temporary());
});
assert_eq!((1, 6), controller.cursor().pos());
assert_eq!(Some(false), controller.cursor_move_row_end().temporary());
assert_eq!((4, 6), controller.cursor().pos());
assert_eq!(None, controller.cursor_move_row_end().temporary());
assert_eq!((4, 6), controller.cursor().pos());
assert_eq!(Some(false), controller.cursor_move_row_start().temporary());
assert_eq!((1, 6), controller.cursor().pos());
assert_eq!(None, controller.cursor_move_row_start().temporary());
assert_eq!((1, 6), controller.cursor().pos());
}
#[test]
fn _0022() {
let mut controller = Controller::new(INPUT_0002).with_viewport(WIDTH, HEIGHT);
assert_eq!((1, 1), controller.cursor().pos());
assert!(controller.cursor().is_caret());
assert_eq!(Some(false), controller.cursor_move_down().temporary());
(1..=3).for_each(|_| {
assert_eq!(Some(false), controller.cursor_move_cell_next().temporary());
});
assert_eq!((25, 3), controller.cursor().pos());
(1..=10).for_each(|_| {
assert_eq!(Some(false), controller.cursor_move_right().temporary());
});
assert_eq!((35, 3), controller.cursor().pos());
assert_eq!(Some(false), controller.cursor_move_down().temporary());
assert_eq!((35, 5), controller.cursor().pos());
assert_eq!(Some(false), controller.cursor_move_right().temporary());
assert_eq!((36, 5), controller.cursor().pos());
assert_eq!(Some(false), controller.cursor_move_up().temporary());
assert_eq!((36, 3), controller.cursor().pos());
}
#[test]
fn _0023() {
let mut controller = Controller::new(INPUT_0002).with_viewport(WIDTH, HEIGHT);
assert_eq!((1, 1), controller.cursor().pos());
controller.cursor_toggle_caret_block();
assert!(controller.cursor().is_block());
assert_eq!(Some(false), controller.cursor_move_down().temporary());
(1..=3).for_each(|_| {
assert_eq!(Some(false), controller.cursor_move_cell_next().temporary());
});
assert_eq!((25, 3), controller.cursor().pos());
(1..=10).for_each(|_| {
assert_eq!(Some(false), controller.cursor_move_right().temporary());
});
assert_eq!((35, 3), controller.cursor().pos());
assert_eq!(Some('o'), controller.cursor_char());
assert_eq!(None, controller.cursor_move_down().temporary());
assert_eq!((35, 3), controller.cursor().pos());
controller.cursor_toggle_caret_under_score();
assert!(controller.cursor().is_under_score());
assert_eq!(None, controller.cursor_move_down().temporary());
assert_eq!((35, 3), controller.cursor().pos());
}
#[test]
fn _0024() {
let mut controller = Controller::new(INPUT_0002).with_viewport(WIDTH, HEIGHT);
assert_eq!((1, 1), controller.cursor().pos());
assert!(controller.cursor().is_caret());
assert_eq!(Some(false), controller.cursor_move_down().temporary());
assert_eq!((1, 3), controller.cursor().pos());
(1..=71).for_each(|_| {
assert_eq!(Some(false), controller.cursor_move_right().temporary());
});
assert_eq!((72, 3), controller.cursor().pos());
(1..=100).for_each(|_| {
assert_eq!(None, controller.cursor_move_right().temporary());
assert_eq!((72, 3), controller.cursor().pos());
});
(1..=71).for_each(|_| {
assert_eq!((true, false, false, false), controller.cursor_move_left().get());
});
assert_eq!((1, 3), controller.cursor().pos());
(1..=100).for_each(|_| {
assert_eq!((false, false, false, false), controller.cursor_move_left().get());
assert_eq!((1, 3), controller.cursor().pos());
});
}
#[test]
fn _0025() {
let mut controller = Controller::new(INPUT_0002).with_viewport(WIDTH, HEIGHT);
assert_eq!((1, 1), controller.cursor().pos());
controller.cursor_toggle_caret_block();
assert!(controller.cursor().is_block());
assert_eq!(Some(false), controller.cursor_move_down().temporary());
assert_eq!((1, 3), controller.cursor().pos());
(1..=65).for_each(|_| {
assert_eq!(Some(false), controller.cursor_move_right().temporary());
});
assert_eq!((71, 3), controller.cursor().pos());
(1..=100).for_each(|_| {
assert_eq!(None, controller.cursor_move_right().temporary());
assert_eq!((71, 3), controller.cursor().pos());
});
(1..=65).for_each(|_| {
assert_eq!((true, false, false, false), controller.cursor_move_left().get());
});
assert_eq!((1, 3), controller.cursor().pos());
(1..=100).for_each(|_| {
assert_eq!((false, false, false, false), controller.cursor_move_left().get());
assert_eq!((1, 3), controller.cursor().pos());
});
}
#[test]
fn _0026() {
let mut controller = Controller::new(INPUT_0002).with_viewport(WIDTH, HEIGHT);
assert_eq!((1, 1), controller.cursor().pos());
controller.cursor_toggle_caret_under_score();
assert!(controller.cursor().is_under_score());
assert_eq!(Some(false), controller.cursor_move_down().temporary());
assert_eq!((1, 3), controller.cursor().pos());
(1..=65).for_each(|_| {
assert_eq!(Some(false), controller.cursor_move_right().temporary());
});
assert_eq!((71, 3), controller.cursor().pos());
(1..=100).for_each(|_| {
assert_eq!(None, controller.cursor_move_right().temporary());
assert_eq!((71, 3), controller.cursor().pos());
});
(1..=65).for_each(|_| {
assert_eq!((true, false, false, false), controller.cursor_move_left().get());
});
assert_eq!((1, 3), controller.cursor().pos());
(1..=100).for_each(|_| {
assert_eq!((false, false, false, false), controller.cursor_move_left().get());
assert_eq!((1, 3), controller.cursor().pos());
});
}
#[test]
fn _0027() {
let mut controller = Controller::new(INPUT_0002).with_viewport(WIDTH, HEIGHT);
assert_eq!((1, 1), controller.cursor().pos());
actions(&mut controller, &[MoveDown(1), MoveRight(3)]);
assert_eq!((4, 3), controller.cursor().pos());
actions(&mut controller, &[CellNext(1)]);
assert_eq!((5, 3), controller.cursor().pos());
}
#[test]
fn _0028() {
let mut controller = Controller::new(INPUT_0002).with_viewport(WIDTH, HEIGHT);
actions(
&mut controller,
&[AssertPos(1, 1), MoveDown(1), MoveRight(4), AssertPos(5, 3), CellPrev(1), AssertPos(4, 3)],
);
}
#[test]
fn _0029() {
let mut controller = Controller::new(INPUT_0002).with_viewport(WIDTH, HEIGHT);
actions(&mut controller, &[AssertPos(1, 1), CellEnd(1), AssertPos(18, 1), CellStart(1), AssertPos(1, 1)]);
}
#[test]
fn _0030() {
let mut controller = Controller::new(INPUT_0002).with_viewport(WIDTH, HEIGHT);
actions(&mut controller, &[MoveDown(1), AssertPos(1, 3), RowEnd(1), AssertPos(72, 3), RowStart(1), AssertPos(1, 3)]);
}