diff options
| author | roife <roifewu@gmail.com> | 2023-12-07 15:31:15 +0800 |
|---|---|---|
| committer | roife <roifewu@gmail.com> | 2023-12-07 15:33:28 +0800 |
| commit | a011b6c84c19357d21cd418f011f4d62b320abf7 (patch) | |
| tree | 2976ef2053bcda0e226fc8409c4f8d6be5155034 | |
| parent | 9a3167e65e80a26698dfc651cc0cd5c405fbd1a9 (diff) | |
| download | rust-a011b6c84c19357d21cd418f011f4d62b320abf7.tar.gz rust-a011b6c84c19357d21cd418f011f4d62b320abf7.zip | |
fix: correct existing tests for WideChar in lib 'line-index' and add more tests
| -rw-r--r-- | lib/line-index/src/tests.rs | 28 |
1 files changed, 26 insertions, 2 deletions
diff --git a/lib/line-index/src/tests.rs b/lib/line-index/src/tests.rs index 8f3762d1910..981008e346b 100644 --- a/lib/line-index/src/tests.rs +++ b/lib/line-index/src/tests.rs @@ -1,4 +1,4 @@ -use crate::{LineIndex, TextSize, WideChar}; +use crate::{LineCol, LineIndex, TextSize, WideChar, WideEncoding, WideLineCol}; macro_rules! test { ( @@ -102,7 +102,7 @@ test!( case: multi_byte_with_new_lines, text: "01\t345\n789abcΔf01234567\u{07}9\nbcΔf", lines: vec![7, 27], - multi_byte_chars: vec![(1, (13, 15)), (2, (29, 31))], + multi_byte_chars: vec![(1, (6, 8)), (2, (2, 4))], ); test!( @@ -118,3 +118,27 @@ test!( lines: vec![16], multi_byte_chars: vec![], ); + +#[test] +fn test_try_line_col() { + let text = "\n\n\n\n\n宽3456"; + assert_eq!(&text[5..8], "宽"); + assert_eq!(&text[11..12], "6"); + let line_index = LineIndex::new(text); + let before_6 = TextSize::from(11); + let line_col = line_index.try_line_col(before_6); + assert_eq!(line_col, Some(LineCol { line: 5, col: 6 })); +} + +#[test] +fn test_to_wide() { + let text = "\n\n\n\n\n宽3456"; + assert_eq!(&text[5..8], "宽"); + assert_eq!(&text[11..12], "6"); + let line_index = LineIndex::new(text); + let before_6 = TextSize::from(11); + let line_col = line_index.try_line_col(before_6); + assert_eq!(line_col, Some(LineCol { line: 5, col: 6 })); + let wide_line_col = line_index.to_wide(WideEncoding::Utf16, line_col.unwrap()); + assert_eq!(wide_line_col, Some(WideLineCol { line: 5, col: 4 })); +} |
