Skip to content

Commit

Permalink
평균 계산 함수 리팩토링 및 테스트 추가
Browse files Browse the repository at this point in the history
- sum 함수를 재귀 함수로 변경하여 arr.length를 size 함수로 추출
- average 함수에서 sum 함수를 호출하도록 변경
- average 함수에 대한 테스트 코드 작성 및 검증
  • Loading branch information
jihwooon committed Jun 2, 2024
1 parent c20edfd commit 7afc1e7
Showing 1 changed file with 10 additions and 8 deletions.
18 changes: 10 additions & 8 deletions src/ch01/average.test.ts
Original file line number Diff line number Diff line change
@@ -1,11 +1,13 @@
const average = (arr: number[]) => {
let answer = 0;
const size = (arr: number[]) => arr.length;

for (let i = 0; i < arr.length; i++) {
answer += arr[i];
}
const sum = (arr: number[], index = 0) => (index === arr.length ? 0 : arr[index] + sum(arr, index + 1));

return answer / arr.length;
};
// 높은 수준의 추상화과 낮은 수준의 코드이면 동일한 추상화를 한다.
const average = (arr: number[], answer: number = 0) => sum(arr) / size(arr);

console.log(average([1, 2, 3, 4, 5])); // 결과값 : 3
describe('average', () => {
it('배열의 합의 평균값을 반환한다.', () => {
expect(average([1, 2, 3, 4, 5]))
.toBe(3);
});
});

0 comments on commit 7afc1e7

Please sign in to comment.