mirror of
https://github.com/mat-1/azalea.git
synced 2025-08-02 14:26:04 +00:00
140 lines
4 KiB
Rust
Executable file
140 lines
4 KiB
Rust
Executable file
use azalea_nbt::{Nbt, NbtCompound, NbtList};
|
|
use std::io::Cursor;
|
|
|
|
#[test]
|
|
fn test_decode_hello_world() {
|
|
// read hello_world.nbt
|
|
let buf = include_bytes!("hello_world.nbt").to_vec();
|
|
let tag = Nbt::read(&mut Cursor::new(&buf[..])).unwrap();
|
|
assert_eq!(
|
|
tag,
|
|
Nbt::Compound(NbtCompound::from_iter(vec![(
|
|
"hello world".into(),
|
|
Nbt::Compound(NbtCompound::from_iter(vec![(
|
|
"name".into(),
|
|
Nbt::String("Bananrama".into()),
|
|
)]))
|
|
)]))
|
|
);
|
|
}
|
|
|
|
#[test]
|
|
fn test_roundtrip_hello_world() {
|
|
let original = include_bytes!("hello_world.nbt").to_vec();
|
|
|
|
let mut original_stream = Cursor::new(&original[..]);
|
|
let tag = Nbt::read(&mut original_stream).unwrap();
|
|
|
|
// write hello_world.nbt
|
|
let mut result = Vec::new();
|
|
tag.write(&mut result);
|
|
|
|
assert_eq!(result, original);
|
|
}
|
|
|
|
#[test]
|
|
fn test_bigtest() {
|
|
// read bigtest.nbt
|
|
let original = include_bytes!("bigtest.nbt").to_vec();
|
|
|
|
let mut original_stream = Cursor::new(original);
|
|
let original_tag = Nbt::read_gzip(&mut original_stream).unwrap();
|
|
|
|
let mut result = Vec::new();
|
|
original_tag.write(&mut result);
|
|
|
|
let decoded_tag = Nbt::read(&mut Cursor::new(&result)).unwrap();
|
|
|
|
assert_eq!(decoded_tag, original_tag);
|
|
}
|
|
|
|
#[test]
|
|
fn test_stringtest() {
|
|
let correct_tag = Nbt::Compound(NbtCompound::from_iter(vec![(
|
|
"😃".into(),
|
|
Nbt::List(NbtList::String(vec![
|
|
"asdfkghasfjgihsdfogjsndfg".into(),
|
|
"jnabsfdgihsabguiqwrntgretqwejirhbiqw".into(),
|
|
"asd".into(),
|
|
"wqierjgt7wqy8u4rtbwreithwretiwerutbwenryq8uwervqwer9iuqwbrgyuqrbtwierotugqewrtqwropethert".into(),
|
|
"asdf".into(),
|
|
"alsdkjiqwoe".into(),
|
|
"lmqi9hyqd".into(),
|
|
"qwertyuiop".into(),
|
|
"asdfghjkl".into(),
|
|
"zxcvbnm".into(),
|
|
" ".into(),
|
|
"words words words words words words".into(),
|
|
"aaaaaaaaaaaaaaaaaaaa".into(),
|
|
"♥".into(),
|
|
"a\nb\n\n\nc\r\rd".into(),
|
|
"😁".into(),
|
|
]))
|
|
)]));
|
|
let original = include_bytes!("stringtest.nbt").to_vec();
|
|
|
|
let mut original_stream = Cursor::new(original);
|
|
let original_tag = Nbt::read_gzip(&mut original_stream).unwrap();
|
|
|
|
assert_eq!(original_tag, correct_tag);
|
|
}
|
|
|
|
#[test]
|
|
fn test_complex_player() {
|
|
let original = include_bytes!("complex_player.dat").to_vec();
|
|
|
|
let mut original_stream = Cursor::new(original);
|
|
let original_tag = Nbt::read_gzip(&mut original_stream).unwrap();
|
|
|
|
let mut result = Vec::new();
|
|
original_tag.write(&mut result);
|
|
|
|
let decoded_tag = Nbt::read(&mut Cursor::new(&result)).unwrap();
|
|
|
|
assert_eq!(decoded_tag, original_tag);
|
|
}
|
|
|
|
#[test]
|
|
fn test_simple_player() {
|
|
let original = include_bytes!("simple_player.dat").to_vec();
|
|
|
|
let mut original_stream = Cursor::new(original);
|
|
let original_tag = Nbt::read_gzip(&mut original_stream).unwrap();
|
|
|
|
let mut result = Vec::new();
|
|
original_tag.write(&mut result);
|
|
|
|
let decoded_tag = Nbt::read(&mut Cursor::new(&result)).unwrap();
|
|
|
|
assert_eq!(decoded_tag, original_tag);
|
|
}
|
|
|
|
// #[test]
|
|
// fn test_inttest() {
|
|
// let original = include_bytes!("inttest.nbt").to_vec();
|
|
|
|
// let mut original_stream = Cursor::new(original);
|
|
// let original_tag = Nbt::read_gzip(&mut original_stream).unwrap();
|
|
|
|
// let mut result = Vec::new();
|
|
// original_tag.write(&mut result);
|
|
|
|
// let decoded_tag = Nbt::read(&mut Cursor::new(&result)).unwrap();
|
|
|
|
// assert_eq!(decoded_tag, original_tag);
|
|
// }
|
|
|
|
#[test]
|
|
fn test_inttest1023() {
|
|
let original = include_bytes!("inttest1023.nbt").to_vec();
|
|
|
|
let mut original_stream = Cursor::new(original.as_slice());
|
|
let original_tag = Nbt::read(&mut original_stream).unwrap();
|
|
|
|
let mut result = Vec::new();
|
|
original_tag.write(&mut result);
|
|
|
|
let decoded_tag = Nbt::read(&mut Cursor::new(&result)).unwrap();
|
|
|
|
assert_eq!(decoded_tag, original_tag);
|
|
}
|