상수 ok - 리포트 연 한도 500 ok - 그룹 한도 5 차감 (EEG 와 PPG 가 모두 high 또는 middle) ok - high + middle 은 기본 한도에서 차감 ok - middle + high 은 차감 ok - 대소문자·공백은 무시 품질 미달: low·bad 가 하나라도 있으면 미차감 ok - low + high 은 품질 미달 ok - high + low 은 품질 미달 ok - bad + high 은 품질 미달 ok - high + bad 은 품질 미달 ok - low + bad 은 품질 미달 ok - 한쪽이 low 이고 한쪽이 비어도 품질 미달이 먼저 ok - 알 수 없는 값은 품질 미달 한쪽 미측정 ok - PPG 가 비면 미차감 ok - EEG 가 null 이면 미차감 ok - 둘 다 비어도 한쪽 미측정 사유 기본 한도 → 추가팩 순서 ok - 499건 차감됨 → 500번째는 기본 한도에서 차감 ok - 기본 한도를 다 쓰고 추가팩이 없으면 한도 초과 면제 ok - 이미 넘었어도 면제 ok - 기본 한도를 다 쓰면 추가팩에서 차감 ok - 기본 한도가 남아 있으면 추가팩이 있어도 기본 한도부터 ok - 추가팩도 다 쓰면 면제 ok - 품질 미달이면 추가팩도 차감하지 않는다 우선순위: 대리 생성 → 재생성 → 한도 없음 → 품질 → 한쪽 미측정 → 초과 ok - 대리 생성이 가장 먼저 ok - 재생성이 다음 ok - 계약이 없으면 한도 없음 ok - 품질 미달이 초과보다 먼저 ok - 한쪽 미측정이 초과보다 먼저 알림 단계 (limitLevel): 80 / 90 / 100 ok - 0건은 단계 없음 ok - 399/500 은 단계 없음 ok - 400/500(80%)은 80 단계 ok - 449/500 은 80 단계 ok - 450/500(90%)은 90 단계 ok - 499/500 은 90 단계 ok - 500/500 은 100 단계 ok - 넘어도 100 단계 ok - 한도 0 이면 모두 쓴 것으로 본다 ok - 추가팩이 없으면 기본 한도 기준 ok - 추가팩 500건이 있으면 전체 1000건 기준이라 500건은 50% ok - 전체 1000건 기준 800건은 80% 계약 기간 날짜 도우미 ok - 하이픈 형식 ok - 점 형식(달력 입력) ok - 앞뒤 공백은 무시 ok - 없는 날짜는 거부 ok - 다른 구분자는 거부 ok - 구분자 없는 형식은 거부 ok - 빈 값은 거부 ok - 기본 종료일 = 시작일 + 1년 - 1일 ok - 1월 1일 시작이면 12월 31일 종료 ok - 2028년은 윤년이라 2월 29일까지 49 passed, 0 failed