From cd9c44dab0a1478ed73b5254b12e6b5c8ccf698d Mon Sep 17 00:00:00 2001 From: gered Date: Fri, 30 Dec 2022 11:49:47 -0500 Subject: [PATCH] add second large gif image load/save in unit test just to make me feel a bit better about the lzw encoding/decoding --- libretrogd/src/graphics/bitmap/gif.rs | 17 +++++++++++++++++ libretrogd/test-assets/test_image2.gif | Bin 0 -> 28869 bytes .../test-assets/test_large_bmp_pixels_raw2.bin | Bin 0 -> 64000 bytes 3 files changed, 17 insertions(+) create mode 100644 libretrogd/test-assets/test_image2.gif create mode 100644 libretrogd/test-assets/test_large_bmp_pixels_raw2.bin diff --git a/libretrogd/src/graphics/bitmap/gif.rs b/libretrogd/src/graphics/bitmap/gif.rs index f86e1f9..bcee05c 100644 --- a/libretrogd/src/graphics/bitmap/gif.rs +++ b/libretrogd/src/graphics/bitmap/gif.rs @@ -559,6 +559,7 @@ pub mod tests { pub static TEST_BMP_PIXELS_RAW: &[u8] = include_bytes!("../../../test-assets/test_bmp_pixels_raw.bin"); pub static TEST_LARGE_BMP_PIXELS_RAW: &[u8] = include_bytes!("../../../test-assets/test_large_bmp_pixels_raw.bin"); + pub static TEST_LARGE_BMP_PIXELS_RAW_2: &[u8] = include_bytes!("../../../test-assets/test_large_bmp_pixels_raw2.bin"); #[test] fn load_and_save() -> Result<(), GifError> { @@ -591,6 +592,8 @@ pub mod tests { let tmp_dir = TempDir::new()?; + // first image + let (bmp, palette) = Bitmap::load_gif_file(Path::new("./test-assets/test_image.gif"))?; assert_eq!(320, bmp.width()); assert_eq!(200, bmp.height()); @@ -603,6 +606,20 @@ pub mod tests { assert_eq!(200, reloaded_bmp.height()); assert_eq!(reloaded_bmp.pixels(), TEST_LARGE_BMP_PIXELS_RAW); + // second image + + let (bmp, palette) = Bitmap::load_gif_file(Path::new("./test-assets/test_image2.gif"))?; + assert_eq!(320, bmp.width()); + assert_eq!(200, bmp.height()); + assert_eq!(bmp.pixels(), TEST_LARGE_BMP_PIXELS_RAW_2); + + let save_path = tmp_dir.path().join("test_save_2.gif"); + bmp.to_gif_file(&save_path, &palette, GifSettings::Default)?; + let (reloaded_bmp, _) = Bitmap::load_gif_file(&save_path)?; + assert_eq!(320, reloaded_bmp.width()); + assert_eq!(200, reloaded_bmp.height()); + assert_eq!(reloaded_bmp.pixels(), TEST_LARGE_BMP_PIXELS_RAW_2); + Ok(()) } } diff --git a/libretrogd/test-assets/test_image2.gif b/libretrogd/test-assets/test_image2.gif new file mode 100644 index 0000000000000000000000000000000000000000..0ed7aa0a8f47173a09570b7cf7439f83e8a363dc GIT binary patch literal 28869 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 literal 0 HcmV?d00001 diff --git a/libretrogd/test-assets/test_large_bmp_pixels_raw2.bin b/libretrogd/test-assets/test_large_bmp_pixels_raw2.bin new file mode 100644 index 0000000000000000000000000000000000000000..0c22f461af47f822aa7a9e4fc9076c0ad358eda8 GIT binary patch literal 64000 zcmeF4%W@OR*0w#ungPbvStz16!NCrPqXUSx!#Z47?@PdzWTVr#!IG{37_&VvC?t7q zBJi#J&%0J;RmrA%@6kW{5>qObN>!Cly=&#lL!~x0{xAI>f&U}$|Bt|}(!t-Q_>t{( zds|P_LD+OqkJnm1xZOAz-#=2%Qg@t5!=}>Mmd)XyIULW%zMC)i5BC4Jpi(wc7q^>wX$4wOZ-nTFsCB(fzFKc65l& zU@+)U`QLy4p1&lWpI@9`@UGA2NqV*W-_px8bzb~Kiido~{(j63X?HigVUrH@-_903 zCvP3gj58SwMx%KA@ai9=%ULt5Pn8CP#_@4O>CV@}+sVaXbmvlZb)C+srIVAB^Y`cH z=Vxo_;~Ub)k7sA+=O-u6pYu5@5Yab7`UgJGm7aMzKMyO}7u&%W;V5<~|8T_nAH~bi zEATxtzh2(uGJ=^W^wID4CnR3}CQZ(rUO1uN*s7lkd;nBhANJKVF3}r1KMy8GPjgcH~-Xq%{A@JLmVWfBp8G zcmXXQhSz`b-WjG}{D-x0d^^+H0&sRc_ZL}3MsD&Fa#0eJ$Uf$>|NmZ*I&Q?{?}h0K7RNR37(&G{eHDC z#4pW_Sn3}iJI$!E-=6)Z)$?b+{idVX;@NNKzd69?&$8UsK>5-9pd8mvU?&td{!Z7i z$$D=K!|&wTgOl@j@6OI3_}7QO{$%<4Yt{olUa;cli3pV~%vts$nki0)^6Z(p!GAqF zGnh#6H)t9|XhsD_f{tCsvD;vb?9hIKaBtGhtcCPy_Z8?=K zk`F{OgYP5ud=4kSa^vPX@>TmpnKqn85r(2@v`mT55aijv&VN(U;+$EgYkn8_z9i

YeVQcAY00& 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