#![allow(clippy::unwrap_used, clippy::expect_used)]
use sqlite_core::Database;
const DB: &[u8] = include_bytes!("../../tests/data/deleted_places.db");
#[test]
fn freelist_pages_match_pragma_freelist_count() {
let db = Database::open(DB.to_vec()).expect("open deleted_places.db");
let free = db.freelist_pages().expect("walk freelist");
assert_eq!(free.len(), 5, "freelist page count must match PRAGMA");
for &p in &free {
assert!((1..=13).contains(&p), "free page {p} out of file range");
}
}
#[test]
fn page_count_matches_header_and_file() {
let db = Database::open(DB.to_vec()).expect("open");
assert_eq!(db.page_count(), 13);
}
#[test]
fn empty_freelist_on_clean_db() {
let clean: &[u8] = include_bytes!("../../tests/data/places.db");
let db = Database::open(clean.to_vec()).expect("open clean");
assert!(
db.freelist_pages().expect("walk").is_empty(),
"a never-deleted DB must have an empty freelist"
);
}