package com.logitech.vc.kirbytest import org.junit.Assert.* import org.junit.Test /** * Example local unit test, which will execute on the development machine (host). * * See [testing documentation](http://d.android.com/tools/testing). */ class DecoderTest { @Test fun message_type_0_decodes_correctly() { val res2 = DecoderIaq.parseMeasurement("006b04ab74a1ed0d101404") val testMeasurement = DecoderIaq.Measurement(msgType = 0, co2 = 428, voc = 149, humidity = 44, pressure = 96873, occupancy = 1, pm10 = 4, pm25 = 5, temperature = 24.7 ) assertEquals(testMeasurement, res2) } @Test fun message_type_1_decodes_correctly() { val res2 = DecoderIaq.parseMeasurement("106b04ab74a1ed0d10") val testMeasurement = DecoderIaq.Measurement(msgType = 1, co2 = 428, voc = 149, humidity = 44, pressure = 96873, occupancy = 1, pm10 = null, pm25 = null, temperature = 24.7 ) assertEquals(testMeasurement, res2) } @Test fun message_type_5() { val res = DecoderIaq.parseMeasurement("501001C0430000") val expected = DecoderIaq.DeviceStatus(msgType = 5, firmware = "1.0.28-4", operationMode = 3, batteryVoltage = 0, errorPm = false, errorVoc = false, errorTemp = false, errorCo2 = false, errorRadar = false) assertEquals(expected, res) } @Test fun message_type_5_battery() { val res = DecoderIaq.parseMeasurement("501001C0430FF9") val expected = DecoderIaq.DeviceStatus(msgType = 5, firmware = "1.0.28-4", operationMode = 3, batteryVoltage = 4089f/1000, errorPm = false, errorVoc = false, errorTemp = false, errorCo2 = false, errorRadar = false) assertEquals(expected, res) } @Test fun message_type_5_with_errors() { val res = DecoderIaq.parseMeasurement("501001C0430FF928") val expected = DecoderIaq.DeviceStatus(msgType = 5, firmware = "1.0.28-4", operationMode = 3, batteryVoltage = 4089f/1000, errorPm = true, errorVoc = true, errorTemp = true, errorCo2 = true, errorRadar = true) assertEquals(expected, res) } }