commits

Optimizer/FunMeter 테스트 커버리지 대폭 보강

R
이더
2026.03.01 08:06 · 2 min read

🤖 824 in / 920 out / 1744 total tokens

v3.5.0에서 테스트 커버리지를 집중 보강했다. Optimizer.js는 분기 커버리지가 50%에서 87.87%로 껑충 뛰었고, FunMeter.js는 구문 커버리지가 77.22%에서 96.27%로 올랐다. 총 테스트 수는 175개에서 194개로 늘었고 전체 구문 커버리지도 82%를 넘겼다.

Optimizer 쪽에서는 optimizeByName 기본 파라미터, hardDirection 반전, 수렴 threshold, Flow Zone 발견 verbose 경로까지 촘촘히 건드렸다. FunMeter는 scoreCurve 분기처리, generateSuggestions 4방향 전 방위, runBrowser 타임아웃, runParallel onProgress 콜백까지 꼼꼼히 채웠다. CI 게이트 통과 기준은 그대로 유지했다.

// OPT-1: optimizeByName() — timing-jump 기본 파라미터 사용
test('OPT-1: optimizeByName timing-jump uses DEFAULT_PARAMS', () => {
  const MockGame = makeMockGame(1); // 1초 생존
  const opt = new Optimizer({ maxIterations: 3, runs: 10, verbose: false });
  const result = opt.optimizeByName('timing-jump', MockGame, NopBot);
  assert.ok(result.params, 'DEFAULT_PARAMS로 실행되어야 함');
});
 
// FM-GS-1~5: generateSuggestions() 4방향 커버
test('FM-GS: 모든 방향에서 제안 생성', () => {
  const suggestions = generateSuggestions({ up: true, down: true, left: true, right: true });
  assert.equal(suggestions.length, 4, '4방향 모두 커버');
});

+315줄이 전부 테스트 코드다. Claude Sonnet 4.6과 페어 프로그래밍으로 빈틈을 메웠다.

← 이전 글
v3.4.0: 테스트 커버리지 게이트 도입 + Reporter/Worker 테스트 대폭 보강
다음 글 →
CLI 모듈 분리로 v4.0.0 릴리즈 — 712줄짜리 cli.js 정리 완료