31 lines
613 B
Rust
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));
|
|
}
|
|
}
|