extern crate rand;
extern crate ropey;
use std::io::Cursor;
use ropey::Rope;
const TEXT: &str = include_str!("test_text.txt");
#[test]
#[cfg_attr(miri, ignore)]
fn from_reader_01() {
let text_reader = Cursor::new(TEXT);
let rope = Rope::from_reader(text_reader).unwrap();
assert_eq!(rope, TEXT);
rope.assert_integrity();
rope.assert_invariants();
}
#[test]
#[cfg_attr(miri, ignore)]
fn from_reader_02() {
let text_reader = Cursor::new("");
let rope = Rope::from_reader(text_reader).unwrap();
assert_eq!(rope, "");
rope.assert_integrity();
rope.assert_invariants();
}
#[test]
#[cfg_attr(miri, ignore)]
fn from_reader_03() {
let mut text = Vec::new();
text.extend(TEXT.as_bytes());
text[6132] = 0b1100_0000;
text[6133] = 0b0100_0000;
let text_reader = Cursor::new(text);
if let Err(e) = Rope::from_reader(text_reader) {
assert_eq!(e.kind(), std::io::ErrorKind::InvalidData);
} else {
panic!("Should have returned an invalid data error.")
}
}