MODULE TestQIO EXPORTS Main; (* Test the QGet and QPut modules *) (* Last edited on 1999-08-06 21:28:47 by hcgl *) IMPORT CPUTime, QGet, QPut, FGet, FPut, NPut; IMPORT OSError, Wr, Rd, FileWr, Fmt, FileRd, Thread; IMPORT PZTypes; FROM Stdio IMPORT stderr; <* FATAL OSError.E, Rd.Failure, Wr.Failure, Thread.Alerted *> CONST NTries = 10000; FNTries = FLOAT(NTries, LONG); PROCEDURE DoIt() = VAR start, stop: CPUTime.T; BEGIN WITH wr = FileWr.Open("test.txt") DO start := CPUTime.Now(); FOR i := 0 TO NTries DO Wr.PutChar(wr, ' '); END; stop := CPUTime.Now(); NPut.LongReal(stderr, "tare.xxxxxxxx", (stop - start)/FNTries); FPut.EOL(stderr); Wr.Close(wr); END; WITH wr = FileWr.Open("test.txt") DO start := CPUTime.Now(); FOR i := 0 TO NTries DO FPut.LongReal(wr, FLOAT(i, LONG)/100.0d0, 3, Fmt.Style.Fix); Wr.PutChar(wr, ' '); END; stop := CPUTime.Now(); NPut.LongReal(stderr, "FPut.LongReal", (stop - start)/FNTries); FPut.EOL(stderr); Wr.Close(wr); END; WITH wr = FileWr.Open("test.txt") DO start := CPUTime.Now(); FOR i := 0 TO NTries DO QPut.LongReal(wr, FLOAT(i, LONG)/100.0d0, 3, Fmt.Style.Fix); Wr.PutChar(wr, ' '); END; stop := CPUTime.Now(); NPut.LongReal(stderr, "QPut.LongReal", (stop - start)/FNTries); FPut.EOL(stderr); Wr.Close(wr); END; WITH rd = FileRd.Open("test.txt") DO start := CPUTime.Now(); FOR i := 0 TO NTries DO WITH v = FGet.LongReal(rd) DO IF ABS(v - FLOAT(i, LONG)/100.0d0) > 0.001d0 THEN Wr.PutText(stderr, "oops") END END; END; stop := CPUTime.Now(); NPut.LongReal(stderr, "FGet.LongReal", (stop - start)/FNTries); FPut.EOL(stderr); Rd.Close(rd); END; WITH rd = FileRd.Open("test.txt") DO start := CPUTime.Now(); FOR i := 0 TO NTries DO WITH v = QGet.LongReal(rd) DO IF ABS(v - FLOAT(i, LONG)/100.0d0) > 0.001d0 THEN Wr.PutText(stderr, "oops") END END; END; stop := CPUTime.Now(); NPut.LongReal(stderr, "QGet.LongReal", (stop - start)/FNTries); FPut.EOL(stderr); Rd.Close(rd); END; END DoIt; BEGIN DoIt() END TestQIO.