#![allow(unused_imports)]
use proptest::prelude::*;
use revue::render::{Buffer, Cell};
use revue::style::Color;
proptest! {
#![proptest_config(ProptestConfig::with_cases(100))]
#[test]
fn test_buffer_dimensions(w in 0u16..200u16, h in 0u16..200u16) {
let buffer = Buffer::new(w, h);
prop_assert_eq!(buffer.width(), w);
prop_assert_eq!(buffer.height(), h);
}
#[test]
fn test_buffer_area(w in 0u16..200u16, h in 0u16..200u16) {
let buffer = Buffer::new(w, h);
let area = buffer.width() as u32 * buffer.height() as u32;
prop_assert_eq!(area, w as u32 * h as u32);
}
#[test]
fn test_buffer_cell_in_bounds(w in 1u16..200u16, h in 1u16..200u16) {
let buffer = Buffer::new(w, h);
let _cell = buffer.get(0, 0);
let _cell = buffer.get(w.saturating_sub(1), h.saturating_sub(1));
}
#[test]
fn test_buffer_clear_reset(w in 1u16..100u16, h in 1u16..100u16) {
let mut buffer = Buffer::new(w, h);
let cell = Cell::new('X').fg(Color::WHITE).bg(Color::BLACK);
buffer.set(0, 0, cell);
buffer.clear();
let cleared = buffer.get(0, 0);
prop_assert!(cleared.is_some());
}
}