use error_enum_core::Indexer;
#[test]
fn line_indexer_works() {
use error_enum_core::LineIndexer;
let text = "Hello\nWorld\nThis is a test.";
let indexer = LineIndexer::new(text);
assert_eq!(indexer.line_col_at(0), (0, 0)); assert_eq!(indexer.line_col_at(3), (0, 3)); assert_eq!(indexer.line_col_at(6), (1, 0)); assert_eq!(indexer.line_col_at(11), (1, 5)); assert_eq!(indexer.line_col_at(12), (2, 0)); assert_eq!(indexer.line_col_at(21), (2, 9)); assert_eq!(indexer.line_col_at(26), (2, 14)); assert_eq!(indexer.line_col_at(27), (3, 0)); assert_eq!(indexer.line_col_at(30), (3, 3));
assert_eq!(indexer.line_span_at(0), (0, 6)); assert_eq!(indexer.line_span_at(3), (0, 6)); assert_eq!(indexer.line_span_at(6), (6, 12)); assert_eq!(indexer.line_span_at(11), (6, 12)); assert_eq!(indexer.line_span_at(12), (12, 27)); assert_eq!(indexer.line_span_at(21), (12, 27)); assert_eq!(indexer.line_span_at(26), (12, 27)); assert_eq!(indexer.line_span_at(27), (27, 27)); assert_eq!(indexer.line_span_at(30), (27, 27));
assert_eq!(indexer.span_with_context_lines(7, 11, 0, 0), (6, 12)); assert_eq!(indexer.span_with_context_lines(7, 11, 1, 0), (0, 12)); assert_eq!(indexer.span_with_context_lines(7, 11, 2, 2), (0, 27)); assert_eq!(indexer.span_with_context_lines(0, 5, 1, 1), (0, 12)); assert_eq!(indexer.span_with_context_lines(0, 5, 2, 2), (0, 27)); assert_eq!(indexer.span_with_context_lines(22, 26, 1, 1), (6, 27)); assert_eq!(indexer.span_with_context_lines(22, 26, 2, 2), (0, 27)); }