mirror of
https://github.com/mat-1/azalea.git
synced 2024-09-19 22:52:32 +00:00
58 lines
1.6 KiB
Rust
58 lines
1.6 KiB
Rust
use azalea_nbt::Tag;
|
|
use std::{
|
|
collections::HashMap,
|
|
io::{Cursor, Read},
|
|
};
|
|
|
|
#[test]
|
|
fn test_decode_hello_world() {
|
|
// read hello_world.nbt
|
|
let mut file = std::fs::File::open("tests/hello_world.nbt").unwrap();
|
|
let tag = Tag::read(&mut file).unwrap();
|
|
assert_eq!(
|
|
tag,
|
|
Tag::Compound(HashMap::from_iter(vec![(
|
|
"hello world".to_string(),
|
|
Tag::Compound(HashMap::from_iter(vec![(
|
|
"name".to_string(),
|
|
Tag::String("Bananrama".to_string()),
|
|
)]))
|
|
)]))
|
|
);
|
|
}
|
|
|
|
#[test]
|
|
fn test_roundtrip_hello_world() {
|
|
let mut file = std::fs::File::open("tests/hello_world.nbt").unwrap();
|
|
let mut original = Vec::new();
|
|
file.read_to_end(&mut original).unwrap();
|
|
|
|
let mut original_stream = Cursor::new(original.clone());
|
|
let tag = Tag::read(&mut original_stream).unwrap();
|
|
|
|
println!("ok read {:?}", tag);
|
|
|
|
// write hello_world.nbt
|
|
let mut result = Cursor::new(Vec::new());
|
|
tag.write(&mut result).unwrap();
|
|
|
|
assert_eq!(result.into_inner(), original);
|
|
}
|
|
|
|
#[test]
|
|
fn test_bigtest() {
|
|
// read bigtest.nbt
|
|
let mut file = std::fs::File::open("tests/bigtest.nbt").unwrap();
|
|
let mut original = Vec::new();
|
|
file.read_to_end(&mut original).unwrap();
|
|
|
|
let mut original_stream = Cursor::new(original.clone());
|
|
let original_tag = Tag::read_gzip(&mut original_stream).unwrap();
|
|
|
|
let mut result = Vec::new();
|
|
original_tag.write(&mut result).unwrap();
|
|
|
|
let decoded_tag = Tag::read(&mut Cursor::new(result)).unwrap();
|
|
|
|
assert_eq!(decoded_tag, original_tag);
|
|
}
|