Move History

Rooted by: Speed Limit
Fork Selected
  • Code
    fn total_fine(speed: i32, signals: &[i32]) -> u32 {
        signals.iter().map(|&signal| fine(speed, signal)).sum()
    }
    
    fn fine(speed: i32, signal: i32) -> u32 {
        match speed - signal {
            ..=9 => 0,
            10..=19 => 100,
            20..=29 => 250,
            30.. => 500
        }
    }
    Test Cases
    #[cfg(test)]
    mod tests {
        use super::*;
    
        #[test]
        fn test_add() {
            assert_eq!(total_fine(70, &[]), 0);
            assert_eq!(total_fine(60, &[80, 70, 60]), 0);
            assert_eq!(total_fine(0, &[15, 25, 35, 46]), 0);
            assert_eq!(total_fine(100, &[110, 100, 80]), 250);
            assert_eq!(total_fine(130, &[140, 130, 100]), 500);
        }
    }
    
  • Code
    • public class Kata {
    • public static int speedLimit(int speed, int[] signals) {
    • int penalty = 0;
    • for (int i = 0; i < signals.length; i++){
    • if (speed > signals[i]){
    • if (speed - signals[i] >= 30){
    • penalty += 500;
    • } else if (speed - signals[i] >= 20 && speed - signals[i] < 30){
    • penalty += 250;
    • } else if (speed - signals[i] >= 10 && speed - signals[i] < 20){
    • penalty += 100;
    • }
    • }
    • }
    • return penalty;
    • fn total_fine(speed: i32, signals: &[i32]) -> u32 {
    • signals.iter().map(|&signal| fine(speed, signal)).sum()
    • }
    • fn fine(speed: i32, signal: i32) -> u32 {
    • match speed - signal {
    • ..=9 => 0,
    • 10..=19 => 100,
    • 20..=29 => 250,
    • 30.. => 500
    • }
    • }
    Test Cases
    • import org.junit.jupiter.api.Test;
    • import static org.junit.jupiter.api.Assertions.assertEquals;
    • #[cfg(test)]
    • mod tests {
    • use super::*;
    • // TODO: Replace examples and use TDD by writing your own tests
    • class SolutionTest {
    • @Test
    • void testSomething() {
    • // assertEquals("expected", "actual");
    • #[test]
    • fn test_add() {
    • assert_eq!(total_fine(70, &[]), 0);
    • assert_eq!(total_fine(60, &[80, 70, 60]), 0);
    • assert_eq!(total_fine(0, &[15, 25, 35, 46]), 0);
    • assert_eq!(total_fine(100, &[110, 100, 80]), 250);
    • assert_eq!(total_fine(130, &[140, 130, 100]), 500);
    • }
    • }