Skip to content

Commit ff59147

Browse files
author
Moritz Vetter
committed
add two more unit tests for text_edit
1 parent 21d497b commit ff59147

File tree

1 file changed

+41
-13
lines changed

1 file changed

+41
-13
lines changed

crates/text_edit/src/lib.rs

Lines changed: 41 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -198,16 +198,44 @@ fn check_disjoint_and_sort(indels: &mut [impl std::borrow::Borrow<Indel>]) -> bo
198198
})
199199
}
200200

201-
#[test]
202-
fn test_apply() {
203-
let mut text = "_11h1_2222_xx3333_4444_6666".to_string();
204-
let mut builder = TextEditBuilder::default();
205-
builder.replace(TextRange::new(3.into(), 4.into()), "1".to_string());
206-
builder.delete(TextRange::new(11.into(), 13.into()));
207-
builder.insert(22.into(), "_5555".to_string());
208-
209-
let text_edit = builder.finish();
210-
text_edit.apply(&mut text);
211-
212-
assert_eq!(text, "_1111_2222_3333_4444_5555_6666")
213-
}
201+
#[cfg(test)]
202+
mod tests {
203+
use super::{TextEdit, TextEditBuilder, TextRange};
204+
205+
fn range(start: u32, end: u32) -> TextRange {
206+
TextRange::new(start.into(), end.into())
207+
}
208+
209+
#[test]
210+
fn test_apply() {
211+
let mut text = "_11h1_2222_xx3333_4444_6666".to_string();
212+
let mut builder = TextEditBuilder::default();
213+
builder.replace(range(3, 4), "1".to_string());
214+
builder.delete(range(11, 13));
215+
builder.insert(22.into(), "_5555".to_string());
216+
217+
let text_edit = builder.finish();
218+
text_edit.apply(&mut text);
219+
220+
assert_eq!(text, "_1111_2222_3333_4444_5555_6666")
221+
}
222+
223+
#[test]
224+
fn test_union() {
225+
let mut edit1 = TextEdit::delete(range(7, 11));
226+
let mut builder = TextEditBuilder::default();
227+
builder.delete(range(1, 5));
228+
builder.delete(range(13, 17));
229+
230+
let edit2 = builder.finish();
231+
assert!(edit1.union(edit2).is_ok());
232+
assert_eq!(edit1.indels.len(), 3);
233+
}
234+
235+
#[test]
236+
fn test_union_panics() {
237+
let mut edit1 = TextEdit::delete(range(7, 11));
238+
let edit2 = TextEdit::delete(range(9, 13));
239+
assert!(edit1.union(edit2).is_err());
240+
}
241+
}

0 commit comments

Comments
 (0)