From 379b1b7b4249bba4a5c47c67cb2895454f751683 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Micha=C3=ABl=20Hauspie?= <michael.hauspie@univ-lille.fr> Date: Sun, 31 Mar 2024 13:27:34 +0200 Subject: [PATCH] Add Fois, Diviser --- src/main.rs | 18 ++++++++++++++++++ src/operations.rs | 28 ++++++++++++++++++++++++++++ 2 files changed, 46 insertions(+) diff --git a/src/main.rs b/src/main.rs index 5af3267..ae48b02 100644 --- a/src/main.rs +++ b/src/main.rs @@ -94,4 +94,22 @@ mod tests { assert_eq!(response, expected); } + #[test] + fn fois() { + let (status, response) = build_response(Operation::Fois(10, 20)); + assert_eq!(status, Status::Ok); + + let expected = OperationResult::new("10 x 20", 200); + assert_eq!(response, expected); + } + + #[test] + fn diviser() { + let (status, response) = build_response(Operation::Diviser(10, 20)); + assert_eq!(status, Status::Ok); + + let expected = OperationResult::new("10 / 20", 0); + assert_eq!(response, expected); + } + } diff --git a/src/operations.rs b/src/operations.rs index e6ee1f0..383af9d 100644 --- a/src/operations.rs +++ b/src/operations.rs @@ -8,6 +8,8 @@ use serde::{Deserialize, Serialize}; pub enum Operation { Plus(i32,i32), Moins(i32,i32), + Fois(i32,i32), + Diviser(i32,i32), } #[derive(Deserialize, Serialize, PartialEq, Debug)] @@ -37,6 +39,14 @@ impl From<&Operation> for OperationResult { operation: format!("{op1} - {op2}"), resultat: op1 - op2, }, + Operation::Fois(op1, op2) => OperationResult { + operation: format!("{op1} x {op2}"), + resultat: op1 * op2, + }, + Operation::Diviser(op1, op2) => OperationResult { + operation: format!("{op1} / {op2}"), + resultat: op1 / op2, + }, } } } @@ -69,5 +79,23 @@ mod tests { assert_eq!(result, expected); } + + #[test] + fn fois() { + let operation = Operation::Fois(4, 5); + let result = OperationResult::from(operation); + let expected = OperationResult::new("4 x 5", 20); + + assert_eq!(result, expected); + } + + #[test] + fn diviser() { + let operation = Operation::Diviser(20, 4); + let result = OperationResult::from(operation); + let expected = OperationResult::new("20 / 4", 5); + + assert_eq!(result, expected); + } } -- GitLab