diff --git a/README.md b/README.md
index 15bb106b5..9f2e551e7 100644
--- a/README.md
+++ b/README.md
@@ -1 +1,63 @@
# javascript-lotto-precourse
+
+## 필수 입출력 작성하기
+입력 : 로또 구입 금액, 당첨번호, 보너스 번호
+
+출력 : 각 항목 입력 안내
+
+
+## 로또 번호 생성 기능 추가
+로또 구입 금액을 전부 사용하여 1000원짜리 로또를 구매한 횟수만큼 로또 번호를 생성한다.
+이때의 로또 번호는 1~45의 숫자 6개를 중복없이 뽑는다.
+
+
+## 로또 번호 오름차순 정렬 및 출력 기능 추가
+랜덤하게 생성된 로또 번호들을 오름차순으로 정렬하여 출력하는 기능 추가
+ex) [8, 21, 23, 41, 42, 43]
+
+
+## Test용 로또 번호 목록 생성
+로또 번호와 관련된 기능을 테스트 하기 위한 번호를 미리 설정해둔다.
+
+
+## 당첨 여부 확인 기능 추가
+입력한 당첨번호와 생성한 로또 번호를 매칭하여 5등 이상 당첨 여부 확인 기능추가
+
+
+## 로또의 일치 숫자 개수 추출 기능 추가
+6자리 숫자들 중 당첨숫자와 일치하는 숫자들의 개수를 추출하여 반환하는 함수를 작성
+
+
+## 보너스 번호 당첨확인 기능 추가
+보너스 번호에 대해서 당첨을 확인하는 기능을 추가한다.
+
+
+## 당첨 내역 출력 기능 추가
+당첨번호, 보너스 번호와 일치하는 번호 개수에 따른 당첨 내역 출력 기능 추가
+> 1등: 6개 번호 일치 / 2,000,000,000원
+>
+> 2등: 5개 번호 + 보너스 번호 일치 / 30,000,000원
+>
+> 3등: 5개 번호 일치 / 1,500,000원
+>
+> 4등: 4개 번호 일치 / 50,000원
+>
+> 5등: 3개 번호 일치 / 5,000원
+
+
+## 총 수익률을 계산하여 출력하는 기능 추가
+로또 구입 금액, 당첨금액을 고려하여 계산하여 소수점 둘째 자리에서 반올림하여 나타낸다.
+
+
+## 적절한 입력 외 에러처리 기능추가
+> 로또 구입 금액 ; 1000원 단위여야 하고, 1000원으로 나누어 떨어져야한다.
+>
+> 당첨 번호 : 1~45의 중복되지 않는 숫자 6개를 쉼표로 구분하여 입력해야 한다.
+>
+> 보너스 번호 : 1~45의 중복되지 않는 숫자 1개이며, 당첨 번호와도 중복되지 않아야 한다.
+
+
+## 잘못된 입력시 다시 입력받는 기능추가
+Error 발생시키고, 다음 해당 지점부터 다시 입력받도록하는 기능을 추가한다.
+
+## Jest 테스트 코드 작성하기
diff --git a/__tests__/ApplicationTest.js b/__tests__/ApplicationTest.js
index 872380c9c..5c7039468 100644
--- a/__tests__/ApplicationTest.js
+++ b/__tests__/ApplicationTest.js
@@ -91,6 +91,8 @@ describe("로또 테스트", () => {
});
});
+
+
test("예외 테스트", async () => {
await runException("1000j");
});
diff --git a/__tests__/LottoTest.js b/__tests__/LottoTest.js
index 409aaf69b..87ae24107 100644
--- a/__tests__/LottoTest.js
+++ b/__tests__/LottoTest.js
@@ -14,5 +14,15 @@ describe("로또 클래스 테스트", () => {
}).toThrow("[ERROR]");
});
- // TODO: 추가 기능 구현에 따른 테스트 코드 작성
+ test("로또 번호에 숫자가 아닌 문자가 있으면 예외가 발생한다.", () => {
+ expect(() => {
+ new Lotto(['a', 'b', 'c', 'd', 'e', 'f']);
+ }).toThrow("[ERROR]");
+ });
+
+ test("로또 번호에 숫자 범위가 1-45가 아닌 경우 예외가 발생한다.", () => {
+ expect(() => {
+ new Lotto([0, -1, 24, 48, 49, 52]);
+ }).toThrow("[ERROR]");
+ });
});
diff --git a/coverage/clover.xml b/coverage/clover.xml
new file mode 100644
index 000000000..c2ae0e8d9
--- /dev/null
+++ b/coverage/clover.xml
@@ -0,0 +1,46 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/coverage/coverage-final.json b/coverage/coverage-final.json
new file mode 100644
index 000000000..c48b2258a
--- /dev/null
+++ b/coverage/coverage-final.json
@@ -0,0 +1,2 @@
+{"C:\\Users\\newdy\\OneDrive\\바탕 화면\\wooaFreeCourse\\javascript-lotto-7\\src\\Lotto.js": {"path":"C:\\Users\\newdy\\OneDrive\\바탕 화면\\wooaFreeCourse\\javascript-lotto-7\\src\\Lotto.js","statementMap":{"0":{"start":{"line":8,"column":4},"end":{"line":8,"column":28}},"1":{"start":{"line":9,"column":4},"end":{"line":9,"column":29}},"2":{"start":{"line":10,"column":4},"end":{"line":10,"column":33}},"3":{"start":{"line":11,"column":4},"end":{"line":11,"column":35}},"4":{"start":{"line":12,"column":4},"end":{"line":12,"column":28}},"5":{"start":{"line":16,"column":4},"end":{"line":18,"column":5}},"6":{"start":{"line":17,"column":6},"end":{"line":17,"column":50}},"7":{"start":{"line":22,"column":4},"end":{"line":27,"column":6}},"8":{"start":{"line":23,"column":6},"end":{"line":25,"column":7}},"9":{"start":{"line":24,"column":8},"end":{"line":24,"column":52}},"10":{"start":{"line":26,"column":6},"end":{"line":26,"column":47}},"11":{"start":{"line":30,"column":4},"end":{"line":34,"column":6}},"12":{"start":{"line":31,"column":6},"end":{"line":33,"column":7}},"13":{"start":{"line":32,"column":8},"end":{"line":32,"column":55}},"14":{"start":{"line":38,"column":19},"end":{"line":38,"column":20}},"15":{"start":{"line":39,"column":19},"end":{"line":39,"column":21}},"16":{"start":{"line":40,"column":4},"end":{"line":44,"column":6}},"17":{"start":{"line":41,"column":6},"end":{"line":43,"column":7}},"18":{"start":{"line":42,"column":8},"end":{"line":42,"column":64}},"19":{"start":{"line":48,"column":4},"end":{"line":48,"column":42}},"20":{"start":{"line":48,"column":35},"end":{"line":48,"column":40}},"21":{"start":{"line":52,"column":14},"end":{"line":52,"column":19}},"22":{"start":{"line":53,"column":4},"end":{"line":58,"column":6}},"23":{"start":{"line":54,"column":6},"end":{"line":54,"column":39}},"24":{"start":{"line":55,"column":6},"end":{"line":57,"column":7}},"25":{"start":{"line":56,"column":8},"end":{"line":56,"column":19}},"26":{"start":{"line":59,"column":4},"end":{"line":59,"column":15}},"27":{"start":{"line":63,"column":22},"end":{"line":63,"column":23}},"28":{"start":{"line":64,"column":4},"end":{"line":68,"column":7}},"29":{"start":{"line":65,"column":6},"end":{"line":67,"column":7}},"30":{"start":{"line":66,"column":8},"end":{"line":66,"column":22}},"31":{"start":{"line":70,"column":4},"end":{"line":70,"column":23}},"32":{"start":{"line":74,"column":19},"end":{"line":74,"column":24}},"33":{"start":{"line":75,"column":4},"end":{"line":79,"column":7}},"34":{"start":{"line":76,"column":6},"end":{"line":78,"column":7}},"35":{"start":{"line":77,"column":8},"end":{"line":77,"column":24}},"36":{"start":{"line":80,"column":4},"end":{"line":80,"column":20}},"37":{"start":{"line":84,"column":4},"end":{"line":84,"column":25}}},"fnMap":{"0":{"name":"(anonymous_0)","decl":{"start":{"line":7,"column":2},"end":{"line":7,"column":3}},"loc":{"start":{"line":7,"column":23},"end":{"line":13,"column":3}},"line":7},"1":{"name":"(anonymous_1)","decl":{"start":{"line":21,"column":2},"end":{"line":21,"column":3}},"loc":{"start":{"line":21,"column":25},"end":{"line":28,"column":3}},"line":21},"2":{"name":"(anonymous_2)","decl":{"start":{"line":22,"column":16},"end":{"line":22,"column":17}},"loc":{"start":{"line":22,"column":30},"end":{"line":27,"column":5}},"line":22},"3":{"name":"(anonymous_3)","decl":{"start":{"line":29,"column":2},"end":{"line":29,"column":3}},"loc":{"start":{"line":29,"column":46},"end":{"line":35,"column":3}},"line":29},"4":{"name":"(anonymous_4)","decl":{"start":{"line":30,"column":16},"end":{"line":30,"column":17}},"loc":{"start":{"line":30,"column":30},"end":{"line":34,"column":5}},"line":30},"5":{"name":"(anonymous_5)","decl":{"start":{"line":37,"column":2},"end":{"line":37,"column":3}},"loc":{"start":{"line":37,"column":27},"end":{"line":45,"column":3}},"line":37},"6":{"name":"(anonymous_6)","decl":{"start":{"line":40,"column":16},"end":{"line":40,"column":17}},"loc":{"start":{"line":40,"column":23},"end":{"line":44,"column":5}},"line":40},"7":{"name":"(anonymous_7)","decl":{"start":{"line":47,"column":2},"end":{"line":47,"column":3}},"loc":{"start":{"line":47,"column":21},"end":{"line":49,"column":3}},"line":47},"8":{"name":"(anonymous_8)","decl":{"start":{"line":48,"column":27},"end":{"line":48,"column":28}},"loc":{"start":{"line":48,"column":35},"end":{"line":48,"column":40}},"line":48},"9":{"name":"(anonymous_9)","decl":{"start":{"line":51,"column":2},"end":{"line":51,"column":3}},"loc":{"start":{"line":51,"column":33},"end":{"line":60,"column":3}},"line":51},"10":{"name":"(anonymous_10)","decl":{"start":{"line":53,"column":19},"end":{"line":53,"column":20}},"loc":{"start":{"line":53,"column":29},"end":{"line":58,"column":5}},"line":53},"11":{"name":"(anonymous_11)","decl":{"start":{"line":62,"column":2},"end":{"line":62,"column":3}},"loc":{"start":{"line":62,"column":35},"end":{"line":71,"column":3}},"line":62},"12":{"name":"(anonymous_12)","decl":{"start":{"line":64,"column":32},"end":{"line":64,"column":33}},"loc":{"start":{"line":64,"column":45},"end":{"line":68,"column":5}},"line":64},"13":{"name":"(anonymous_13)","decl":{"start":{"line":73,"column":2},"end":{"line":73,"column":3}},"loc":{"start":{"line":73,"column":22},"end":{"line":81,"column":3}},"line":73},"14":{"name":"(anonymous_14)","decl":{"start":{"line":75,"column":22},"end":{"line":75,"column":23}},"loc":{"start":{"line":75,"column":29},"end":{"line":79,"column":5}},"line":75},"15":{"name":"(anonymous_15)","decl":{"start":{"line":83,"column":2},"end":{"line":83,"column":3}},"loc":{"start":{"line":83,"column":13},"end":{"line":85,"column":3}},"line":83}},"branchMap":{"0":{"loc":{"start":{"line":16,"column":4},"end":{"line":18,"column":5}},"type":"if","locations":[{"start":{"line":16,"column":4},"end":{"line":18,"column":5}},{"start":{},"end":{}}],"line":16},"1":{"loc":{"start":{"line":23,"column":6},"end":{"line":25,"column":7}},"type":"if","locations":[{"start":{"line":23,"column":6},"end":{"line":25,"column":7}},{"start":{},"end":{}}],"line":23},"2":{"loc":{"start":{"line":31,"column":6},"end":{"line":33,"column":7}},"type":"if","locations":[{"start":{"line":31,"column":6},"end":{"line":33,"column":7}},{"start":{},"end":{}}],"line":31},"3":{"loc":{"start":{"line":31,"column":9},"end":{"line":31,"column":48}},"type":"binary-expr","locations":[{"start":{"line":31,"column":9},"end":{"line":31,"column":23}},{"start":{"line":31,"column":27},"end":{"line":31,"column":48}}],"line":31},"4":{"loc":{"start":{"line":41,"column":6},"end":{"line":43,"column":7}},"type":"if","locations":[{"start":{"line":41,"column":6},"end":{"line":43,"column":7}},{"start":{},"end":{}}],"line":41},"5":{"loc":{"start":{"line":41,"column":9},"end":{"line":41,"column":37}},"type":"binary-expr","locations":[{"start":{"line":41,"column":9},"end":{"line":41,"column":21}},{"start":{"line":41,"column":25},"end":{"line":41,"column":37}}],"line":41},"6":{"loc":{"start":{"line":55,"column":6},"end":{"line":57,"column":7}},"type":"if","locations":[{"start":{"line":55,"column":6},"end":{"line":57,"column":7}},{"start":{},"end":{}}],"line":55},"7":{"loc":{"start":{"line":65,"column":6},"end":{"line":67,"column":7}},"type":"if","locations":[{"start":{"line":65,"column":6},"end":{"line":67,"column":7}},{"start":{},"end":{}}],"line":65},"8":{"loc":{"start":{"line":76,"column":6},"end":{"line":78,"column":7}},"type":"if","locations":[{"start":{"line":76,"column":6},"end":{"line":78,"column":7}},{"start":{},"end":{}}],"line":76}},"s":{"0":2,"1":1,"2":1,"3":0,"4":0,"5":2,"6":1,"7":1,"8":5,"9":0,"10":5,"11":5,"12":30,"13":1,"14":0,"15":0,"16":0,"17":0,"18":0,"19":1,"20":5,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0,"27":0,"28":0,"29":0,"30":0,"31":0,"32":0,"33":0,"34":0,"35":0,"36":0,"37":0},"f":{"0":2,"1":1,"2":5,"3":5,"4":30,"5":0,"6":0,"7":1,"8":5,"9":0,"10":0,"11":0,"12":0,"13":0,"14":0,"15":0},"b":{"0":[1,1],"1":[0,5],"2":[1,29],"3":[30,6],"4":[0,0],"5":[0,0],"6":[0,0],"7":[0,0],"8":[0,0]},"_coverageSchema":"1a1c01bbd47fc00a2c39e90264f33305004495a9","hash":"ec056de4f933c393990fa4f512bd06b3cd26866f"}
+}
diff --git a/coverage/lcov-report/Lotto.js.html b/coverage/lcov-report/Lotto.js.html
new file mode 100644
index 000000000..adf5f0830
--- /dev/null
+++ b/coverage/lcov-report/Lotto.js.html
@@ -0,0 +1,355 @@
+
+
+
+
+