use crate::hsi::Hsi;
use crate::hsl::Hsl;
use crate::hsv::Hsv;
use crate::rgb::Rgb;
use angle::*;
pub struct TestColor {
pub hsv: Hsv<f32>,
pub chroma: f32,
pub rgb: Rgb<f32>,
pub hsl: Hsl<f32>,
pub hsi: Hsi<f32>,
pub circular_chroma: f32,
}
pub fn make_test_array() -> Vec<TestColor> {
vec![
TestColor {
hsv: Hsv::new(Deg(0.0), 0.000, 1.000),
chroma: 0.000,
rgb: Rgb::new(1.000, 1.000, 1.000),
hsl: Hsl::new(Deg(0.0), 0.000, 1.000),
hsi: Hsi::new(Deg(0.0), 0.000, 1.000),
circular_chroma: 0.000,
},
TestColor {
hsv: Hsv::new(Deg(0.0), 0.000, 0.500),
chroma: 0.000,
rgb: Rgb::new(0.500, 0.500, 0.500),
hsl: Hsl::new(Deg(0.0), 0.000, 0.500),
hsi: Hsi::new(Deg(0.0), 0.000, 0.500),
circular_chroma: 0.000,
},
TestColor {
hsv: Hsv::new(Deg(0.0), 0.000, 0.000),
chroma: 0.000,
rgb: Rgb::new(0.000, 0.000, 0.000),
hsl: Hsl::new(Deg(0.0), 0.000, 0.000),
hsi: Hsi::new(Deg(0.0), 0.000, 0.000),
circular_chroma: 0.000,
},
TestColor {
hsv: Hsv::new(Deg(0.0), 1.000, 1.000),
chroma: 1.000,
rgb: Rgb::new(1.000, 0.000, 0.000),
hsl: Hsl::new(Deg(0.0), 1.000, 0.500),
hsi: Hsi::new(Deg(0.0), 1.000, 0.333),
circular_chroma: 1.000,
},
TestColor {
hsv: Hsv::new(Deg(60.0), 1.000, 0.750),
chroma: 0.750,
rgb: Rgb::new(0.750, 0.750, 0.000),
hsl: Hsl::new(Deg(60.0), 1.000, 0.375),
hsi: Hsi::new(Deg(60.0), 1.000, 0.500),
circular_chroma: 0.750,
},
TestColor {
hsv: Hsv::new(Deg(120.0), 1.000, 0.500),
chroma: 0.500,
rgb: Rgb::new(0.000, 0.500, 0.000),
hsl: Hsl::new(Deg(120.0), 1.000, 0.250),
hsi: Hsi::new(Deg(120.0), 1.000, 0.167),
circular_chroma: 0.500,
},
TestColor {
hsv: Hsv::new(Deg(180.0), 0.500, 1.000),
chroma: 0.500,
rgb: Rgb::new(0.500, 1.000, 1.000),
hsl: Hsl::new(Deg(180.0), 1.000, 0.750),
hsi: Hsi::new(Deg(180.0), 0.400, 0.833),
circular_chroma: 0.500,
},
TestColor {
hsv: Hsv::new(Deg(240.0), 0.500, 1.000),
chroma: 0.500,
rgb: Rgb::new(0.500, 0.500, 1.000),
hsl: Hsl::new(Deg(240.0), 1.000, 0.750),
hsi: Hsi::new(Deg(240.0), 0.250, 0.667),
circular_chroma: 0.500,
},
TestColor {
hsv: Hsv::new(Deg(300.0), 0.667, 0.750),
chroma: 0.500,
rgb: Rgb::new(0.750, 0.250, 0.750),
hsl: Hsl::new(Deg(300.0), 0.500, 0.500),
hsi: Hsi::new(Deg(300.0), 0.571, 0.583),
circular_chroma: 0.500,
},
TestColor {
hsv: Hsv::new(Deg(61.8), 0.779, 0.643),
chroma: 0.501,
rgb: Rgb::new(0.628, 0.643, 0.142),
hsl: Hsl::new(Deg(61.8), 0.638, 0.393),
hsi: Hsi::new(Deg(61.5), 0.699, 0.471),
circular_chroma: 0.494,
},
TestColor {
hsv: Hsv::new(Deg(251.1), 0.887, 0.918),
chroma: 0.814,
rgb: Rgb::new(0.255, 0.104, 0.918),
hsl: Hsl::new(Deg(251.1), 0.832, 0.511),
hsi: Hsi::new(Deg(250.0), 0.756, 0.426),
circular_chroma: 0.750,
},
TestColor {
hsv: Hsv::new(Deg(134.9), 0.828, 0.675),
chroma: 0.559,
rgb: Rgb::new(0.116, 0.675, 0.255),
hsl: Hsl::new(Deg(134.9), 0.707, 0.396),
hsi: Hsi::new(Deg(133.8), 0.667, 0.349),
circular_chroma: 0.504,
},
TestColor {
hsv: Hsv::new(Deg(49.5), 0.944, 0.941),
chroma: 0.888,
rgb: Rgb::new(0.941, 0.785, 0.053),
hsl: Hsl::new(Deg(49.5), 0.893, 0.497),
hsi: Hsi::new(Deg(50.5), 0.911, 0.593),
circular_chroma: 0.821,
},
TestColor {
hsv: Hsv::new(Deg(283.7), 0.792, 0.897),
chroma: 0.710,
rgb: Rgb::new(0.704, 0.187, 0.897),
hsl: Hsl::new(Deg(283.7), 0.775, 0.542),
hsi: Hsi::new(Deg(284.8), 0.686, 0.596),
circular_chroma: 0.636,
},
TestColor {
hsv: Hsv::new(Deg(14.3), 0.661, 0.931),
chroma: 0.615,
rgb: Rgb::new(0.931, 0.463, 0.316),
hsl: Hsl::new(Deg(14.3), 0.817, 0.624),
hsi: Hsi::new(Deg(13.2), 0.446, 0.570),
circular_chroma: 0.556,
},
TestColor {
hsv: Hsv::new(Deg(56.9), 0.467, 0.998),
chroma: 0.466,
rgb: Rgb::new(0.998, 0.974, 0.532),
hsl: Hsl::new(Deg(56.9), 0.991, 0.765),
hsi: Hsi::new(Deg(57.4), 0.363, 0.835),
circular_chroma: 0.454,
},
TestColor {
hsv: Hsv::new(Deg(162.4), 0.875, 0.795),
chroma: 0.696,
rgb: Rgb::new(0.099, 0.795, 0.591),
hsl: Hsl::new(Deg(162.4), 0.779, 0.447),
hsi: Hsi::new(Deg(163.4), 0.800, 0.495),
circular_chroma: 0.620,
},
TestColor {
hsv: Hsv::new(Deg(248.3), 0.750, 0.597),
chroma: 0.448,
rgb: Rgb::new(0.211, 0.149, 0.597),
hsl: Hsl::new(Deg(248.3), 0.601, 0.373),
hsi: Hsi::new(Deg(247.3), 0.533, 0.319),
circular_chroma: 0.420,
},
TestColor {
hsv: Hsv::new(Deg(240.5), 0.316, 0.721),
chroma: 0.228,
rgb: Rgb::new(0.495, 0.493, 0.721),
hsl: Hsl::new(Deg(240.5), 0.290, 0.607),
hsi: Hsi::new(Deg(240.4), 0.135, 0.570),
circular_chroma: 0.227,
},
]
}