memberBirth8 ok - YYYY-MM-DD 를 8자리로 ok - 이미 8자리면 그대로 nextBidFromLast ok - 이전 번호가 없으면 0001 ok - 빈 문자열도 0001 ok - 순번 +1 ok - 새해에는 1부터 다시 ok - 자리수 0 채우기 ok - 3글자 기관 코드 chooseNextBid ok - 옛 번호가 더 크면 그 다음 번호 ok - 순서와 상관없이 같은 결과 ok - 큰 쪽 기준 ok - 둘 다 없으면 0001 resolveMeasureFile ok - 03 은 linkband ok - 링크밴드 파일 경로 ok - 원본 파일명 ok - 01 은 light_soso ok - 02 도 light_soso ok - 소소 파일 경로 ok - 04 는 laxtha ok - 지원하지 않는 기기 번호 ok - 경로가 짧으면 null parsePythonOutput ok - { 로 시작하는 유효한 JSON 줄만 합친다 ok - 출력이 없으면 빈 배열 classifyReportResult ok - 정상 ok - 입력 문제 코드 ok - 리포트 생성 실패 코드 ok - 소소는 둘 다 실패면 분석 실패 ok - 소소는 하나만 실패하면 계속 ok - 링크밴드는 하나만 실패해도 분석 실패 ok - 링크밴드 마음 실패 ok - 락사는 하나만 실패하면 계속 ok - 락사는 둘 다 실패면 분석 실패 ok - 알 수 없는 기기는 엄격하게(하나만 실패해도) shellQuote ok - 공백 포함 ok - 작은따옴표 이스케이프 ok - 한글은 그대로 ok - 빈 값 buildMainPyCommand / buildDataQualityCommand ok - main.py 인자 순서(기존 mainUpload 와 동일) ok - dataQuality.py 인자 순서 39 passed, 0 failed