Fix movement tests in DisplayMap

This commit is contained in:
Antonio Scandurra 2021-12-16 12:36:27 +01:00
parent 64e2f6d506
commit abf96e6ad6

View file

@ -641,6 +641,8 @@ mod tests {
} }
// Movement // Movement
let min_point = snapshot.clip_point(DisplayPoint::new(0, 0), Left);
let max_point = snapshot.clip_point(snapshot.max_point(), Right);
for _ in 0..5 { for _ in 0..5 {
let row = rng.gen_range(0..=snapshot.max_point().row()); let row = rng.gen_range(0..=snapshot.max_point().row());
let column = rng.gen_range(0..=snapshot.line_len(row)); let column = rng.gen_range(0..=snapshot.line_len(row));
@ -650,7 +652,7 @@ mod tests {
let moved_right = movement::right(&snapshot, point).unwrap(); let moved_right = movement::right(&snapshot, point).unwrap();
log::info!("Right {:?}", moved_right); log::info!("Right {:?}", moved_right);
if point < snapshot.max_point() { if point < max_point {
assert!(moved_right > point); assert!(moved_right > point);
if point.column() == snapshot.line_len(point.row()) if point.column() == snapshot.line_len(point.row())
|| snapshot.soft_wrap_indent(point.row()).is_some() || snapshot.soft_wrap_indent(point.row()).is_some()
@ -664,13 +666,13 @@ mod tests {
let moved_left = movement::left(&snapshot, point).unwrap(); let moved_left = movement::left(&snapshot, point).unwrap();
log::info!("Left {:?}", moved_left); log::info!("Left {:?}", moved_left);
if !point.is_zero() { if point > min_point {
assert!(moved_left < point); assert!(moved_left < point);
if point.column() == 0 { if point.column() == 0 {
assert!(moved_left.row() < point.row()); assert!(moved_left.row() < point.row());
} }
} else { } else {
assert!(moved_left.is_zero()); assert_eq!(moved_left, point);
} }
} }
} }