Skip to content

Commit

Permalink
day8
Browse files Browse the repository at this point in the history
  • Loading branch information
jacoloves committed Sep 30, 2021
1 parent edd9d79 commit d5851c0
Show file tree
Hide file tree
Showing 10 changed files with 193 additions and 2 deletions.
4 changes: 3 additions & 1 deletion .gitignore
@@ -1,4 +1,6 @@
oauth_sample/credentials.json
oauth_sample/vendor
oauth_sample/token.json
oauth_sample/composer.lock
oauth_sample/composer.lock
rust_project/*/*/target/
rust_project/*/target/
66 changes: 65 additions & 1 deletion rust_project/TRPL_prj/adder/src/lib.rs
Expand Up @@ -14,6 +14,32 @@ pub fn add_two(a: i32) -> i32 {
a + 2
}

pub fn greeting(name: &str) -> String {
format!("Hello {}!", name)
}

pub struct Guess {
value: i32,
}

impl Guess {
pub fn new(value: i32) -> Guess {
if value < 1 {
panic!(
"Guess value must be greater than or equal to 1, got {}.",
value
);
} else if value > 100 {
panic!(
"Guess value must be less than or equal to 100, got {}.",
value
);
}

Guess { value }
}
}

#[cfg(test)]
mod tests {
use super::*;
Expand Down Expand Up @@ -50,6 +76,44 @@ mod tests {
fn it_adds_two() {
assert_eq!(4, add_two(2));
}

#[test]
fn greeting_contains_name() {
let result = greeting("Carol");
assert!(
result.contains("Carol"),
"Greeting did not contain name, value was `{}`",
result
);
}

#[test]
#[should_panic(expected = "Guess value must be less than or equal to 100")]
fn greater_than_100() {
Guess::new(200);
}
}

fn main() {}
fn main() {
fn prints_and_returns_10(a: i32) -> i32 {
println!("I got the value {}", a);
10
}

#[cfg(test)]
mod tests {
use super::*;

#[test]
fn this_test_will_pass() {
let value = prints_and_returns_10(4);
assert_eq!(10, value);
}

#[test]
fn this_test_will_fail() {
let value = prints_and_returns_10(8);
assert_eq!(5, value);
}
}
}
7 changes: 7 additions & 0 deletions rust_project/TRPL_prj/adder2/Cargo.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

8 changes: 8 additions & 0 deletions rust_project/TRPL_prj/adder2/Cargo.toml
@@ -0,0 +1,8 @@
[package]
name = "adder2"
version = "0.1.0"
edition = "2018"

# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html

[dependencies]
56 changes: 56 additions & 0 deletions rust_project/TRPL_prj/adder2/src/lib.rs
@@ -0,0 +1,56 @@
#![allow(unused)]
pub fn add_two(a: i32) -> i32 {
a + 2
}

fn internal_adder(a: i32, b: i32) -> i32 {
a + b
}
fn main() {
fn prints_and_returns_10(a: i32) -> i32 {
println!("I got the value {}", a);
10
}

#[cfg(test)]
mod tests {
use super::*;

//#[test]
//fn this_test_will_pass() {
// let value = prints_and_returns_10(4);
// assert_eq!(10, value);
//}

//#[test]
//fn this_test_will_fail() {
// let value = prints_and_returns_10(8);
// assert_eq!(5, value);
//}

#[test]
fn add_two_and_two() {
assert_eq!(4, add_two(2));
}

#[test]
fn add_three_and_two() {
assert_eq!(5, add_two(3));
}

#[test]
fn one_hundred() {
assert_eq!(102, add_two(100));
}

#[test]
fn it_works() {
assert_eq!(2 + 2, 4);
}

#[test]
fn internal() {
assert_eq!(4, internal_adder(2, 2));
}
}
}
4 changes: 4 additions & 0 deletions rust_project/TRPL_prj/adder2/tests/common.rs
@@ -0,0 +1,4 @@
#![allow(unused)]
fn main() {
pub fn setup() {}
}
8 changes: 8 additions & 0 deletions rust_project/TRPL_prj/adder2/tests/integration_test.rs
@@ -0,0 +1,8 @@
extern crate adder2;

mod common;

#[test]
fn it_adds_two() {
assert_eq!(4, adder2::add_two(2));
}
7 changes: 7 additions & 0 deletions rust_project/TRPL_prj/minigrep/Cargo.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

8 changes: 8 additions & 0 deletions rust_project/TRPL_prj/minigrep/Cargo.toml
@@ -0,0 +1,8 @@
[package]
name = "minigrep"
version = "0.1.0"
edition = "2018"

# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html

[dependencies]
27 changes: 27 additions & 0 deletions rust_project/TRPL_prj/minigrep/src/main.rs
@@ -0,0 +1,27 @@
use std::env;
use std::fs::File;
use std::io::prelude::*;

fn main() {
let args: Vec<String> = env::args().collect();

let (query, filename) = parse_config(&args);

println!("Searchng for {}", query);
println!("In file {}", filename);

let mut f = File::open(filename).expect("file not found");

let mut contents = String::new();
f.read_to_string(&mut contents)
.expect("something went wrong reading the file");

println!("With text:\n{}", contents);
}

fn parse_config(args: &[String]) -> (&str, &str) {
let query = &args[1];
let filename = &args[2];

(query, filename)
}

0 comments on commit d5851c0

Please sign in to comment.