mod grid;
mod layout;
mod simple;
pub use grid::{GridLayout, GridPosition};
pub use layout::{DashboardLayout, LayoutPreset};
pub use simple::{SimpleDashboard, MAX_DASHBOARD_CHARTS};
#[cfg(test)]
mod tests {
use super::*;
use embedded_graphics::prelude::*;
use embedded_graphics::primitives::Rectangle;
#[test]
fn test_simple_dashboard_creation() {
let dashboard = SimpleDashboard::new(2, 2, 10);
let viewport = Rectangle::new(Point::new(0, 0), Size::new(200, 200));
let pos = GridPosition::new(0, 0);
let chart_viewport = dashboard.get_viewport(pos, viewport);
assert_eq!(chart_viewport.top_left, Point::new(0, 0));
assert_eq!(chart_viewport.size.width, 95); }
#[test]
fn test_layout_presets() {
let preset = LayoutPreset::Quadrants;
let layout = preset.to_layout();
match layout {
DashboardLayout::Grid(grid) => {
assert_eq!(grid.rows, 2);
assert_eq!(grid.cols, 2);
}
_ => panic!("Expected grid layout"),
}
}
}