use std::collections::VecDeque;
use crate::{Endl, IStream, OStream, stringstream::StringStream};
#[test]
#[expect(unused_must_use)]
fn test_istream() {
let mut data = VecDeque::new();
data.extend("123".as_bytes());
let mut num: i32 = 0;
let din = IStream::new(data);
din >> &mut num;
assert_eq!(num, 123)
}
#[test]
#[expect(unused_must_use)]
fn test_ostream() {
let mut data = Vec::new();
let out = OStream::new(&mut data);
out << "Hello, world!" << Endl;
assert_eq!(&data, b"Hello, world!\n")
}
#[test]
#[expect(unused_must_use)]
fn test_stringstream() {
let mut str_stream = StringStream::default();
&mut str_stream << 123;
let mut num = 0;
&mut str_stream >> &mut num;
assert_eq!(num, 123);
assert_eq!(str_stream.to_string(), "");
}
#[test]
#[expect(unused_must_use)]
fn test_stringstream2() {
let mut str_stream = StringStream::default();
&mut str_stream << 123;
let mut str_stream2 = StringStream::default();
&mut str_stream >> &mut str_stream2;
assert_eq!(str_stream.to_string(), "");
assert_eq!(str_stream2.to_string(), "123");
}
#[test]
#[expect(unused_must_use)]
fn test_stringstream_unicode() {
let mut str_stream = StringStream::default();
&mut str_stream << "äöüßÄÖÜẞ\n";
let mut str_stream2 = String::new();
&mut str_stream >> &mut str_stream2;
assert_eq!(str_stream.to_string(), "");
assert_eq!(str_stream2.as_str(), "äöüßÄÖÜẞ");
}