UNPKG

homebridge-purpleair-sensor

Version:
163 lines 7.71 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); const SensorReading_1 = require("./SensorReading"); const test_indoor_with_voc_json_1 = __importDefault(require("./test-indoor-with-voc.json")); const test_indoor_without_voc_json_1 = __importDefault(require("./test-indoor-without-voc.json")); const test_outdoor_json_1 = __importDefault(require("./test-outdoor.json")); const test_62393_json_1 = __importDefault(require("./test-62393.json")); const test_67533_json_1 = __importDefault(require("./test-67533.json")); const test_68495_json_1 = __importDefault(require("./test-68495.json")); const test_local_inside_json_1 = __importDefault(require("./test-local-inside.json")); const test_local_outside_json_1 = __importDefault(require("./test-local-outside.json")); test('indoor sensor with VOC', () => { const reading = (0, SensorReading_1.parsePurpleAirJson)(test_indoor_with_voc_json_1.default); expect(reading.pm25).toBe(10.7); expect(reading.voc).toBe(81.0); }); test('indoor sensor without VOC', () => { const reading = (0, SensorReading_1.parsePurpleAirJson)(test_indoor_without_voc_json_1.default); expect(reading.pm25).toBe(10.7); expect(reading.voc).toBe(null); }); test('outdoor sensor', () => { const reading = (0, SensorReading_1.parsePurpleAirJson)(test_outdoor_json_1.default); expect(reading.pm25).toBe(9.7); expect(reading.voc).toBe(110.6); }); test('10m averages', () => { const reading = (0, SensorReading_1.parsePurpleAirJson)(test_indoor_with_voc_json_1.default, '10m'); expect(reading.pm25).toBe(11.1); }); test('30m averages', () => { const reading = (0, SensorReading_1.parsePurpleAirJson)(test_indoor_with_voc_json_1.default, '30m'); expect(reading.pm25).toBe(13.0); }); test('60m averages', () => { const reading = (0, SensorReading_1.parsePurpleAirJson)(test_indoor_with_voc_json_1.default, '60m'); expect(reading.pm25).toBe(15.0); }); test('default to no conversion', () => { const reading = (0, SensorReading_1.parsePurpleAirJson)(test_indoor_with_voc_json_1.default); expect(Math.round(reading.aqi)).toBe(45); }); test('AQI excellent', () => { const reading = new SensorReading_1.SensorReading('1234', 6.86, NaN, NaN, NaN, NaN, 'None', NaN); expect(Math.round(reading.aqi)).toBe(29); expect(reading.airQualityHomekitReading).toBe(1); }); test('AQI good', () => { const reading = new SensorReading_1.SensorReading('1234', 13.1, NaN, NaN, NaN, NaN, 'None', NaN); expect(Math.round(reading.aqi)).toBe(53); expect(reading.airQualityHomekitReading).toBe(2); }); test('AQI fair', () => { const reading = new SensorReading_1.SensorReading('1234', 35.9, NaN, NaN, NaN, NaN, 'None', NaN); expect(Math.round(reading.aqi)).toBe(102); expect(reading.airQualityHomekitReading).toBe(3); }); test('AQI inferior', () => { const reading = new SensorReading_1.SensorReading('1234', 65.1, NaN, NaN, NaN, NaN, 'None', NaN); expect(Math.round(reading.aqi)).toBe(156); expect(reading.airQualityHomekitReading).toBe(4); }); test('AQI poor', () => { const reading = new SensorReading_1.SensorReading('1234', 154.5, NaN, NaN, NaN, NaN, 'None', NaN); expect(Math.round(reading.aqi)).toBe(205); expect(reading.airQualityHomekitReading).toBe(5); }); test('AQandU excellent', () => { const reading = new SensorReading_1.SensorReading('1234', 6.86, NaN, NaN, NaN, NaN, 'AQandU', NaN); expect(Math.round(reading.aqi)).toBe(33); expect(reading.airQualityHomekitReading).toBe(1); }); test('AQandU good', () => { const reading = new SensorReading_1.SensorReading('1234', 13.1, NaN, NaN, NaN, NaN, 'AQandU', NaN); expect(Math.round(reading.aqi)).toBe(53); expect(reading.airQualityHomekitReading).toBe(2); }); test('AQandU good 2', () => { const reading = new SensorReading_1.SensorReading('1234', 35.9, NaN, NaN, NaN, NaN, 'AQandU', NaN); expect(Math.round(reading.aqi)).toBe(90); expect(reading.airQualityHomekitReading).toBe(2); }); test('AQandU fair', () => { const reading = new SensorReading_1.SensorReading('1234', 65.1, NaN, NaN, NaN, NaN, 'AQandU', NaN); expect(Math.round(reading.aqi)).toBe(145); expect(reading.airQualityHomekitReading).toBe(3); }); test('AQandU inferior', () => { const reading = new SensorReading_1.SensorReading('1234', 154.5, NaN, NaN, NaN, NaN, 'AQandU', NaN); expect(Math.round(reading.aqi)).toBe(186); expect(reading.airQualityHomekitReading).toBe(4); }); test('AQandU poor', () => { const reading = new SensorReading_1.SensorReading('1234', 200.5, NaN, NaN, NaN, NaN, 'AQandU', NaN); expect(Math.round(reading.aqi)).toBe(209); expect(reading.airQualityHomekitReading).toBe(5); }); test('Nearby 36 None', () => { const reading = (0, SensorReading_1.parsePurpleAirJson)(test_62393_json_1.default, 'realtime', 'None'); expect(reading.pm25).toBe(8.7); expect(reading.aqi).toBe(36); expect(reading.airQualityHomekitReading).toBe(1); }); test('Nearby 158 AQandU', () => { const reading = (0, SensorReading_1.parsePurpleAirJson)(test_62393_json_1.default, 'realtime', 'AQandU'); expect(reading.pm25).toBe(8.7); expect(reading.aqi).toBe(39); expect(reading.airQualityHomekitReading).toBe(1); }); test('Nearby 156 LRAPA', () => { const reading = (0, SensorReading_1.parsePurpleAirJson)(test_62393_json_1.default, 'realtime', 'LRAPA'); expect(reading.pm25).toBe(8.7); expect(reading.aqi).toBe(15); expect(reading.airQualityHomekitReading).toBe(1); }); test('Nearby 90 None', () => { const reading = (0, SensorReading_1.parsePurpleAirJson)(test_67533_json_1.default, 'realtime', 'None'); expect(reading.pm25).toBe(3.3); expect(reading.aqi).toBe(14); expect(reading.airQualityHomekitReading).toBe(1); }); test('Nearby 81 EPA', () => { const reading = (0, SensorReading_1.parsePurpleAirJson)(test_67533_json_1.default, 'realtime', 'AQandU'); expect(reading.pm25).toBe(3.3); expect(reading.aqi).toBe(22); expect(reading.airQualityHomekitReading).toBe(1); }); test('Nearby 81 AQandU', () => { const reading = (0, SensorReading_1.parsePurpleAirJson)(test_67533_json_1.default, 'realtime', 'AQandU'); expect(reading.pm25).toBe(3.3); expect(reading.aqi).toBe(22); expect(reading.airQualityHomekitReading).toBe(1); }); test('Nearby 58 LRAPA', () => { const reading = (0, SensorReading_1.parsePurpleAirJson)(test_67533_json_1.default, 'realtime', 'LRAPA'); expect(reading.pm25).toBe(3.3); expect(reading.aqi).toBe(4); expect(reading.airQualityHomekitReading).toBe(1); }); test('Nearby 25 Woodsmoke', () => { const reading = (0, SensorReading_1.parsePurpleAirJson)(test_68495_json_1.default, 'realtime', 'WOODSMOKE'); expect(reading.pm25).toBe(2.2); expect(reading.aqi).toBe(7); }); test('Nearby 29 EPA', () => { const reading = (0, SensorReading_1.parsePurpleAirJson)(test_68495_json_1.default, 'realtime', 'EPA'); expect(reading.pm25).toBe(2.2); expect(reading.aqi).toBe(12); }); test('local inside sensor', () => { const reading = (0, SensorReading_1.parsePurpleAirJson)(test_local_inside_json_1.default, 'realtime', 'None', true); expect(reading.aqi).toBe(28); expect(reading.pm25).toBe(6.67); }); test('local outside sensor', () => { const reading = (0, SensorReading_1.parsePurpleAirJson)(test_local_outside_json_1.default, 'realtime', 'None', true); expect(reading.aqi).toBe(9); expect(reading.pm25).toBe(2.16); }); //# sourceMappingURL=SensorReading.test.js.map