diff --git a/src/averageTemperatureReading.ts b/src/averageTemperatureReading.ts new file mode 100644 index 0000000..cb1af66 --- /dev/null +++ b/src/averageTemperatureReading.ts @@ -0,0 +1,4 @@ +export function averageTemperatureReading(values: number[]): number { + if (values.length === 0) return 0; + return values.reduce((a, b) => a + b, 0) / values.length; +} diff --git a/src/test/averageTemperatureReading.test.ts b/src/test/averageTemperatureReading.test.ts new file mode 100644 index 0000000..e65f283 --- /dev/null +++ b/src/test/averageTemperatureReading.test.ts @@ -0,0 +1,16 @@ +import { describe, it, expect } from "vitest"; +import { averageTemperatureReading } from "../averageTemperatureReading"; + +describe("averageTemperatureReading", () => { + it("should return the average of multiple values", () => { + expect(averageTemperatureReading([10, 20, 30])).toBe(30); + }); + + it("should return the same value if only one element", () => { + expect(averageTemperatureReading([42])).toBe(42); + }); + + it("should return 0 for an empty array", () => { + expect(averageTemperatureReading([])).toBe(0); + }); +}); diff --git a/src/test/toggleLed.test.ts b/src/test/toggleLed.test.ts new file mode 100644 index 0000000..5e14bd4 --- /dev/null +++ b/src/test/toggleLed.test.ts @@ -0,0 +1,12 @@ +import { describe, it, expect } from "vitest"; +import { toggleLed } from "../toggleLed"; + +describe("toggleLed", () => { + it("should turn ON when currently OFF", () => { + expect(toggleLed(false)).toBe(true); + }); + + it("should turn OFF when currently ON", () => { + expect(toggleLed(true)).toBe(false); + }); +}); diff --git a/src/test/turnOnFan.test.ts b/src/test/turnOnFan.test.ts new file mode 100644 index 0000000..b0d598e --- /dev/null +++ b/src/test/turnOnFan.test.ts @@ -0,0 +1,21 @@ +import { describe, it, expect } from "vitest"; +import { turnOnFan } from "../turnOnFan"; + +describe("turnOnFan", () => { + it("should turn fan ON when temperature is above threshold", () => { + expect(turnOnFan(35)).toBe(true); + }); + + it("should keep fan OFF when temperature is below threshold", () => { + expect(turnOnFan(25)).toBe(false); + }); + + it("should keep fan OFF when temperature is exactly at the threshold", () => { + expect(turnOnFan(30)).toBe(false); + }); + + it("should use custom threshold if provided", () => { + expect(turnOnFan(50, 45)).toBe(true); + expect(turnOnFan(40, 45)).toBe(false); + }); +}); diff --git a/src/toggleLed.ts b/src/toggleLed.ts new file mode 100644 index 0000000..61d68b1 --- /dev/null +++ b/src/toggleLed.ts @@ -0,0 +1,3 @@ +export function toggleLed(state: boolean): boolean { + return !state; +} diff --git a/src/turnOnFan.ts b/src/turnOnFan.ts new file mode 100644 index 0000000..2ef56ef --- /dev/null +++ b/src/turnOnFan.ts @@ -0,0 +1,3 @@ +export function turnOnFan(temperature: number, threshold: number = 30): boolean { + return temperature > threshold; +}