simplify autocomplete test

This commit is contained in:
Simon Gardling
2022-05-23 10:29:58 -04:00
parent be8abfca28
commit fd91972127

View File

@@ -7,12 +7,13 @@ enum Action<'a> {
SetString(&'a str), SetString(&'a str),
Move(Movement), Move(Movement),
} }
use Action::*;
fn ac_tester(actions: &[Action]) { fn ac_tester(actions: &[Action]) {
let mut ac = AutoComplete::default(); let mut ac = AutoComplete::default();
for action in actions.iter() { for action in actions.iter() {
match action { match action {
Action::AssertIndex(target_i) => { AssertIndex(target_i) => {
if &ac.i != target_i { if &ac.i != target_i {
panic!( panic!(
"AssertIndex failed: Current: '{}' Expected: '{}'", "AssertIndex failed: Current: '{}' Expected: '{}'",
@@ -20,7 +21,7 @@ fn ac_tester(actions: &[Action]) {
) )
} }
} }
Action::AssertString(target_string) => { AssertString(target_string) => {
if &ac.string != target_string { if &ac.string != target_string {
panic!( panic!(
"AssertString failed: Current: '{}' Expected: '{}'", "AssertString failed: Current: '{}' Expected: '{}'",
@@ -28,7 +29,7 @@ fn ac_tester(actions: &[Action]) {
) )
} }
} }
Action::AssertHint(target_hint) => match ac.hint { AssertHint(target_hint) => match ac.hint {
Hint::None => { Hint::None => {
if !target_hint.is_empty() { if !target_hint.is_empty() {
panic!( panic!(
@@ -55,10 +56,10 @@ fn ac_tester(actions: &[Action]) {
} }
} }
}, },
Action::SetString(target_string) => { SetString(target_string) => {
ac.update_string(target_string); ac.update_string(target_string);
} }
Action::Move(target_movement) => { Move(target_movement) => {
ac.register_movement(target_movement); ac.register_movement(target_movement);
} }
} }
@@ -68,48 +69,48 @@ fn ac_tester(actions: &[Action]) {
#[test] #[test]
fn single() { fn single() {
ac_tester(&[ ac_tester(&[
Action::SetString(""), SetString(""),
Action::AssertHint("x^2"), AssertHint("x^2"),
Action::Move(Movement::Up), Move(Movement::Up),
Action::AssertIndex(0), AssertIndex(0),
Action::AssertString(""), AssertString(""),
Action::AssertHint("x^2"), AssertHint("x^2"),
Action::Move(Movement::Down), Move(Movement::Down),
Action::AssertIndex(0), AssertIndex(0),
Action::AssertString(""), AssertString(""),
Action::AssertHint("x^2"), AssertHint("x^2"),
Action::Move(Movement::Complete), Move(Movement::Complete),
Action::AssertString("x^2"), AssertString("x^2"),
Action::AssertHint(""), AssertHint(""),
Action::AssertIndex(0), AssertIndex(0),
]); ]);
} }
#[test] #[test]
fn multi() { fn multi() {
ac_tester(&[ ac_tester(&[
Action::SetString("s"), SetString("s"),
Action::AssertHint("in("), AssertHint("in("),
Action::Move(Movement::Up), Move(Movement::Up),
Action::AssertIndex(3), AssertIndex(3),
Action::AssertString("s"), AssertString("s"),
Action::AssertHint("ignum("), AssertHint("ignum("),
Action::Move(Movement::Down), Move(Movement::Down),
Action::AssertIndex(0), AssertIndex(0),
Action::AssertString("s"), AssertString("s"),
Action::AssertHint("in("), AssertHint("in("),
Action::Move(Movement::Down), Move(Movement::Down),
Action::AssertIndex(1), AssertIndex(1),
Action::AssertString("s"), AssertString("s"),
Action::AssertHint("qrt("), AssertHint("qrt("),
Action::Move(Movement::Up), Move(Movement::Up),
Action::AssertIndex(0), AssertIndex(0),
Action::AssertString("s"), AssertString("s"),
Action::AssertHint("in("), AssertHint("in("),
Action::Move(Movement::Complete), Move(Movement::Complete),
Action::AssertString("sin("), AssertString("sin("),
Action::AssertHint(")"), AssertHint(")"),
Action::AssertIndex(0), AssertIndex(0),
]); ]);
} }
@@ -119,39 +120,39 @@ fn none() {
let random = "qwert987gybhj"; let random = "qwert987gybhj";
ac_tester(&[ ac_tester(&[
Action::SetString(random), SetString(random),
Action::AssertHint(""), AssertHint(""),
Action::Move(Movement::Up), Move(Movement::Up),
Action::AssertIndex(0), AssertIndex(0),
Action::AssertString(random), AssertString(random),
Action::AssertHint(""), AssertHint(""),
Action::Move(Movement::Down), Move(Movement::Down),
Action::AssertIndex(0), AssertIndex(0),
Action::AssertString(random), AssertString(random),
Action::AssertHint(""), AssertHint(""),
Action::Move(Movement::Complete), Move(Movement::Complete),
Action::AssertString(random), AssertString(random),
Action::AssertHint(""), AssertHint(""),
Action::AssertIndex(0), AssertIndex(0),
]); ]);
} }
#[test] #[test]
fn parens() { fn parens() {
ac_tester(&[ ac_tester(&[
Action::SetString("sin(x"), SetString("sin(x"),
Action::AssertHint(")"), AssertHint(")"),
Action::Move(Movement::Up), Move(Movement::Up),
Action::AssertIndex(0), AssertIndex(0),
Action::AssertString("sin(x"), AssertString("sin(x"),
Action::AssertHint(")"), AssertHint(")"),
Action::Move(Movement::Down), Move(Movement::Down),
Action::AssertIndex(0), AssertIndex(0),
Action::AssertString("sin(x"), AssertString("sin(x"),
Action::AssertHint(")"), AssertHint(")"),
Action::Move(Movement::Complete), Move(Movement::Complete),
Action::AssertString("sin(x)"), AssertString("sin(x)"),
Action::AssertHint(""), AssertHint(""),
Action::AssertIndex(0), AssertIndex(0),
]); ]);
} }