From 7a6282984cbb7f5544e73612ab79a4d0e5d175c9 Mon Sep 17 00:00:00 2001 From: Ethan Roseman Date: Tue, 5 Dec 2023 03:01:51 +0900 Subject: [PATCH] Yay0 tests --- src/yay0.rs | 28 +++++++++++++++++++++++++++- test_data/.gitignore | 2 ++ test_data/Yay0/1.Yay0 | Bin 0 -> 112 bytes test_data/Yay0/1.bin | 1 + 4 files changed, 30 insertions(+), 1 deletion(-) create mode 100644 test_data/.gitignore create mode 100644 test_data/Yay0/1.Yay0 create mode 100755 test_data/Yay0/1.bin diff --git a/src/yay0.rs b/src/yay0.rs index 9c7aa78..eae125b 100644 --- a/src/yay0.rs +++ b/src/yay0.rs @@ -12,7 +12,7 @@ pub fn decompress_yay0(bytes: &[u8]) -> Box<[u8]> { // Preallocate result and index into it let mut idx: usize = 0; - let mut ret = vec![0u8; decompressed_size as usize]; + let mut ret: Vec = vec![0u8; decompressed_size as usize]; while idx < decompressed_size as usize { // If we're out of bits, get the next mask @@ -62,3 +62,29 @@ pub fn decompress_yay0(bytes: &[u8]) -> Box<[u8]> { pub fn compress_yay0(_bytes: &[u8]) -> Box<[u8]> { panic!("Not implemented") } + +#[cfg(test)] +mod tests { + #[test] + fn test_matching() { + let compressed_file = include_bytes!("../test_data/Yay0/1.Yay0"); + let decompressed_file = include_bytes!("../test_data/Yay0/1.bin"); + + let decompressed: Box<[u8]> = super::decompress_yay0(compressed_file); + assert_eq!(decompressed_file, decompressed.as_ref()); + + // let recompressed = super::compress_yay0(decompressed_file.as_slice()); + // assert_eq!(compressed_file, recompressed); + } + + #[test] + #[ignore = "not yet implemented"] + fn test_cycle() { + let decompressed_file = include_bytes!("../test_data/Yay0/1.bin"); + + assert_eq!( + decompressed_file, + super::decompress_yay0(&super::compress_yay0(decompressed_file.as_ref())).as_ref() + ); + } +} diff --git a/test_data/.gitignore b/test_data/.gitignore new file mode 100644 index 0000000..ed45cff --- /dev/null +++ b/test_data/.gitignore @@ -0,0 +1,2 @@ +!*.Yay0 +!*.bin diff --git a/test_data/Yay0/1.Yay0 b/test_data/Yay0/1.Yay0 new file mode 100644 index 0000000000000000000000000000000000000000..2ca2db6384e82e31926b6722289693f23f73fa9f GIT binary patch literal 112 zcmaz{tTbR?V5k6M86Z~s4+MWJfy5661_cfQJ_ADmZ3bq?U}sOyXVcoBuATn4amABe zlb-d@e%7%3anqz{J&lhW=RaOi O^0>LfHnBJ*jSm1pjyYoh literal 0 HcmV?d00001 diff --git a/test_data/Yay0/1.bin b/test_data/Yay0/1.bin new file mode 100755 index 0000000..b9559a5 --- /dev/null +++ b/test_data/Yay0/1.bin @@ -0,0 +1 @@ +ASCII文字と互換性を持たせるために、ASCIIと同じ部分は1バイト=asdfasdfasdfasdfasdfasdfasdfasdfasdf \ No newline at end of file