난이도표 로딩 통합과 팩 키 모드 우선순위 정리

This commit is contained in:
2026-09-06 23:56:38 +09:00
parent 002a922e1b
commit cdc9cb7316
43 changed files with 998 additions and 775 deletions
+24 -3
View File
@@ -20,6 +20,25 @@ dotnet test ProjectQuint.Tests/ProjectQuint.Tests.csproj -c Release -p:RestoreLo
유니티 편집 모드와 .NET은 `Assets/ProjectQuint/Tests/Core`의 같은 테스트 파일을 사용합니다.
홈 화면 이동·프로필 선택·업데이트 상태 테스트 역시 유니티와 독립 실행에서 공유합니다.
## 라이브러리 설정과 채보 준비
키 모드는 명시적인 팩 설정, 난이도표 기본값, 채보 감지값 순서로 결정합니다.
`SongKeyModePolicy`가 이 우선순위를 소유하며 스캔, 곡 목록과 플레이용 채보 준비가
같은 규칙을 사용합니다. `SongLibraryEntry.KeyMode`에서 선택된 키 수와 결정 근거,
팩 설정과 난이도표 기본값의 충돌 여부를 확인할 수 있습니다.
충돌이 있으면 팩 설정을 유지하며, 인덱스·새로고침·플레이 진단 로그에 표시합니다.
`DifficultyTableRequest`는 등록한 제공자 ID와 HTTPS 주소를 보존합니다.
HTML 페이지의 헤더 링크는 그 페이지를 기준으로, 데이터 링크는 헤더 문서를 기준으로
해석합니다. `DifficultyTableLibrarySource`는 로컬 난이도표·코스 로딩과 온라인 갱신을 담당합니다.
`LibraryConfigurationTests`는 주소·상대 경로 해석, 키 모드 충돌과 반복적인 난이도표 적용을
검증합니다. `SongChartPreparationTests`는 합성 BMS 파일을 실제 게임의 파서·변환기로 읽어
최종 플레이용 채보의 키 수와 레인 배치까지 확인합니다. 음악 파일은 필요하지 않습니다.
두 테스트 묶음은 독립 테스트에서 실행하지만 실제 HTTP 요청이나 유니티 캐시 직렬화를
실행하지는 않습니다. 최초 스캔·캐시 재사용·키 모드 변경 시 캐시 무효화는
유니티 `SongLibraryScannerTests`의 검증 범위입니다.
## 합성 입력 탐색
```bash
@@ -91,10 +110,12 @@ JIT 상태와 다른 프로세스의 부하에 따라 시간은 달라질 수
음악을 재배포하지 않는 범위에서 실제 플레이로 로딩 취소·다시 시작·장치 변경·프로필 화면을 확인해야 합니다.
자동화 서버에서의 연속 실행과 실제 플레이어 성능 측정은 별도 운영 범위입니다.
2026-09-06 검증에서는 독립 테스트 142개와 배포 도구 테스트 9개가 통과했습니다.
2026-09-06 검증에서는 독립 테스트 166개와 배포 도구 테스트 9개가 통과했습니다.
유니티 컴파일러를 이용한 어셈블리 11개의 컴파일도 확인했습니다.
유니티 Test Runner는 유효한 에디터 라이선스가 없어 테스트 시작 전에 종료되었으므로,
편집 모드 전체 테스트와 실제 플레이 검증은 완료된 것으로 기록하지 않습니다.
유니티 Test Runner의 편집 모드 테스트는 891개 중 887개가 통과했고 실패는 없었습니다.
외부 BMS 자료가 필요한 통합 테스트 4개는 자료가 없어 건너뛰었습니다.
최초 스캔·캐시 재사용 시 명시적인 키 모드 보존과 키 모드 변경 시 캐시 무효화 테스트도
통과했습니다. 실제 화면·입력·오디오를 함께 확인하는 플레이 검증은 별도로 수행해야 합니다.
앱의 업데이트와 프로필 상태는 독립 컨트롤러가 소유하지만,
팩 관리·오디오 설정·화면 연결을 조정하는 코드는 아직 큰 앱 클래스에 남아 있습니다.