use basic_text::{text, TextStr, TextString};
use std::fs::File;
use std::io::Read;
#[test]
fn basic_text_example() {
let mut s = String::new();
File::open("samples/basic-text-example.txt")
.unwrap()
.read_to_string(&mut s)
.unwrap();
assert_eq!(TextStr::from_text(&s).unwrap(), s);
}
#[test]
fn basic_text_invalid() {
let mut invalid = Vec::new();
File::open("samples/basic-text-invalid.txt")
.unwrap()
.read_to_end(&mut invalid)
.unwrap();
let mut converted = String::new();
File::open("samples/basic-text-invalid-converted.txt")
.unwrap()
.read_to_string(&mut converted)
.unwrap();
if *TextString::from_text_bytes_lossy(&invalid) != converted {
for (a, b) in (*TextString::from_text_bytes_lossy(&invalid))
.chars()
.zip(converted.chars())
{
if a == b {
dbg!(a);
} else {
eprintln!("DIFFER: {:?} vs {:?}", a, b);
}
}
}
let mut check = (*TextString::from_text_bytes_lossy(&invalid)).to_owned();
check.push_text(text!("\n"));
assert_eq!(check, converted);
}