['01011111111', '01022222222'], // 누수 → 시설팀 3 => ['01033333333'], // 3번 → 고객센터 ]; // ── 1) 그룹 지정 센서 → 그 그룹 ── check(resolve_sensor_recipients(1, $groups, $global) === ['01011111111', '01022222222'], 'sensor 1 -> its own group'); check(resolve_sensor_recipients(3, $groups, $global) === ['01033333333'], 'sensor 3 -> its own group'); // ── 2) 미지정 센서 → 전역 폴백 ── check(resolve_sensor_recipients(2, $groups, $global) === $global, 'unlisted sensor 2 -> global fallback'); // ── 3) sid=0(시스템/헬스/잔액) → 전역 폴백 ── check(resolve_sensor_recipients(0, $groups, $global) === $global, 'sid 0 (system) -> global fallback'); // ── 4) 그룹 맵이 비면 전역 ── check(resolve_sensor_recipients(1, [], $global) === $global, 'empty groups -> global fallback'); if ($failures) { fwrite(STDERR, "Recipients group test failures:\n"); foreach ($failures as $f) { fwrite(STDERR, "- {$f}\n"); } exit(1); } echo "Recipients group resolution checks passed.\n";