Skip to content

Commit 6746fd7

Browse files
authored
Small fixes (#15)
2 parents 74faef5 + 7d1d3d7 commit 6746fd7

4 files changed

Lines changed: 22 additions & 8 deletions

File tree

Cargo.toml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -16,14 +16,14 @@ frequenz-resampling = { git = "https://github.com/frequenz-floss/frequenz-resamp
1616
futures = "0.3.31"
1717
prost = "0.13"
1818
prost-types = "0.13"
19-
tokio = { version = "1.45", features = ["rt", "rt-multi-thread"] }
19+
tokio = { version = "1.48", features = ["rt", "rt-multi-thread"] }
2020
tonic = "0.13"
2121
tracing = { version = "0.1" }
2222
tracing-subscriber = { version = "0.3" }
2323

2424
[dev-dependencies]
2525
tracing-subscriber = { version = "0.3", features = ["std", "env-filter"] }
26-
tokio = { version = "1.45", features = ["test-util"] }
26+
tokio = { version = "1.48", features = ["test-util"] }
2727
tokio-stream = { version = "0.1.17", features = ["sync"] }
2828

2929

examples/logical_meter.rs

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,11 +27,11 @@ async fn main() -> Result<(), Error> {
2727
)
2828
.await?;
2929

30-
// Create a formula that calculates `grid_power - battery_power`.
3130
let formula_grid = logical_meter.grid(metric::AcPowerActive)?;
3231
let formula_pv = logical_meter.pv(None, metric::AcPowerActive)?;
3332
let formula_consumer = logical_meter.consumer(metric::AcPowerActive)?;
3433

34+
// Create a formula that calculates `grid_power - pv_power + consumer_power + 100kW`.
3535
let formula = logical_meter.grid(metric::AcPowerActive)?
3636
- logical_meter.pv(None, metric::AcPowerActive)?
3737
+ logical_meter.consumer(metric::AcPowerActive)?
@@ -68,6 +68,8 @@ async fn main() -> Result<(), Error> {
6868
);
6969
}
7070

71+
// Create a formula that calculates the grid voltage as:
72+
// COALESCE(grid_voltage, AVG(grid_voltage_p1, grid_voltage_p2, grid_voltage_p3) * SQRT(3))
7173
let formula_grid_voltage = logical_meter.grid(metric::AcVoltage)?.coalesce(
7274
logical_meter.grid(metric::AcVoltagePhase1N)?.avg(vec![
7375
logical_meter.grid(metric::AcVoltagePhase2N)?,

src/logical_meter/formula/graph_formula_provider.rs

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ macro_rules! graph_formula_provider {
2222

2323
fn $fnname(
2424
_graph: &ComponentGraph<ElectricalComponent, ElectricalComponentConnection>,
25-
_metric: Self::MetricType,
25+
metric: Self::MetricType,
2626
_instructions_tx: mpsc::Sender<logical_meter_actor::Instruction>,
2727
$($idsparam: Option<BTreeSet<u64>>,)?
2828
$($idparam: u64,)?
@@ -31,7 +31,7 @@ macro_rules! graph_formula_provider {
3131
format!(
3232
"The component graph does not support {} formula generation for {}.",
3333
stringify!($fnname),
34-
_metric.to_string()
34+
metric.to_string()
3535
)
3636
));
3737
}
@@ -70,7 +70,7 @@ macro_rules! impl_graph_formula_provider {
7070

7171
fn $fnname(
7272
graph: &ComponentGraph<ElectricalComponent, ElectricalComponentConnection>,
73-
_metric: Self::MetricType,
73+
metric: Self::MetricType,
7474
instructions_tx: mpsc::Sender<logical_meter_actor::Instruction>,
7575
$($idsparam: Option<BTreeSet<u64>>,)?
7676
$($idparam: u64,)?
@@ -80,7 +80,7 @@ macro_rules! impl_graph_formula_provider {
8080
format!("Could not get {} formula: {e}", stringify!($fnname))
8181
)
8282
})?;
83-
Ok(FormulaParams::new(formula, _metric, instructions_tx).into())
83+
Ok(FormulaParams::new(formula, metric, instructions_tx).into())
8484
}
8585

8686
)+};

src/quantity/percentage.rs

Lines changed: 13 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
//! This module defines the `Percentage` quantity and its operations.
55
66
qty_ctor! {
7-
#[doc = "A quantity representing a percentage (0% to 100%)."]
7+
#[doc = "A quantity representing a percentage (typically 0% to 100%)."]
88
Percentage => {
99
(from_percentage, as_percentage, "%", 1.0),
1010
(from_fraction, as_fraction, None, 100.0),
@@ -38,6 +38,15 @@ mod tests {
3838
assert_f32_eq(perc_2 / perc_1, 1.6);
3939

4040
assert_f32_eq(Percentage::zero().as_percentage(), 0.0);
41+
42+
let perc_3 = Percentage::from_percentage(150.0);
43+
assert_f32_eq(perc_3.as_fraction(), 1.5);
44+
let perc_4 = Percentage::from_fraction(-0.1);
45+
assert_f32_eq(perc_4.as_percentage(), -10.0);
46+
47+
assert!(perc_3 > Percentage::from_percentage(100.0));
48+
assert!(perc_4 < Percentage::from_percentage(0.0));
49+
assert!(perc_4 > Percentage::from_percentage(-20.0));
4150
}
4251

4352
#[test]
@@ -50,5 +59,8 @@ mod tests {
5059
assert_eq!(p(12.3456, 4), "12.3456 %");
5160
assert_eq!(p(12.3456, 5), "12.3456 %");
5261
assert_eq!(s(100.0), "100 %");
62+
assert_eq!(s(-5.5), "-5.5 %");
63+
assert_eq!(s(1234.5678), "1234.568 %");
64+
assert_eq!(p(-1234.5678, 1), "-1234.6 %");
5365
}
5466
}

0 commit comments

Comments
 (0)