From dcc166cc13aab328a10083de9bac59be3879270a Mon Sep 17 00:00:00 2001 From: Gonzalo Diaz Date: Sun, 7 Sep 2025 22:28:29 -0300 Subject: [PATCH] [REFACTOR] Trying to re-organize source code and tests --- docs/hackerrank/warmup/solveMeFirst.md | 44 +++++++++++++++++++++ src/add.rs | 3 -- src/hackerrank/mod.rs | 1 + src/hackerrank/warmup/mod.rs | 1 + src/hackerrank/warmup/solve_me_first.rs | 5 +++ src/lib.rs | 2 +- tests/add.rs | 32 --------------- tests/{ => data/hackerrank/warmup}/add.json | 0 tests/hackerrank/mod.rs | 1 + tests/hackerrank/warmup/mod.rs | 1 + tests/hackerrank/warmup/solve_me_first.rs | 34 ++++++++++++++++ tests/tests.rs | 2 + 12 files changed, 90 insertions(+), 36 deletions(-) create mode 100644 docs/hackerrank/warmup/solveMeFirst.md delete mode 100644 src/add.rs create mode 100644 src/hackerrank/mod.rs create mode 100644 src/hackerrank/warmup/mod.rs create mode 100644 src/hackerrank/warmup/solve_me_first.rs delete mode 100644 tests/add.rs rename tests/{ => data/hackerrank/warmup}/add.json (100%) create mode 100644 tests/hackerrank/mod.rs create mode 100644 tests/hackerrank/warmup/mod.rs create mode 100644 tests/hackerrank/warmup/solve_me_first.rs create mode 100644 tests/tests.rs diff --git a/docs/hackerrank/warmup/solveMeFirst.md b/docs/hackerrank/warmup/solveMeFirst.md new file mode 100644 index 0000000..5c88ee1 --- /dev/null +++ b/docs/hackerrank/warmup/solveMeFirst.md @@ -0,0 +1,44 @@ +# [Solve Me First](https://www.hackerrank.com/challenges/solve-me-first) + +Difficulty: #easy +Category: #warmup + +Complete the function solveMeFirst to compute the sum of two integers. + +## Example + +$ a = 7 $ \ +$ b = 3 $ + +Return 10. + +## Function Description + +Complete the solveMeFirst function in the editor below. +solveMeFirst has the following parameters: + +- int a: the first value +- int b: the second value + +## Constraints + +$ 1 \leq a, b \leq 1000 $ + +## Sample Input + +```text +a = 2 +b = 3 +``` + +## Sample Output + +```text +5 +``` + +## Explanation + +```text +2 + 3 = 5 +``` diff --git a/src/add.rs b/src/add.rs deleted file mode 100644 index 97f1788..0000000 --- a/src/add.rs +++ /dev/null @@ -1,3 +0,0 @@ -pub fn add(left: u64, right: u64) -> u64 { - left + right -} diff --git a/src/hackerrank/mod.rs b/src/hackerrank/mod.rs new file mode 100644 index 0000000..b0ff1a2 --- /dev/null +++ b/src/hackerrank/mod.rs @@ -0,0 +1 @@ +pub mod warmup; diff --git a/src/hackerrank/warmup/mod.rs b/src/hackerrank/warmup/mod.rs new file mode 100644 index 0000000..9b41a28 --- /dev/null +++ b/src/hackerrank/warmup/mod.rs @@ -0,0 +1 @@ +pub mod solve_me_first; diff --git a/src/hackerrank/warmup/solve_me_first.rs b/src/hackerrank/warmup/solve_me_first.rs new file mode 100644 index 0000000..0873b27 --- /dev/null +++ b/src/hackerrank/warmup/solve_me_first.rs @@ -0,0 +1,5 @@ +// @link Problem definition [[docs/hackerrank/warmup/solveMeFirst.md]] + +pub fn solve_me_first(left: i32, right: i32) -> i32 { + left + right +} diff --git a/src/lib.rs b/src/lib.rs index cced7b4..d2c8d7a 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -1 +1 @@ -pub mod add; +pub mod hackerrank; diff --git a/tests/add.rs b/tests/add.rs deleted file mode 100644 index d19828a..0000000 --- a/tests/add.rs +++ /dev/null @@ -1,32 +0,0 @@ -use exercises::add::add; -use once_cell::sync::Lazy; -use serde::Deserialize; - -mod common; -use common::utils::load_json; - -#[derive(Debug, Deserialize)] -struct AdderTestCase { - title: String, - a: u64, - b: u64, - result: u64 -} - -static TEST_DATA: Lazy> = - Lazy::new(|| load_json("tests/add.json")); - -#[cfg(test)] -mod tests { - use super::*; - - #[test] - fn test_adder() { - for test_case in TEST_DATA.iter() { - println!("Probando AdderTestCase : {:?}", test_case.title); - - let result = add(test_case.a, test_case.b); - assert_eq!(result, test_case.result); - } - } -} diff --git a/tests/add.json b/tests/data/hackerrank/warmup/add.json similarity index 100% rename from tests/add.json rename to tests/data/hackerrank/warmup/add.json diff --git a/tests/hackerrank/mod.rs b/tests/hackerrank/mod.rs new file mode 100644 index 0000000..b0ff1a2 --- /dev/null +++ b/tests/hackerrank/mod.rs @@ -0,0 +1 @@ +pub mod warmup; diff --git a/tests/hackerrank/warmup/mod.rs b/tests/hackerrank/warmup/mod.rs new file mode 100644 index 0000000..9b41a28 --- /dev/null +++ b/tests/hackerrank/warmup/mod.rs @@ -0,0 +1 @@ +pub mod solve_me_first; diff --git a/tests/hackerrank/warmup/solve_me_first.rs b/tests/hackerrank/warmup/solve_me_first.rs new file mode 100644 index 0000000..119f02a --- /dev/null +++ b/tests/hackerrank/warmup/solve_me_first.rs @@ -0,0 +1,34 @@ +use exercises::hackerrank::warmup::solve_me_first::solve_me_first as add; +use once_cell::sync::Lazy; +use serde::Deserialize; + +use crate::common; +use common::utils::load_json; + + + +#[derive(Debug, Deserialize)] +struct SolveMeFirstTestCase { + title: String, + a: i32, + b: i32, + result: i32 +} + +static TEST_DATA: Lazy> = + Lazy::new(|| load_json("tests/data/hackerrank/warmup/add.json")); + +#[cfg(test)] +mod tests { + use super::*; + + #[test] + fn test_solve_me_first() { + for test_case in TEST_DATA.iter() { + println!("Testing hackerrank::warmup::solve_me_first::solve_me_first() : {:?}", test_case.title); + + let result = add(test_case.a, test_case.b); + assert_eq!(result, test_case.result); + } + } +} diff --git a/tests/tests.rs b/tests/tests.rs new file mode 100644 index 0000000..baaf734 --- /dev/null +++ b/tests/tests.rs @@ -0,0 +1,2 @@ +pub mod common; +pub mod hackerrank;