import { describe, expect, it } from 'vitest'; import { getDailyMortalityPct, getDailyMortalityStatus } from '../mortality.ts'; describe('getDailyMortalityPct', () => { it('returns null when values are missing or invalid', () => { expect(getDailyMortalityPct(null, 10000)).toBeNull(); expect(getDailyMortalityPct(undefined, 10000)).toBeNull(); expect(getDailyMortalityPct(10, null)).toBeNull(); expect(getDailyMortalityPct(10, 0)).toBeNull(); expect(getDailyMortalityPct(10, -100)).toBeNull(); }); it('calculates correct percentage', () => { expect(getDailyMortalityPct(5, 10000)).toBe(0.05); expect(getDailyMortalityPct(10, 10000)).toBe(0.1); }); }); describe('getDailyMortalityStatus', () => { it('returns na when mortalityToday is null or undefined', () => { expect(getDailyMortalityStatus(null, 10000)).toBe('na'); expect(getDailyMortalityStatus(undefined, 10000)).toBe('na'); }); it('returns ok when docInCount is null or 0', () => { expect(getDailyMortalityStatus(5, null)).toBe('ok'); expect(getDailyMortalityStatus(5, 0)).toBe('ok'); }); it('returns ok when daily mortality <= 0.05%', () => { // 0 out of 10,000 = 0% expect(getDailyMortalityStatus(0, 10000)).toBe('ok'); // 5 out of 10,000 = 0.05% expect(getDailyMortalityStatus(5, 10000)).toBe('ok'); // 10 out of 20,000 = 0.05% expect(getDailyMortalityStatus(10, 20000)).toBe('ok'); }); it('returns warning when daily mortality > 0.05% and < 0.10%', () => { // 6 out of 10,000 = 0.06% expect(getDailyMortalityStatus(6, 10000)).toBe('warning'); // 9 out of 10,000 = 0.09% expect(getDailyMortalityStatus(9, 10000)).toBe('warning'); }); it('returns critical when daily mortality >= 0.10%', () => { // 10 out of 10,000 = 0.10% expect(getDailyMortalityStatus(10, 10000)).toBe('critical'); // 25 out of 10,000 = 0.25% expect(getDailyMortalityStatus(25, 10000)).toBe('critical'); }); });