aboutsummaryrefslogtreecommitdiff
path: root/lib/tests/tests.rs
diff options
context:
space:
mode:
Diffstat (limited to 'lib/tests/tests.rs')
-rw-r--r--lib/tests/tests.rs59
1 files changed, 59 insertions, 0 deletions
diff --git a/lib/tests/tests.rs b/lib/tests/tests.rs
new file mode 100644
index 0000000..58b0aab
--- /dev/null
+++ b/lib/tests/tests.rs
@@ -0,0 +1,59 @@
+use zlib_header::ZlibHeader;
+
+#[test]
+fn new() {
+ let header = ZlibHeader::new(9, 6, true, 0);
+ match header {
+ Ok(ok) => assert_eq!(ok.to_string(), "693B"),
+ Err(err) => {
+ panic!("{:?}", err);
+ }
+ }
+}
+
+#[test]
+fn default() {
+ let header = ZlibHeader::default();
+ assert_eq!(header.to_string(), "789C");
+ assert_eq!(header.is_valid_strict(), true);
+}
+
+#[test]
+fn eq() {
+ let header = ZlibHeader::default();
+ let bytes = [0x78, 0x9C];
+ assert_eq!(header, bytes);
+ assert_eq!(bytes, header);
+ assert_eq!(header, &bytes[..]);
+ assert_eq!(&bytes[..], header);
+}
+
+#[test]
+fn is_valid() {
+ let mut header = ZlibHeader::new(9, 6, true, 0).unwrap();
+ assert_eq!(header.is_valid(), true);
+ assert_eq!(header.is_valid_strict(), false);
+ header.set_cm(7).unwrap();
+ assert_eq!(header.is_valid(), false);
+}
+
+#[test]
+fn out_of_range() {
+ let mut header = ZlibHeader::default();
+ assert_eq!(header.set_cm(15).is_err(), false);
+ assert_eq!(header.set_cm(16).is_err(), true);
+ assert_eq!(header.set_cinfo(15).is_err(), false);
+ assert_eq!(header.set_cinfo(16).is_err(), true);
+ assert_eq!(header.set_flevel(3).is_err(), false);
+ assert_eq!(header.set_flevel(4).is_err(), true);
+}
+
+#[test]
+fn display_debug() {
+ let header = ZlibHeader::new(4, 2, true, 1).unwrap();
+ let display_debug = format!("{} {:?}", header, header);
+ assert_eq!(
+ display_debug,
+ "2473 ZlibHeader { UNDEFINED | 1024 Bytes | fast | Dictionary: true | valid }"
+ );
+}