44 lines
1.2 KiB
Gleam
44 lines
1.2 KiB
Gleam
import gleeunit
|
|
import gleeunit/should
|
|
import sensors
|
|
|
|
pub fn main() -> Nil {
|
|
gleeunit.main()
|
|
}
|
|
|
|
pub fn sensor_name_and_unit_test() {
|
|
let reading =
|
|
sensors.sensor_name(sensors.Temperature)
|
|
<> " "
|
|
<> "20.5"
|
|
<> " "
|
|
<> sensors.sensor_unit(sensors.Temperature)
|
|
reading
|
|
|> should.equal("Temperature 20.5 °C")
|
|
}
|
|
|
|
pub fn parse_topic_1_test() {
|
|
let json_string =
|
|
"{\"temp\":18.84,\"humidity\":28.690811,\"pressure\":944.67}"
|
|
let readings = sensors.parse_topic_1(json_string)
|
|
readings
|
|
|> should.equal([
|
|
sensors.SensorReading(sensor: sensors.Temperature, value: 18.84),
|
|
sensors.SensorReading(sensor: sensors.Humidity, value: 28.690811),
|
|
sensors.SensorReading(sensor: sensors.Pressure, value: 944.67),
|
|
])
|
|
}
|
|
|
|
pub fn parse_topic_2_test() {
|
|
let json_string = "{\"pm1\":16.83,\"pm2_5\":10.68,\"pm10\":16.619719}"
|
|
let readings = sensors.parse_topic_2(json_string)
|
|
readings
|
|
|> should.equal([
|
|
sensors.SensorReading(sensor: sensors.ParticalMatterOne, value: 16.83),
|
|
sensors.SensorReading(
|
|
sensor: sensors.ParticalMatterTwoPointFive,
|
|
value: 10.68,
|
|
),
|
|
sensors.SensorReading(sensor: sensors.ParticalMatterTen, value: 16.619719),
|
|
])
|
|
}
|