use egui_kittest::wgpu::{create_render_state, default_wgpu_setup};
use rsplot::SceneWidget;
use rsplot::egui::Color32;
#[test]
fn default_style_matches_silx() {
let rs = create_render_state(default_wgpu_setup());
let w = SceneWidget::new(&rs, 41);
assert_eq!(w.background(), Color32::from_gray(51));
assert_eq!(w.foreground_color(), Color32::WHITE);
assert_eq!(w.text_color(), Color32::WHITE);
}
#[test]
fn foreground_and_text_color_setters_round_trip() {
let rs = create_render_state(default_wgpu_setup());
let mut w = SceneWidget::new(&rs, 42);
w.set_foreground_color(&rs, Color32::from_rgb(10, 20, 30));
assert_eq!(w.foreground_color(), Color32::from_rgb(10, 20, 30));
w.set_text_color(&rs, Color32::from_rgb(200, 100, 0));
assert_eq!(w.text_color(), Color32::from_rgb(200, 100, 0));
w.set_background(Color32::BLACK);
assert_eq!(w.background(), Color32::BLACK);
}
#[test]
fn axes_labels_default_empty_and_update_selectively() {
let rs = create_render_state(default_wgpu_setup());
let mut w = SceneWidget::new(&rs, 43);
assert_eq!(w.axes_labels(), ("", "", ""));
w.set_axes_labels(Some("X (mm)"), None, Some("Z"));
assert_eq!(w.axes_labels(), ("X (mm)", "", "Z"));
w.set_axes_labels(None, Some("Y"), None);
assert_eq!(w.axes_labels(), ("X (mm)", "Y", "Z"));
}