1#[derive(Debug, Clone, Copy)]
4pub struct PolicyInput {
5 pub base_consumption_joules: f64,
6 pub scarcity_multiplier: f64,
7}
8
9pub fn effective_consumption(input: PolicyInput) -> f64 {
10 input.base_consumption_joules * input.scarcity_multiplier.max(0.0)
11}
12
13#[cfg(test)]
14mod tests {
15 use super::*;
16
17 #[test]
18 fn consumption_non_negative() {
19 let c = effective_consumption(PolicyInput {
20 base_consumption_joules: 10.0,
21 scarcity_multiplier: -1.0,
22 });
23 assert_eq!(c, 0.0);
24 }
25}