mirror of
https://github.com/mat-1/azalea.git
synced 2025-08-02 06:16:04 +00:00
add more tests and benchmarks for nbt
This commit is contained in:
parent
5090ebe25f
commit
b91b579bef
6 changed files with 71 additions and 4 deletions
|
@ -39,9 +39,11 @@ fn bench_serialize(filename: &str, c: &mut Criterion) {
|
||||||
|
|
||||||
fn bench(c: &mut Criterion) {
|
fn bench(c: &mut Criterion) {
|
||||||
bench_serialize("tests/bigtest.nbt", c);
|
bench_serialize("tests/bigtest.nbt", c);
|
||||||
// bench_serialize("tests/simple_player.dat", c);
|
bench_serialize("tests/simple_player.dat", c);
|
||||||
// bench_serialize("tests/complex_player.dat", c);
|
bench_serialize("tests/complex_player.dat", c);
|
||||||
bench_serialize("tests/level.dat", c);
|
bench_serialize("tests/level.dat", c);
|
||||||
|
bench_serialize("tests/stringtest.nbt", c);
|
||||||
|
bench_serialize("tests/inttest.nbt", c);
|
||||||
}
|
}
|
||||||
|
|
||||||
criterion_group!(benches, bench);
|
criterion_group!(benches, bench);
|
||||||
|
|
BIN
azalea-nbt/tests/complex_player.dat
Normal file
BIN
azalea-nbt/tests/complex_player.dat
Normal file
Binary file not shown.
BIN
azalea-nbt/tests/inttest.nbt
Normal file
BIN
azalea-nbt/tests/inttest.nbt
Normal file
Binary file not shown.
BIN
azalea-nbt/tests/simple_player.dat
Normal file
BIN
azalea-nbt/tests/simple_player.dat
Normal file
Binary file not shown.
BIN
azalea-nbt/tests/stringtest.nbt
Normal file
BIN
azalea-nbt/tests/stringtest.nbt
Normal file
Binary file not shown.
|
@ -30,8 +30,6 @@ fn test_roundtrip_hello_world() {
|
||||||
let mut original_stream = Cursor::new(original.clone());
|
let mut original_stream = Cursor::new(original.clone());
|
||||||
let tag = Tag::read(&mut original_stream).unwrap();
|
let tag = Tag::read(&mut original_stream).unwrap();
|
||||||
|
|
||||||
println!("ok read {:?}", tag);
|
|
||||||
|
|
||||||
// write hello_world.nbt
|
// write hello_world.nbt
|
||||||
let mut result = Cursor::new(Vec::new());
|
let mut result = Cursor::new(Vec::new());
|
||||||
tag.write(&mut result).unwrap();
|
tag.write(&mut result).unwrap();
|
||||||
|
@ -56,3 +54,70 @@ fn test_bigtest() {
|
||||||
|
|
||||||
assert_eq!(decoded_tag, original_tag);
|
assert_eq!(decoded_tag, original_tag);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#[test]
|
||||||
|
fn test_stringtest() {
|
||||||
|
let correct_tag = Tag::Compound(HashMap::from_iter(vec![(
|
||||||
|
"😃".to_string(),
|
||||||
|
Tag::List(vec![
|
||||||
|
Tag::String("asdfkghasfjgihsdfogjsndfg".to_string()),
|
||||||
|
Tag::String("jnabsfdgihsabguiqwrntgretqwejirhbiqw".to_string()),
|
||||||
|
Tag::String("asd".to_string()),
|
||||||
|
Tag::String("wqierjgt7wqy8u4rtbwreithwretiwerutbwenryq8uwervqwer9iuqwbrgyuqrbtwierotugqewrtqwropethert".to_string()),
|
||||||
|
Tag::String("asdf".to_string()),
|
||||||
|
Tag::String("alsdkjiqwoe".to_string()),
|
||||||
|
Tag::String("lmqi9hyqd".to_string()),
|
||||||
|
Tag::String("qwertyuiop".to_string()),
|
||||||
|
Tag::String("asdfghjkl".to_string()),
|
||||||
|
Tag::String("zxcvbnm".to_string()),
|
||||||
|
Tag::String(" ".to_string()),
|
||||||
|
Tag::String("words words words words words words".to_string()),
|
||||||
|
Tag::String("aaaaaaaaaaaaaaaaaaaa".to_string()),
|
||||||
|
Tag::String("♥".to_string()),
|
||||||
|
Tag::String("a\nb\n\n\nc\r\rd".to_string()),
|
||||||
|
Tag::String("😁".to_string()),
|
||||||
|
])
|
||||||
|
)]));
|
||||||
|
let mut file = std::fs::File::open("tests/stringtest.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();
|
||||||
|
|
||||||
|
assert_eq!(original_tag, correct_tag);
|
||||||
|
}
|
||||||
|
|
||||||
|
#[test]
|
||||||
|
fn test_complex_player() {
|
||||||
|
let mut file = std::fs::File::open("tests/complex_player.dat").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);
|
||||||
|
}
|
||||||
|
|
||||||
|
#[test]
|
||||||
|
fn test_simple_player() {
|
||||||
|
let mut file = std::fs::File::open("tests/simple_player.dat").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);
|
||||||
|
}
|
||||||
|
|
Loading…
Add table
Reference in a new issue