diff --git a/src/ch01/average.test.ts b/src/ch01/average.test.ts index 395dd8f..5e84cc6 100644 --- a/src/ch01/average.test.ts +++ b/src/ch01/average.test.ts @@ -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); + }); +});