import 'package:flutter_test/flutter_test.dart'; import 'package:hvbt_dash/core/protocol/temp_table.dart'; double decodeTemp(int raw) => (tempXlt[raw] + 40).toDouble(); void main() { group('Temperature lookup table', () { test('tempXlt has exactly 256 entries', () { expect(tempXlt.length, equals(256)); }); test('decodeTemp(0x00) = tempXlt[0] + 40 = 190 + 40 = 230°C', () { expect(decodeTemp(0x00), equals(230.0)); }); test('decodeTemp(0xA0) = tempXlt[160] + 40', () { // 0xA0 = 160 decimal; tempXlt[160] = 60 expect(decodeTemp(0xA0), equals(60 + 40.0)); }); test('decodeTemp(0xFF) = tempXlt[255] + 40 = 0 + 40 = 40°C', () { expect(decodeTemp(0xFF), equals(40.0)); }); test('decodeTemp(0x80) = tempXlt[128] + 40', () { // 0x80 = 128; tempXlt[128] = 73 expect(decodeTemp(0x80), equals(73 + 40.0)); }); test('all table values are non-negative', () { for (final v in tempXlt) { expect(v, greaterThanOrEqualTo(0)); } }); }); }