From 3ba463020c0753916a1f2694256e15ac9d0b6035 Mon Sep 17 00:00:00 2001 From: Antonio Scandurra Date: Tue, 4 May 2021 12:11:44 +0200 Subject: [PATCH] Test FoldMap `to_display_offset`, `to_display_point`, `to_buffer_point` --- zed/src/editor/display_map/fold_map.rs | 29 ++++++++++++++++++++++++++ 1 file changed, 29 insertions(+) diff --git a/zed/src/editor/display_map/fold_map.rs b/zed/src/editor/display_map/fold_map.rs index 9b083f62b57789fd880e23583b92fa7d27a38e11..3447e2697a568bf553110f9b4b583920a312d7bf 100644 --- a/zed/src/editor/display_map/fold_map.rs +++ b/zed/src/editor/display_map/fold_map.rs @@ -746,6 +746,35 @@ mod tests { assert_eq!(map.text(app.as_ref()), expected_text); + for (display_row, line) in expected_text.lines().enumerate() { + let line_len = map.line_len(display_row as u32, app.as_ref()).unwrap(); + assert_eq!(line_len, line.chars().count() as u32); + } + + let mut display_point = DisplayPoint::new(0, 0); + let mut display_offset = DisplayOffset(0); + for c in expected_text.chars() { + let buffer_point = map.to_buffer_point(display_point); + let buffer_offset = buffer_point.to_offset(buffer).unwrap(); + assert_eq!(map.to_display_point(buffer_point), display_point); + assert_eq!( + map.to_buffer_offset(display_point, app.as_ref()).unwrap(), + buffer_offset + ); + assert_eq!( + map.to_display_offset(display_point, app.as_ref()).unwrap(), + display_offset + ); + + if c == '\n' { + *display_point.row_mut() += 1; + *display_point.column_mut() = 0; + } else { + *display_point.column_mut() += 1; + } + display_offset.0 += 1; + } + for (idx, buffer_row) in expected_buffer_rows.iter().enumerate() { let display_row = map.to_display_point(Point::new(*buffer_row, 0)).row(); assert_eq!(