rustgym 0.2.0

rustgym solutions
Documentation
struct Solution;

impl Solution {
    fn can_arrange(arr: Vec<i32>, k: i32) -> bool {
        let mut count = vec![0; k as usize];
        for x in arr {
            let y = x % k;
            let y = if y < 0 { y + k } else { y };
            count[y as usize] += 1;
        }
        if count[0] % 2 != 0 {
            return false;
        }
        let k = k as usize;
        for i in 1..k {
            if count[i] != count[k - i] {
                return false;
            }
        }
        true
    }
}

#[test]
fn test() {
    let arr = vec![1, 2, 3, 4, 5, 10, 6, 7, 8, 9];
    let k = 5;
    let res = true;
    assert_eq!(Solution::can_arrange(arr, k), res);
    let arr = vec![1, 2, 3, 4, 5, 6];
    let k = 7;
    let res = true;
    assert_eq!(Solution::can_arrange(arr, k), res);
    let arr = vec![1, 2, 3, 4, 5, 6];
    let k = 10;
    let res = false;
    assert_eq!(Solution::can_arrange(arr, k), res);
    let arr = vec![-10, 10];
    let k = 2;
    let res = true;
    assert_eq!(Solution::can_arrange(arr, k), res);
    let arr = vec![-1, 1, -2, 2, -3, 3, -4, 4];
    let k = 3;
    let res = true;
    assert_eq!(Solution::can_arrange(arr, k), res);
}