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); + }); +}); diff --git a/src/ch01/sum.test.ts b/src/ch01/sum.test.ts index a1d041a..99513a8 100644 --- a/src/ch01/sum.test.ts +++ b/src/ch01/sum.test.ts @@ -1,5 +1,8 @@ -describe('sum', () => { - it('두 수가 주어지면 합의 결괏값을 리턴해야 한다.', () => { - expect(1 + 2).toBe(3); +const sumValue = (a: number, b: number) => a + b; + +describe('sumValue', () => { + it('두 수가 주어지면 합의 결과값을 리턴해야 한다.', () => { + expect(sumValue(1, 2)) + .toBe(3); }); });