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)); } }