게시판 인덱스

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

project3의 check_cmd 테스트 셋 입니다.

 
글 쓰기   답변 달기     게시판 인덱스 -> 4190.210 Principles of Programming (Fall 2012)
이전 주제 보기 :: 다음 주제 보기  
글쓴이 메시지
김남현



가입: 2012년 9월 14일
올린 글: 19

올리기올려짐: 2012년12월20일 12:33    주제: project3의 check_cmd 테스트 셋 입니다. 인용과 함께 답변

코드:

exception NOT_EXIST_CMDS

let rec seq_cmds cmds =
    if (List.length cmds)=2 then Trans.Seq ((List.nth cmds 0), (List.nth cmds 1))
    else if (List.length cmds)>2 then Trans.Seq ((List.hd cmds), (seq_cmds (List.tl cmds)))
    else raise NOT_EXIST_CMDS

let a = seq_cmds [(Trans.HasRead "x");(Trans.Tag ("lp",(Trans.Say "x")));(Trans.Goto ("lp","x"));(Trans.Say "x")]
let b = seq_cmds [(Trans.HasRead "zx");(Trans.HasVar ("x2","zx"));(Trans.Goto ("x6","x2"));(Trans.HasNum ("z",2));(Trans.HasVar ("x4","z"));(Trans.HasVar ("x1","x4"));(Trans.HasNum ("x5",1));(Trans.Goto ("x7","x5"));(Trans.Tag ("x6",(Trans.HasNum ("y",1))));(Trans.Goto ("l","x2"));(Trans.Tag ("x7",(Trans.HasVar ("x1","x1"))));(Trans.HasVar ("y","z"));(Trans.Tag ("l",(Trans.HasNum ("y1",1))));(Trans.HasSum("y","y","y1"));(Trans.Say "y")]
let c = seq_cmds [(Trans.HasNum ("x",1));(Trans.HasSum ("y","x","x"));(Trans.HasSum ("z","y","z"));(Trans.Say "z")] (* z변수 값 존재 안함 *)
let d = seq_cmds [(Trans.HasRead "x");(Trans.Tag ("lp",(Trans.Say "x")));(Trans.Goto ("lp","x"));(Trans.Say "x");(Trans.HasNum ("z",4));(Trans.Tag ("lp",(Trans.Say "x")));(Trans.Say "z")] (* lp 태그 두개 *)
let e = seq_cmds [(Trans.HasRead "zx");(Trans.HasVar ("x2","zx"));(Trans.Goto ("x6","x2"));(Trans.HasNum ("z",2));(Trans.HasVar ("x4","z"));(Trans.HasVar ("x1","x4"));(Trans.HasNum ("x5",1));(Trans.Goto ("x7","x5"));(Trans.Tag ("x6",(Trans.HasNum ("y",1))));(Trans.Goto ("l","x2"));(Trans.HasVar ("x1","x1"));(Trans.HasVar ("y","z"));(Trans.Tag ("l",(Trans.HasNum ("y1",1))));(Trans.HasSum("y","y","y1"));(Trans.Say "y")] (* x7 없음 *)
let f = seq_cmds [(Trans.HasRead "zx");(Trans.HasVar ("x2","zx"));(Trans.Goto ("x6","x2"));(Trans.HasNum ("z",2));(Trans.HasVar ("x4","z"));(Trans.HasVar ("x1","x4"));(Trans.HasNum ("x5",0));(Trans.Goto ("x7","x5"));(Trans.Tag ("x6",(Trans.HasNum ("y",1))));(Trans.Goto ("l","x2"));(Trans.HasVar ("x1","x1"));(Trans.HasVar ("y","z"));(Trans.Tag ("l",(Trans.HasNum ("y1",1))));(Trans.HasSum("y","y","y1"));(Trans.Say "y")] (* x7 없지만 분기안탐 *);;

true=(Trans.check_cmd a);;
true=(Trans.check_cmd b);;
false=(Trans.check_cmd c);;
false=(Trans.check_cmd d);;
false=(Trans.check_cmd e);;
true=(Trans.check_cmd f);;


조교님께서 올려주신 cmd를 바로 테스트해 볼 수 있도록 만들어봤어요.
a,b가 테스트로 올려주신 셋입니다.

나머지는 체크해야할 간단한 내용들 추가해봤어요.
c : z 변수의 값 존재안함
d : lp 태그 두개
e : x7 태그 존재안함
f : x7 테크 존재안하지만, 실제 goto문의 값이 0이라 체크할 필요 없음

혹시 이상한거 있으면 알려주세요!
위로
사용자 정보 보기 비밀 메시지 보내기
김유준



가입: 2012년 10월 19일
올린 글: 16

올리기올려짐: 2012년12월21일 11:21    주제: 감사합니다. 인용과 함께 답변

어제확인을 햇는데 답변깜빡햇네요 ㅋㅋ
잘되는거같아요 감사합니다!
위로
사용자 정보 보기 비밀 메시지 보내기
이전 글 표시:   
글 쓰기   답변 달기     게시판 인덱스 -> 4190.210 Principles of Programming (Fall 2012) 시간대: GMT + 9 시간(한국)
페이지 11

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


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