Skip to content

Commit 9d6f700

Browse files
committed
Change 'dust_concentration' to be f64 to match original type in ambi
1 parent 29ac6b3 commit 9d6f700

File tree

1 file changed

+15
-14
lines changed

1 file changed

+15
-14
lines changed

src/lib.rs

Lines changed: 15 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,7 @@ struct Reading {
3838
temperature: f64,
3939
humidity: f64,
4040
pressure: i32,
41-
dust_concentration: i32,
41+
dust_concentration: f64,
4242
air_purity: String,
4343
}
4444

@@ -47,7 +47,7 @@ impl Reading {
4747
temperature: f64,
4848
humidity: f64,
4949
pressure: i32,
50-
dust_concentration: i32,
50+
dust_concentration: f64,
5151
air_purity: String,
5252
) -> Reading {
5353
Reading {
@@ -69,13 +69,13 @@ enum AirPurity {
6969
}
7070

7171
impl AirPurity {
72-
fn from_value(value: i32) -> AirPurity {
72+
fn from_value(value: f64) -> AirPurity {
7373
match value {
74-
i32::MIN..=50 => return AirPurity::FreshAir,
75-
51..=100 => return AirPurity::Low,
76-
101..=150 => return AirPurity::High,
77-
151.. => return AirPurity::Dangerous,
78-
};
74+
value if value >= f64::MIN && value <= 50.0 => return AirPurity::FreshAir,
75+
value if value > 50.0 && value <= 100.0 => return AirPurity::Low,
76+
value if value > 100.0 && value <= 150.0 => return AirPurity::High,
77+
_ => return AirPurity::Dangerous,
78+
}
7979
}
8080
}
8181

@@ -111,9 +111,10 @@ fn random_gen_pressure() -> i32 {
111111
rng.gen_range(900..=1100)
112112
}
113113

114-
fn random_gen_dust_concentration() -> i32 {
114+
fn random_gen_dust_concentration() -> f64 {
115115
let mut rng = thread_rng();
116-
rng.gen_range(0..=1000)
116+
let value = rng.gen_range(0.0..=1000.0);
117+
f64::trunc(value * 100.0) / 100.0
117118
}
118119

119120
pub fn run(cli: &Cli) {
@@ -175,10 +176,10 @@ mod tests {
175176
#[test]
176177
fn air_purity_from_value_returns_correct_enum() {
177178
let mut rng = thread_rng();
178-
let fresh_air = rng.gen_range(i32::MIN..=50);
179-
let low = rng.gen_range(51..=100);
180-
let high = rng.gen_range(101..=150);
181-
let dangerous = rng.gen_range(151..i32::MAX);
179+
let fresh_air = rng.gen_range(0.0..=50.0);
180+
let low = rng.gen_range(51.0..=100.0);
181+
let high = rng.gen_range(101.0..=150.0);
182+
let dangerous = rng.gen_range(151.0..f64::MAX);
182183

183184
assert_eq!(AirPurity::from_value(fresh_air), AirPurity::FreshAir);
184185
assert_eq!(AirPurity::from_value(low), AirPurity::Low);

0 commit comments

Comments
 (0)