use crate::zip::{bit::DeflateMode, BitFlag}; #[test] fn test_bit_flag() { macro_rules! bit_flag { ($($get:ident $set:ident)+) => { $( let mut bit_flag = BitFlag::new(0); assert_eq!(bit_flag.$get(), false); bit_flag.$set(true); assert_eq!(bit_flag.$get(), true); bit_flag.$set(false); assert_eq!(bit_flag.$get(), false); )+ }; } bit_flag!( is_encrypted set_encrypted is_imploding_8k set_imploding_8k is_imploding_3sf_trees set_imploding_3sf_trees is_lzma_has_eos_marker set_lzma_has_eos_marker is_has_data_descriptor set_has_data_descriptor is_patched_data set_patched_data is_strong_encryption set_strong_encryption is_utf8 set_utf8 is_cd_encryption set_cd_encryption ); let mut bit_flag = BitFlag::new(0); assert_eq!(bit_flag.deflate_mode(), DeflateMode::Normal); bit_flag.set_deflate_mode(DeflateMode::Maximum); assert_eq!(bit_flag.deflate_mode(), DeflateMode::Maximum); bit_flag.set_deflate_mode(DeflateMode::Fast); assert_eq!(bit_flag.deflate_mode(), DeflateMode::Fast); bit_flag.set_deflate_mode(DeflateMode::SuperFast); assert_eq!(bit_flag.deflate_mode(), DeflateMode::SuperFast); bit_flag.set_deflate_mode(DeflateMode::Normal); assert_eq!(bit_flag.deflate_mode(), DeflateMode::Normal); }