use colored::Colorize;
use colorimetry::illuminant::CCT;
use strum::IntoEnumIterator;
fn main() -> Result<(), Box<dyn std::error::Error>> {
for spc in colorimetry::illuminant::CieIlluminant::iter() {
let ill: &colorimetry::illuminant::Illuminant = spc.as_ref();
let cri: colorimetry::illuminant::CRI = ill.try_into()?;
let ra = cri.ra();
let r9 = cri[9];
let xyz = colorimetry::observer::Observer::Cie1931.xyz(&spc, None);
let cct: CCT = xyz.try_into()?;
let [t, d] = cct.into();
let tint = d * 1000.0;
let s = format!("{spc}");
println!("\n{}", s.bold().underline());
println!("CCT = {t:.0} Kelvin");
println!("Duv = {d:.5}");
println!("Tint = {tint:.1}");
println!("CRI = {ra:.0}");
println!("R9 = {r9:.0}");
println!();
}
Ok(())
}