| shwlinux 
 
 
 가입: 2011년 9월 26일
 올린 글: 39
 
 
 | 
			
				|  올려짐: 2011년12월8일 15:14    주제: (추가)8-4 테스트셋 입니다. |   |  
				| 
 |  
				|  	  | 코드: |  	  | module A = BasicFrame(struct let design = TURTLE end) module B = BasicFrame(struct let design = WAVE end)
 module Ap = Rotate(A)
 module App = Rotate(Ap)
 module Bp = Rotate(B)
 module Bpp = Rotate(Bp)
 module A4 = Glue (A) (B) (Ap) (Bp)
 module B4 = Glue (A) (Ap) (B) (Bp)
 module A4p = Rotate(A4)
 module B4p = Rotate(B4)
 module C = Glue (A4) (B4) (A4p) (B4p)
 module D = Glue (C) (Rotate (C)) (Rotate (Rotate (C))) (Rotate (Rotate (Rotate (C))))
 module E = Glue (Rotate (C)) (Rotate (Rotate (Rotate (C)))) (C) (C)
 
 
 
 let _ =
 if (A.box = BOX (NW, TURTLE)) then print_string "success : #1" else print_string "fail : #1" ;
 print_newline();
 if (B.box = BOX (NW, WAVE)) then print_string "success : #2" else print_string "fail : #2" ;
 print_newline();
 if (Ap.box = BOX (NE, TURTLE)) then print_string "success : #3" else print_string "fail : #3" ;
 print_newline();
 if (App.box = BOX (SE, TURTLE)) then print_string "success : #4" else print_string "fail : #4" ;
 print_newline();
 if (Bp.box = BOX (NE, WAVE)) then print_string "success : #5" else print_string "fail : #5" ;
 print_newline();
 if (Bpp.box = BOX (SE, WAVE)) then print_string "success : #6" else print_string "fail : #6" ;
 print_newline();
 if (A4.box = GLUED (BOX (NW, TURTLE), BOX (NW, WAVE), BOX (NE, TURTLE), BOX (NE, WAVE))) then print_string "success : #7" else print_string "fail : #7" ;
 print_newline();
 if (B4.box = GLUED (BOX (NW, TURTLE), BOX (NE, TURTLE), BOX (NW, WAVE), BOX (NE, WAVE))) then print_string "success : #8" else print_string "fail : #8" ;
 print_newline();
 if (A4p.box = GLUED (BOX (SE, WAVE), BOX (NE, TURTLE), BOX (NE, WAVE), BOX (SE, TURTLE))) then print_string "success : #9" else print_string "fail : #9" ;
 print_newline();
 if (B4p.box = GLUED (BOX (SE, WAVE), BOX (NE, TURTLE), BOX (SE, TURTLE), BOX (NE, WAVE))) then print_string "success : #10" else print_string "fail : #10" ;
 print_newline();
 if (C.box = GLUED
 (GLUED (BOX (NW, TURTLE), BOX (NW, WAVE), BOX (NE, TURTLE), BOX (NE, WAVE)),
 GLUED (BOX (NW, TURTLE), BOX (NE, TURTLE), BOX (NW, WAVE), BOX (NE, WAVE)),
 GLUED (BOX (SE, WAVE), BOX (NE, TURTLE), BOX (NE, WAVE), BOX (SE, TURTLE)),
 GLUED (BOX (SE, WAVE), BOX (NE, TURTLE), BOX (SE, TURTLE), BOX (NE, WAVE)))) then print_string "success : #11" else print_string "fail : #11" ;
 
 print_newline();
 if (D.box = GLUED
 (GLUED
 (GLUED (BOX (NW, TURTLE), BOX (NW, WAVE), BOX (NE, TURTLE),
 BOX (NE, WAVE)),
 GLUED (BOX (NW, TURTLE), BOX (NE, TURTLE), BOX (NW, WAVE), BOX (NE, WAVE)),
 GLUED (BOX (SE, WAVE), BOX (NE, TURTLE), BOX (NE, WAVE), BOX (SE, TURTLE)),
 GLUED (BOX (SE, WAVE), BOX (NE, TURTLE), BOX (SE, TURTLE), BOX (NE, WAVE))),
 GLUED
 (GLUED (BOX (SE, WAVE), BOX (SW, WAVE), BOX (SE, TURTLE), BOX (SW, TURTLE)),
 GLUED (BOX (SE, WAVE), BOX (NE, TURTLE), BOX (NE, WAVE), BOX (SE, TURTLE)),
 GLUED (BOX (SE, WAVE), BOX (NE, TURTLE), BOX (SE, TURTLE), BOX (NE, WAVE)),
 GLUED (BOX (SW, TURTLE), BOX (SW, WAVE), BOX (SE, TURTLE), BOX (SE, WAVE))),
 GLUED
 (GLUED (BOX (SW, WAVE), BOX (NW, TURTLE), BOX (NW, WAVE), BOX (SW, TURTLE)),
 GLUED (BOX (NW, TURTLE), BOX (SW, WAVE), BOX (NW, WAVE), BOX (SW, TURTLE)),
 GLUED (BOX (SW, TURTLE), BOX (SW, WAVE), BOX (SE, TURTLE), BOX (SE, WAVE)),
 GLUED (BOX (SE, WAVE), BOX (SW, WAVE), BOX (SE, TURTLE), BOX (SW, TURTLE))),
 GLUED
 (GLUED (BOX (NW, TURTLE), BOX (SW, WAVE), BOX (NW, WAVE), BOX (SW, TURTLE)),
 GLUED (BOX (NW, TURTLE), BOX (NW, WAVE), BOX (NE, TURTLE), BOX (NE, WAVE)),
 GLUED (BOX (NW, TURTLE), BOX (NE, TURTLE), BOX (NW, WAVE), BOX (NE, WAVE)),
 GLUED (BOX (SW, WAVE), BOX (NW, TURTLE), BOX (NW, WAVE), BOX (SW, TURTLE))))
 ) then print_string "success : #12" else print_string "fail : #12" ;
 print_newline();
 if (E.box = GLUED
 (GLUED
 (GLUED (BOX (SE, WAVE), BOX (SW, WAVE), BOX (SE, TURTLE),
 BOX (SW, TURTLE)),
 GLUED (BOX (SE, WAVE), BOX (NE, TURTLE), BOX (NE, WAVE), BOX (SE, TURTLE)),
 GLUED (BOX (SE, WAVE), BOX (NE, TURTLE), BOX (SE, TURTLE), BOX (NE, WAVE)),
 GLUED (BOX (SW, TURTLE), BOX (SW, WAVE), BOX (SE, TURTLE), BOX (SE, WAVE))),
 GLUED
 (GLUED (BOX (NW, TURTLE), BOX (SW, WAVE), BOX (NW, WAVE), BOX (SW, TURTLE)),
 GLUED (BOX (NW, TURTLE), BOX (NW, WAVE), BOX (NE, TURTLE), BOX (NE, WAVE)),
 GLUED (BOX (NW, TURTLE), BOX (NE, TURTLE), BOX (NW, WAVE), BOX (NE, WAVE)),
 GLUED (BOX (SW, WAVE), BOX (NW, TURTLE), BOX (NW, WAVE), BOX (SW, TURTLE))),
 GLUED
 (GLUED (BOX (NW, TURTLE), BOX (NW, WAVE), BOX (NE, TURTLE), BOX (NE, WAVE)),
 GLUED (BOX (NW, TURTLE), BOX (NE, TURTLE), BOX (NW, WAVE), BOX (NE, WAVE)),
 GLUED (BOX (SE, WAVE), BOX (NE, TURTLE), BOX (NE, WAVE), BOX (SE, TURTLE)),
 GLUED (BOX (SE, WAVE), BOX (NE, TURTLE), BOX (SE, TURTLE), BOX (NE, WAVE))),
 GLUED
 (GLUED (BOX (NW, TURTLE), BOX (NW, WAVE), BOX (NE, TURTLE), BOX (NE, WAVE)),
 GLUED (BOX (NW, TURTLE), BOX (NE, TURTLE), BOX (NW, WAVE), BOX (NE, WAVE)),
 GLUED (BOX (SE, WAVE), BOX (NE, TURTLE), BOX (NE, WAVE), BOX (SE, TURTLE)),
 GLUED (BOX (SE, WAVE), BOX (NE, TURTLE), BOX (SE, TURTLE), BOX (NE, WAVE))))
 ) then print_string "success : #13" else print_string "fail : #13" ;
 print_newline();
 
 
 (*   E.rotate A.box;   (*NOT_GLUED_BOX*)   *)
 (*   A.rotate E.box;   (*NON_BASIC_BOX*)   *)
 
 
 
 | 
 
 숙제 맨 마지막에 나와있는 예제의 각 모듈들의 박스를 출력한 결과를
 
 제 것과 비교해보았습니다.
 
 12,13번은 숙제에는 나와 있는 예제는 아니지만 제가 한 번 예제들을 조합해서
 
 테스트셋을 만들어봤습니다.
 
 혹시 문제 있으면 알려주세요~
 
 (* 추가사항
 Glue.rotate를 통해 BasicFrame을 회전하려 한다던가
 BasicFrame.rotate 를 통해 Glued를 회전하려고 할 때 exception이 발생합니다.
 이에 따른 코드를 맨 아래에 추가하였습니다 *)
 
 shwlinux 가 2011년12월8일 18:03에 수정함, 총 1 번 수정됨
 |  |