mars-rover

Crates.iomars-rover
lib.rsmars-rover
version0.1.0
created_at2023-08-15 09:48:54.5886+00
updated_at2023-08-15 09:48:54.5886+00
descriptionA coding exercise in controlling a set of rovers on mars.
homepage
repositoryhttps://github.com/OliverBrotchie/mars-rover-cli
max_upload_size
id944867
size33,960
Oliver Brotchie (OliverBrotchie)

documentation

README

rover-cli

A coding exercise in controlling a set of rovers on mars.


🛠 Installation

cargo install rover-cli

🔋 Usage

Print output to console:

rover-cli foo.txt

Save output to file:

rover-cli --output output.txt foo.txt

To see helpful information:

rover-cli --help

💭 Code Choices

  • --unbounded command flag is included to allow to the rover to exit the plateau.
  • isize is used to represent co-ordinates to allow the rover to pass (0, 0).
  • fs::read_to_string is used for simplicity over the more performant but more complex BufReader.
  • RoverControlSatellite is used for themeatic effect!

🔬 Testing

To run tests for the CLI:

cargo test

Testing Approach

Unit tests that cover basic functionality and possible branches are included, however as this is a coding exercise, 100% coverage has not been aimed for.

Generate Coverage Report

Setup

rustup component add llvm-tools-preview &&
cargo install cargo-llvm-cov

Usage

To create a coverage report:

cargo llvm-cov

To debug a coverage report:

cargo llvm-cov --html --output-dir coverage
Commit count: 5

cargo fmt