diff --git a/src/color/rgb.rs b/src/color/rgb.rs index 114f8e8..e06bb67 100644 --- a/src/color/rgb.rs +++ b/src/color/rgb.rs @@ -363,3 +363,44 @@ pub mod consts { static YELLOW: RGB = RGB { r: 0xFF, g: 0xFF, b: 0x00 }; static YELLOWGREEN: RGB = RGB { r: 0x9A, g: 0xCD, b: 0x32 }; } + +#[cfg(test)] +mod tests { + use color::*; + + #[test] + fn test_rgb_to_rgb() { + assert_eq!(RGB::new::(0xA0, 0xA0, 0xA0).to_rgb::(), RGB::new::(0xA0, 0xA0, 0xA0)); + assert_eq!(RGB::new::(0xA0, 0xA0, 0xA0).to_rgb::(), RGB::new::(0xA0A0, 0xA0A0, 0xA0A0)); + } + + #[test] + fn test_rgb_to_hsv() { + assert_eq!(RGB::new::(0xFF, 0xFF, 0xFF).to_hsv::(), HSV::new::(0.0, 0.0, 1.0)); + assert_eq!(RGB::new::(0x99, 0x00, 0x00).to_hsv::(), HSV::new::(0.0, 1.0, 0.6)); + assert_eq!(RGB::new::(0x00, 0x99, 0x00).to_hsv::(), HSV::new::(120.0, 1.0, 0.6)); + assert_eq!(RGB::new::(0x00, 0x00, 0x99).to_hsv::(), HSV::new::(240.0, 1.0, 0.6)); + } + + #[test] + fn test_tuple_to_rgba() { + assert_eq!((RGB::new::(1.0, 1.0, 1.0), 0xFFu8).to_rgba::(), RGBA::new::(1.0, 1.0, 1.0, 1.0)); + assert_eq!((RGB::new::(1.0, 1.0, 1.0), 0xFFu8).to_rgba::(), RGBA::new::(1.0, 1.0, 1.0, 1.0)); + assert_eq!((RGB::new::(1.0, 1.0, 1.0), 0xFFu8).to_rgba::(), RGBA::new::(1.0, 1.0, 1.0, 1.0)); + assert_eq!((RGB::new::(1.0, 1.0, 1.0), 0xFFu8).to_rgba::(), RGBA::new::(1.0, 1.0, 1.0, 1.0)); + } + + #[test] + fn test_rgba_to_rgba() { + assert_eq!(RGBA::new::(0xA0, 0xA0, 0xA0, 0xA0).to_rgba::(), RGBA::new::(0xA0, 0xA0, 0xA0, 0xA0)); + assert_eq!(RGBA::new::(0xA0, 0xA0, 0xA0, 0xA0).to_rgba::(), RGBA::new::(0xA0A0, 0xA0A0, 0xA0A0, 0xA0A0)); + } + + #[test] + fn test_rgba_to_hsva() { + assert_eq!(RGBA::new::(0xFF, 0xFF, 0xFF, 0xFF).to_hsva::(), HSVA::new::(0.0, 0.0, 1.0, 1.0)); + assert_eq!(RGBA::new::(0x99, 0x00, 0x00, 0xFF).to_hsva::(), HSVA::new::(0.0, 1.0, 0.6, 1.0)); + assert_eq!(RGBA::new::(0x00, 0x99, 0x00, 0xFF).to_hsva::(), HSVA::new::(120.0, 1.0, 0.6, 1.0)); + assert_eq!(RGBA::new::(0x00, 0x00, 0x99, 0xFF).to_hsva::(), HSVA::new::(240.0, 1.0, 0.6, 1.0)); + } +}