simplify autocomplete test
This commit is contained in:
@@ -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),
|
||||||
]);
|
]);
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user