cowor 0.1.0

A color conversion and manipulation library
Documentation
use super::*;
use crate::Cielab;

#[test]
fn new() {
    let a = Cielch(10.0, 20.0, 30f32.to_radians());
    let b = Cielch::new(10.0, 20.0, 30f32.to_radians()).unwrap();
    let c = Cielch::new(-10.0, 20.0, 30f32.to_radians());
    let d = Cielch::new(110.0, 20.0, 30f32.to_radians());
    assert_eq!(a, b);
    assert!(c.is_none());
    assert!(d.is_none());
}

#[test]
fn lightness() {
    let a = Cielch(0.0, 20.0, 30f32.to_radians());
    assert_eq!(a.lightness(), 0.0);
    let b = Cielch(10.0, 20.0, 30f32.to_radians());
    assert_eq!(b.lightness(), 10.0);
}

#[test]
fn chroma() {
    let a = Cielch(10.0, 0.0, 30f32.to_radians());
    assert_eq!(a.chroma(), 0.0);
    let b = Cielch(10.0, 20.0, 30f32.to_radians());
    assert_eq!(b.chroma(), 20.0);
}

#[test]
fn hue() {
    let a = Cielch(10.0, 20.0, 0f32.to_radians());
    assert_eq!(a.hue(), 0f32.to_radians());
    let b = Cielch(10.0, 20.0, 30f32.to_radians());
    assert_eq!(b.hue(), 30f32.to_radians());
}

#[test]
fn from_cielab_precision() {
    let cielch_black = Cielch::new(0f32, 0f32, 0f32).unwrap();
    let cielab_black = Cielab::new(0f32, 0f32, 0f32).unwrap();
    assert_eq!(cielch_black, cielab_black.into());
}