Added various comments to the project.

This commit is contained in:
Jacob VanDomelen 2019-05-25 21:14:37 -07:00
parent e6570cf4b7
commit dd282236fd
3 changed files with 14 additions and 1 deletions

View file

@ -8,9 +8,12 @@ use uuid::Uuid;
// directory: String // directory: String
// } // }
/// Constructs a tree with a given height while simultaneously running a simulation on each node.
fn build_tree(h: u32) -> Option<Box<tree::Tree>> { fn build_tree(h: u32) -> Option<Box<tree::Tree>> {
let mut result: Option<Box<tree::Tree>> = None; let mut result: Option<Box<tree::Tree>> = None;
// Recursively building a tree and running the simulation after wards to ensure a bottom-up
// execution order.
if h != 0 { if h != 0 {
result = Some(Box::new(tree::combine_trees(Uuid::new_v4(), build_tree(h - 1), build_tree(h - 1)))); result = Some(Box::new(tree::combine_trees(Uuid::new_v4(), build_tree(h - 1), build_tree(h - 1))));
match &result { match &result {
@ -22,10 +25,14 @@ fn build_tree(h: u32) -> Option<Box<tree::Tree>> {
result result
} }
/// Generates a bracket tree and runs simulation against each node.
///
/// TODO: Explain reasoning for bracket system against genetic algorithm.
pub fn run_bracket() { pub fn run_bracket() {
let mut height = 1; let mut height = 1;
let mut tree: tree::Tree = *build_tree(height).expect("Error getting result from build_tree."); let mut tree: tree::Tree = *build_tree(height).expect("Error getting result from build_tree.");
// Building tree one node at a time, appending to the top.
loop { loop {
println!("========================================="); println!("=========================================");
println!("Running bracket..."); println!("Running bracket...");

View file

@ -1 +1,2 @@
/// Corresponds to the DIRECTORY command line argument used in accordance with the clap crate.
pub const DIRECTORY: &str = "DIRECTORY"; pub const DIRECTORY: &str = "DIRECTORY";

View file

@ -6,13 +6,18 @@ extern crate clap;
use clap::App; use clap::App;
use std::fs::metadata; use std::fs::metadata;
/// Runs a simluation of a genetic algorithm against a dataset.
///
/// Use the -h, --h, or --help flag to see usage syntax.
fn main() { fn main() {
// Command line arguments are parsed with the clap crate. And this program uses
// the yaml method with clap.
let yaml = load_yaml!("../cli.yml"); let yaml = load_yaml!("../cli.yml");
let matches = App::from_yaml(yaml).get_matches(); let matches = App::from_yaml(yaml).get_matches();
// Checking that the first argument <DIRECTORY> is a valid directory
let directory = matches.value_of(constants::args::DIRECTORY).unwrap(); let directory = matches.value_of(constants::args::DIRECTORY).unwrap();
let metadata = metadata(directory); let metadata = metadata(directory);
match &metadata { match &metadata {
Ok(m) if m.is_dir() == true => { Ok(m) if m.is_dir() == true => {
println!("{} is a valid directory!", directory); println!("{} is a valid directory!", directory);