#[test]
fn dust_plume_opacity_at_ground() {
    let d = deimoss::rendering::dust::DustScattering::impact_plume();
    let opacity = d.opacity_at_height(0.0);
    assert!((opacity - d.reference_opacity).abs() < 1e-9);
}

#[test]
fn dust_opacity_decreases_with_height() {
    let d = deimoss::rendering::dust::DustScattering::impact_plume();
    assert!(d.opacity_at_height(1000.0) < d.opacity_at_height(0.0));
}

#[test]
fn dark_surface_material_low_albedo() {
    let m = deimoss::rendering::materials::PbrMaterial::dark_surface();
    assert!(m.albedo[0] < 0.1);
}

#[test]
fn smooth_regolith_material() {
    let m = deimoss::rendering::materials::PbrMaterial::smooth_regolith();
    assert!(m.roughness > 0.5);
}

#[test]
fn terrain_shader_exposure() {
    let s = deimoss::rendering::shaders::ShaderData::terrain();
    assert!(s.exposure > 0.0);
}

#[test]
fn eclipse_shader_darker() {
    let t = deimoss::rendering::shaders::ShaderData::terrain();
    let e = deimoss::rendering::shaders::ShaderData::eclipse();
    assert!(e.exposure < t.exposure);
}
