Skip to main content

civ_engine/
policy.rs

1//! Policy module - consumption calculations based on policy settings
2
3#[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}