program tctest; uses Crt, TCG, TCProg; const Width = 12; var w: longint; wn, wo, wi, nm, nv: integer; go1, go2, gn1, gn2: TCG.Gate; i, j, d: integer; p: TCProg.Prog; begin { Test toss, print: } p.len := 10; if p.len > TCProg.MaxOps then p.len := TCProg.MaxOps; for i := 0 to p.len-1 do begin TCG.toss(Width, 6, 1, p.op[i]); TCG.print(output, Width, p.op[i]); writeln end; { Test the mismatch function: } for i := 0 to p.len -1 do begin writeln; for j := 0 to p.len-1 do begin d := TCProg.mismatch(p, p, i, j, 2); write(d:7) end end; { Test the simpl2 procedure: } for i := 1 to 1000 do begin nm := random(16); nv := random(16 - nm); TCG.toss(Width, nm, nv, go1); nm := random(16); nv := random(16 - nm); TCG.toss(Width, nm, nv, go2); gn1 := go1; gn2 := go2; TCG.simp2(gn1, gn2); wi := 0; for w := 0 to 256*256-1 do begin wo := TCG.eval(TCG.eval(wi, go1), go2); wn := TCG.eval(TCG.eval(wi, gn1), gn2); if wn <> wo then runerror; inc(wi); end; end; end.