mars-rover-fe/src/main.rs

31 lines
613 B
Rust

fn main() {
println!("Hello, world!");
}
mod rover {
#[derive(Debug,PartialEq)]
pub enum Facing { N, E, S, W }
type Rover = (i32, i32, Facing);
pub fn forward((lon, lat, direction) : Rover) -> Rover {
(lon as i32, lat - 1 as i32, direction)
}
}
#[cfg(test)]
mod tests {
use super::*;
#[test]
fn move_north() {
let r = (1 as i32, 1 as i32, rover::Facing::N);
assert_eq!(rover::forward(r),
(1 as i32, 0 as i32, rover::Facing::N));
let r = (1 as i32, 3 as i32, rover::Facing::N);
assert_eq!(rover::forward(r),
(1 as i32, 2 as i32, rover::Facing::N));
}
}