Skip to content

Commit

Permalink
feat: Add unit tests for hardsubx/imgops.rs
Browse files Browse the repository at this point in the history
  • Loading branch information
IshanGrover2004 committed Jul 3, 2024
1 parent 5b6b0d0 commit abac473
Showing 1 changed file with 63 additions and 0 deletions.
63 changes: 63 additions & 0 deletions src/rust/src/hardsubx/imgops.rs
Original file line number Diff line number Diff line change
Expand Up @@ -22,3 +22,66 @@ pub extern "C" fn rgb_to_lab(R: f32, G: f32, B: f32, L: &mut f32, a: &mut f32, b
*a = lab_rep.a;
*b = lab_rep.b;
}

#[cfg(test)]
mod test {
use super::*;

#[test]
fn test_rgb_to_hsv() {
let (mut h, mut s, mut v) = (0.0, 0.0, 0.0);

// Red (255, 0, 0)
rgb_to_hsv(255_f32, 0.0, 0.0, &mut h, &mut s, &mut v);
assert_eq!(h, 0.0);
assert_eq!(s, 1.0);
assert_eq!(v, 1.0);

// Green (0, 255, 0)
rgb_to_hsv(0.0, 255_f32, 0.0, &mut h, &mut s, &mut v);
assert_eq!(h, 120.0);
assert_eq!(s, 1.0);
assert_eq!(v, 1.0);

// Blue (0, 0, 255)
rgb_to_hsv(0.0, 0.0, 255_f32, &mut h, &mut s, &mut v);
assert_eq!(h, 240.0);
assert_eq!(s, 1.0);
assert_eq!(v, 1.0);

// White (255, 255, 255)
rgb_to_hsv(255_f32, 255_f32, 255_f32, &mut h, &mut s, &mut v);
assert_eq!(h, 0.0);
assert_eq!(s, 0.0);
assert_eq!(v, 1.0);
}

#[test]
fn test_rgb_to_lab() {
let (mut l, mut a, mut b) = (0.0, 0.0, 0.0);

// Red (255, 0, 0)
rgb_to_lab(1.0, 0.0, 0.0, &mut l, &mut a, &mut b);
assert_eq!(l.floor(), 53.0);
assert_eq!(a.floor(), 80.0);
assert_eq!(b.floor(), 67.0);

// Green (0, 255, 0)
rgb_to_lab(0.0, 1.0, 0.0, &mut l, &mut a, &mut b);
assert_eq!(l.floor(), 87.0);
assert_eq!(a.floor(), -87.0);
assert_eq!(b.floor(), 83.0);

// Blue (0, 0, 255)
rgb_to_lab(0.0, 0.0, 1.0, &mut l, &mut a, &mut b);
assert_eq!(l.floor(), 32.0);
assert_eq!(a.floor(), 79.0);
assert_eq!(b.floor(), -108.0);

// White (255, 255, 255)
rgb_to_lab(1.0, 1.0, 1.0, &mut l, &mut a, &mut b);
assert_eq!(l.floor(), 100.0);
assert_eq!(a.floor(), 0.0);
assert_eq!(b.floor(), 0.0);
}
}

0 comments on commit abac473

Please sign in to comment.