From 75f4a84e977a1f409e6580056dc31343e15bbf3e Mon Sep 17 00:00:00 2001 From: Igor Tolmachev Date: Sun, 14 Jul 2024 16:01:10 +0900 Subject: Add support of cp437 encoding --- src/zip/tests.rs | 34 ++++++++++++++++++++++++++++++++++ 1 file changed, 34 insertions(+) (limited to 'src/zip/tests.rs') diff --git a/src/zip/tests.rs b/src/zip/tests.rs index 92a9c3f..e24cdfe 100644 --- a/src/zip/tests.rs +++ b/src/zip/tests.rs @@ -1,3 +1,4 @@ +use crate::zip::cp437::{from_char, is_cp437, to_char, FromCp437}; use crate::zip::{bit::DeflateMode, BitFlag}; #[test] @@ -40,3 +41,36 @@ fn test_bit_flag() { bit_flag.set_deflate_mode(DeflateMode::Normal); assert_eq!(bit_flag.deflate_mode(), DeflateMode::Normal); } + +#[test] +fn test_cp437() { + for b in 0..=255 { + assert_eq!(from_char(to_char(b)).unwrap(), b); + assert!(is_cp437(to_char(b)), "byte: {}", b); + } + + assert_eq!(from_char('Σ'), Some(228)); + assert_eq!(from_char('§'), None); + + assert!(is_cp437('Σ')); + assert!(!is_cp437('§')); + + assert_eq!( + Vec::from_cp437("hello world").unwrap(), + [104, 101, 108, 108, 111, 32, 119, 111, 114, 108, 100] + ); + assert_eq!( + String::from_cp437([104, 101, 108, 108, 111, 32, 119, 111, 114, 108, 100]), + "hello world" + ); + + assert_eq!( + Vec::from_cp437("ABCDEFGHIJKLMNOPQRSTUVWXYZ").unwrap(), + (65..=90).collect::>() + ); + + assert_eq!( + String::from_cp437((97..=122).collect::>()), + "abcdefghijklmnopqrstuvwxyz" + ); +} -- cgit v1.2.3