aboutsummaryrefslogtreecommitdiff
path: root/budget
diff options
context:
space:
mode:
Diffstat (limited to 'budget')
-rw-r--r--budget/src/lib.rs1
-rw-r--r--budget/tests/budget.rs20
-rw-r--r--budget/tests/test.toml4
3 files changed, 17 insertions, 8 deletions
diff --git a/budget/src/lib.rs b/budget/src/lib.rs
index 4dab46a..e8bb8f3 100644
--- a/budget/src/lib.rs
+++ b/budget/src/lib.rs
@@ -22,6 +22,7 @@ pub struct Account {
pub struct Day {
#[serde(deserialize_with = "deserialize_date")]
pub date: NaiveDate,
+ #[serde(default)]
pub expenses: Vec<Expense>,
}
diff --git a/budget/tests/budget.rs b/budget/tests/budget.rs
index 32828f8..1cc02e7 100644
--- a/budget/tests/budget.rs
+++ b/budget/tests/budget.rs
@@ -82,6 +82,10 @@ fn can_parse_account() -> Result<(), ParseError>{
},
],
},
+ Day {
+ date: NaiveDate::from_ymd(2020, 10, 3),
+ expenses: Vec::<Expense>::new(),
+ },
],
};
@@ -95,32 +99,32 @@ fn can_parse_account() -> Result<(), ParseError>{
#[test]
fn can_calculate() -> Result<(), ParseError> {
let mut should_be = Calculated {
- all_day_average: 11.355,
- essential_day_average: 9.45,
+ all_day_average: 7.57,
+ essential_day_average: 6.3,
categories_day_average: HashMap::<String, f64>::new(),
essential_subtotal: 18.9,
categories_subtotal: HashMap::<String, f64>::new(),
total: 22.71,
balance: 397.29,
- days_left: 34.9881109643329,
- days_left_essential: 42.041269841269845,
+ days_left: 52.48216644649934,
+ days_left_essential: 63.06190476190476,
};
should_be.categories_day_average.insert(
"supplies".to_string(),
- 1.905,
+ 1.27,
);
should_be.categories_day_average.insert(
"products".to_string(),
- 3.5,
+ 2.3333333333333335,
);
should_be.categories_day_average.insert(
"transport".to_string(),
- 3.45,
+ 2.3000000000000003,
);
should_be.categories_day_average.insert(
"utilities".to_string(),
- 2.5,
+ 1.6666666666666667,
);
should_be.categories_subtotal.insert(
diff --git a/budget/tests/test.toml b/budget/tests/test.toml
index 7dd5774..1bb1ce7 100644
--- a/budget/tests/test.toml
+++ b/budget/tests/test.toml
@@ -51,3 +51,7 @@ date = 2020-10-02
name = "Transport card"
price = 6.9
category = "transport"
+
+[[days]]
+date = 2020-10-03
+