rustgym 0.2.0

rustgym solutions
Documentation
struct Solution;

impl Solution {
    fn angle_clock(hour: i32, minutes: i32) -> f64 {
        let h = ((hour % 12) as f64 + (minutes as f64 / 60.0)) * 30.0;
        let m = minutes as f64 * 6.0;
        let a = (h - m).abs();
        if a > 180.0 {
            360.0 - a
        } else {
            a
        }
    }
}

#[test]
fn test() {
    use assert_approx_eq::assert_approx_eq;
    let hour = 12;
    let minutes = 30;
    let res = 165.0;
    assert_approx_eq!(Solution::angle_clock(hour, minutes), res);
    let hour = 3;
    let minutes = 30;
    let res = 75.0;
    assert_approx_eq!(Solution::angle_clock(hour, minutes), res);
    let hour = 3;
    let minutes = 15;
    let res = 7.5;
    assert_approx_eq!(Solution::angle_clock(hour, minutes), res);
    let hour = 4;
    let minutes = 50;
    let res = 155.0;
    assert_approx_eq!(Solution::angle_clock(hour, minutes), res);
    let hour = 12;
    let minutes = 0;
    let res = 0.0;
    assert_approx_eq!(Solution::angle_clock(hour, minutes), res);
    let hour = 1;
    let minutes = 57;
    let res = 76.5;
    assert_approx_eq!(Solution::angle_clock(hour, minutes), res);
}