Skip to content

Commit 743973d

Browse files
committed
extended tests for read_num() with reference values
1 parent b748522 commit 743973d

File tree

1 file changed

+25
-16
lines changed

1 file changed

+25
-16
lines changed

src/lib.rs

Lines changed: 25 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -768,22 +768,31 @@ mod tests {
768768

769769
#[test]
770770
fn test_read_num() {
771-
// Test values < 255
772-
let mut db = MockDatabase::new(vec![42]);
773-
assert_eq!(db.read_num().unwrap(), 42);
774-
775-
// Test value 255 (special case: 0xFF, 0x00)
776-
let mut db = MockDatabase::new(vec![0xFF, 0x00]);
777-
assert_eq!(db.read_num().unwrap(), 255);
778-
779-
// Test multi-byte value (e.g., 256: 0xFF, 0x01, 0x00)
780-
let mut db = MockDatabase::new(vec![0xFF, 0x01, 0x00]);
781-
assert_eq!(db.read_num().unwrap(), 256);
782-
783-
// Test larger multi-byte value (65536 needs two 0xFF)
784-
// 0xFF, 0xFF, 0x01, 0x00, 0x00
785-
let mut db = MockDatabase::new(vec![0xFF, 0xFF, 0x01, 0x00, 0x00]);
786-
assert_eq!(db.read_num().unwrap(), 65536);
771+
let cases = vec![
772+
(0x00, vec![0x00]),
773+
(0xFE, vec![0xFE]),
774+
(0xFF, vec![0xFF, 0x00]),
775+
(0x0100, vec![0xFF, 0x01, 0x00]),
776+
(0x01FF, vec![0xFF, 0x01, 0xFF]),
777+
(0xFEFF, vec![0xFF, 0xFE, 0xFF]),
778+
(0xFF00, vec![0xFF, 0xFF, 0x00, 0x00]),
779+
(0xFF01, vec![0xFF, 0xFF, 0x00, 0x01]),
780+
(0x010000, vec![0xFF, 0xFF, 0x01, 0x00, 0x00]),
781+
(0xABCDEF, vec![0xFF, 0xFF, 0xAB, 0xCD, 0xEF]),
782+
(0xFFABCD, vec![0xFF, 0xFF, 0xFF, 0x00, 0xAB, 0xCD]),
783+
(0x01ABCDEF, vec![0xFF, 0xFF, 0xFF, 0x01, 0xAB, 0xCD, 0xEF]),
784+
];
785+
786+
for (expected, bytes) in cases {
787+
let mut db = MockDatabase::new(bytes.clone());
788+
789+
let result = db.read_num().expect(&format!("Failed to read {:?}", bytes));
790+
assert_eq!(
791+
result, expected,
792+
"Case {:?} failed: expected 0x{:X}, got 0x{:X}",
793+
bytes, expected, result
794+
);
795+
}
787796
}
788797

789798
#[test]

0 commit comments

Comments
 (0)