게시판 인덱스

 
 FAQFAQ   검색검색   멤버리스트멤버리스트   사용자 그룹사용자 그룹   사용자 등록하기사용자 등록하기 
 개인 정보개인 정보   비공개 메시지를 확인하려면 로그인하십시오비공개 메시지를 확인하려면 로그인하십시오   로그인로그인 

4-3 테스트케이스

 
글 쓰기   답변 달기     게시판 인덱스 -> 4190.310 Programming Languages (Fall 2017)
이전 주제 보기 :: 다음 주제 보기  
글쓴이 메시지
salt26



가입: 2017년 9월 5일
올린 글: 2

올리기올려짐: 2017년10월25일 22:28    주제: 4-3 테스트케이스 인용과 함께 답변

안녕하세요. 수강생 안단태입니다.
(실명으로 새로 가입하려고 했는데 가입 승인이 안 되었네요...)
"4-3. 탐사 준비"의 테스트케이스를 살짝 만들어 보았습니다.

코드:
(* Testcases *)

(* Print key type *)
let rec printK : key -> unit = fun k ->
    match k with
    | Bar -> print_string("-")
    | Node (k1, k2) ->
        print_string("(");
        printK(k1);
        print_string(",");
        printK(k2);
        print_string(")")
(* Print key list *)
let rec printKL : key list -> unit = fun kl ->
    match kl with
    | h::t ->
        printK(h);
        print_string("  ");
        printKL(t)
    | [] -> print_endline("")

let _ = printKL(getReady(End(NameBox "x")))
let _ = printKL(getReady(Guide("x", End(NameBox "x"))))
let _ = printKL(getReady(Branch(Guide("x", End(NameBox "x")), End(StarBox))))
let _ = printKL(getReady(Branch(Guide("x", End(NameBox "x")), Branch(Guide("y", End(NameBox "y")), End(StarBox)))))
let _ = printKL(getReady(Branch(Guide("x", End(NameBox "x")),Guide("y", End(NameBox "y")))))
let _ = printKL(getReady(Branch(End(NameBox "x"), End(StarBox))))
let _ = printKL(getReady(Branch(Branch(End(NameBox "x"), End(NameBox "y")), End(NameBox "y"))))
let _ = printKL(getReady(Guide("x", Guide("y", Branch(End(NameBox "x"), End(NameBox "y"))))))
let _ = printKL(getReady(Branch(Branch(End(NameBox "x"), End(StarBox)), Branch(End(NameBox "y"), End(NameBox "x")))))
(*let _ = printKL(getReady(Branch(Guide("x", Branch(End(NameBox "x"), End(NameBox "x"))), End(StarBox))))*)
(*let _ = printKL(getReady(Branch(Guide("x", Branch(End(NameBox "x"), End(NameBox "y"))), End(NameBox "y"))))*)
(*let _ = printKL(getReady(Branch(End(NameBox "x"), End(NameBox "x"))))*)
(*let _ = printKL(getReady(Branch(End(StarBox), End(StarBox))))*)
(*let _ = printKL(getReady(Branch(End(NameBox "x"), Guide("x", End(NameBox "x")))))*)


위 코드를 맨 뒤에 붙이고 돌려보셨을 때 다음과 같이 나오면 정상입니다. (같은 줄에서 나오는 순서는 상관 없습니다.)
코드:




(-,-)  - 
(-,-)  - 
(-,(-,-))  - 
(-,-)  - 
(-,(-,-))  -  ((-,(-,-)),-) 


맨 밑에 주석 처리된 5개의 테스트케이스는 IMPOSSIBLE 예외를 띄우는 테스트케이스입니다. 하나씩 주석을 해제하면서 돌려보시면 됩니다.

혹시 이상이 있으면 댓글로 지적해주시면 감사하겠습니다.
위로
사용자 정보 보기 비밀 메시지 보내기
김성국17



가입: 2017년 9월 15일
올린 글: 16

올리기올려짐: 2017년10월26일 12:15    주제: 인용과 함께 답변

주석 처리된 마지막 예는 IMPOSSIBLE이 아닌 것 같습니다.

일단 두 NameBox "x"가 서로 다른 모양의 열쇠를 갖을 수 있다고 봐야하지 않나 생각합니다.

같은 표지판으로 묶여 있는 경우에는, "[x] e1 에서 e1안의 x는 모두 a 모양이다" 라는 말이 있어,
e1안의 x는 모두 같은 열쇠(a)로 열린다는 단서가 있지만,

표지판으로 묶이지 않은 상자들의 경우 단순히 이름이 같다고 해서 같은 모양의 열쇠로 열려야 한다고 하는 것은 추가적인 단서를 다는 격이라 조금 부자연스럽지 않나 생각합니다.
위로
사용자 정보 보기 비밀 메시지 보내기
구본호



가입: 2017년 9월 9일
올린 글: 2

올리기올려짐: 2017년10월26일 14:13    주제: 인용과 함께 답변

과제 스펙에 보면 "같은 이름의 보물 상자는 같은 열쇠로 열린다." 라는 부분이 있습니다.
위로
사용자 정보 보기 비밀 메시지 보내기
이전 글 표시:   
글 쓰기   답변 달기     게시판 인덱스 -> 4190.310 Programming Languages (Fall 2017) 시간대: GMT + 9 시간(한국)
페이지 11

 
건너뛰기:  
새로운 주제를 올릴 수 없습니다
답글을 올릴 수 없습니다
주제를 수정할 수 없습니다
올린 글을 삭제할 수 없습니다
투표를 할 수 없습니다


Powered by phpBB 2.0.21-7 (Debian) © 2001, 2005 phpBB Group
Translated by kss & drssay