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*) *)
|