% realcalc.tex % % (C) Frank Buchholz, Jan. 1993 % e-mail: buchholz@lusty.informatik.uni-dortmund.de %% %% Type \test\bye %% \input realcalc % Test \catcode`@=11 \def\traceon{% \tracingonline \@ne \tracincommands \tw@ \tracingstats \tw@ \tracingpages \@ne \tracingoutput \@ne \tracinglostchars \@ne \tracingmacros \tw@ \tracingparagraphs \@ne \tracingrestores \@ne \showboxbreadth \maxdimen \showboxdepth \maxdimen } \def\traceoff{% \tracingonline \@zero \tracingcommands \@zero \tracingstats \@zero \tracingpages \@zero \tracingoutput \@zero \tracinglostchars \@zero \tracingmacros \@zero \tracingparagraphs \@zero \tracingrestores \@zero \showboxbreadth \maxdimen \showboxdepth \maxdimen } \errorstopmode \let\sl=\showlists \let\st=\showthe \let\s=\show \def\e{\par \vfill \supereject} \def\test{% \message{Test REALCALC.TEX \@Rversion:} Test REALCALC.TEX \@Rversion\par\medskip \testadd\medskip \testsub\medskip \testmul\medskip \testdiv\medskip \testneg\medskip \testtrunc\medskip \testifle\medskip \testifeq\medskip \testifgt\medskip \testifneg\medskip \testifzero\medskip \testifpos\medskip \testifint\medskip } \def\testadd{% \message{Radd} Test: Radd\par \def\a{1234.5678} \def\b{4321.8765} \Radd\r{123456789.987654321}{4321.123456789} \r={123461111.111111110}\par \Radd\r\a\b \r={5556.4443}\par \Radd\r{-\a}\b \r={3087.3087}\par \Radd\r\a{-\b} \r={-3087.3087}\par \Radd\r{-\a}{-\b} \r={-5556.4443}\par } \def\testsub{% \message{Rsub} Test: Rsub\par \def\a{1234.5678} \def\b{4321.8765} \Rsub\r\a{-\b} \r={5556.4443}\par \Rsub\r{-\a}{-\b} \r={3087.3087}\par \Rsub\r\a\b \r={-3087.3087}\par \Rsub\r{-\a}\b \r={-5556.4443}\par } \def\testmul{% \message{Rmul} Test: Rmul\par \def\a{1234} \def\b{4321} \Rmul\r{\a}{\b} \Rtrunc\r0\r \r={5332114}\par \Rmul\r{-\a}{\b} \Rtrunc\r0\r \r={-5332114}\par \Rmul\r{\a}{-\b} \Rtrunc\r0\r \r={-5332114}\par \Rmul\r{-\a}{-\b} \Rtrunc\r0\r \r={5332114}\par \Rmul\r\a0 \Rtrunc\r0\r \r={0}\par \Rmul\r0\a \Rtrunc\r0\r \r={0}\par \Rmul\r00 \Rtrunc\r0\r \r={0}\par \Rmul\r\a1 \Rtrunc\r0\r \r={\a}\par \Rmul\r1\a \Rtrunc\r0\r \r={\a}\par \Rmul\r11 \Rtrunc\r0\r \r={1}\par \Rmul\r\a{-1} \Rtrunc\r0\r \r={-\a}\par \Rmul\r{-1}\a \Rtrunc\r0\r \r={-\a}\par \Rmul\r{-1}{-1} \Rtrunc\r0\r \r={1}\par \Rmul\r{46340.123456789}{10.123456789}\r={469122.2374}\par \Rmul\r{46340.123456789}{1}\r={46340.123456789}\par \Rmul\r{46340.123456789}{100}\r={4634012.3456789}\par \Rmul\r{0.5}{0.5} \r={0.25}\par \Rmul\r\r\r \r={0.0625}\par \Rmul\r\r\r \r={0.00390625}\par \Rmul\r\r\r \r={0.000015258}\par \Rmul\r\r\r \r={0}\par \Rmul\r{1.6}{1.6} \r={2.56}\par \Rmul\r\r\r \r={6.5536}\par \Rmul\r\r\r \r={42.94967296}\par \Rmul\r\r\r \r={1844.674407}\par \Rmul\r\r\r \r={3402823.669}\par } \def\testdiv{% \message{Rdiv} Test: Rdiv\par not ready\par } \def\testneg{% \message{Rneg} Test: Rneg\par -\ 0 = \Rneg\r{0}\r\par -\ -1 = \Rneg\r{-1}\r\par -\ 1 = \Rneg\r{1}\r\par -\ 0.5 = \Rneg\r{0.5}\r\par -\ -0.5 = \Rneg\r{-0.5}\r\par -\ -1234.5678 = \Rneg\r{-1234.5678}\r\par -\ 1234.5678 = \Rneg\r{1234.5678}\r\par } \def\testtrunc{% \message{Rtrunc} Test: Rtrunc\par \def\a{12345.123456789012345} 0:\ \Rtrunc\r0\a\r\ \Rtrunc\r00\r\par 1:\ \Rtrunc\r1\a\r\ \Rtrunc\r10\r\par 2:\ \Rtrunc\r2\a\r\ \Rtrunc\r20\r\par 3:\ \Rtrunc\r3\a\r\ \Rtrunc\r30\r\par 4:\ \Rtrunc\r4\a\r\ \Rtrunc\r40\r\par 5:\ \Rtrunc\r5\a\r\ \Rtrunc\r50\r\par 6:\ \Rtrunc\r6\a\r\ \Rtrunc\r60\r\par 7:\ \Rtrunc\r7\a\r\ \Rtrunc\r70\r\par 8:\ \Rtrunc\r8\a\r\ \Rtrunc\r80\r\par 9:\ \Rtrunc\r9\a\r\ \Rtrunc\r90\r\par } \def\testifle{% \message{Rifle} Test: Rifle\par 0 $<$ 0 \Rifle{0}{0} fehler\else ok\fi\par 0 $<$ 1 \Rifle{0}{1} ok\else fehler\fi\par 1 $<$ 0 \Rifle{1}{0} fehler\else ok\fi\par 1 $<$ 1 \Rifle{1}{1} fehler\else ok\fi\par 1 $<$ 2 \Rifle{1}{2} ok\else fehler\fi\par 2 $<$ 1 \Rifle{2}{1} fehler\else ok\fi\par 0 $<$ -1 \Rifle{0}{-1} fehler\else ok\fi\par -1 $<$ 0 \Rifle{-1}{0} ok\else fehler\fi\par -1 $<$ -1 \Rifle{-1}{-1} fehler\else ok\fi\par -1 $<$ -2 \Rifle{-1}{-2} fehler\else ok\fi\par -2 $<$ -1 \Rifle{-2}{-1} ok\else fehler\fi\par 1 $<$ 1.2 \Rifle{1}{1.2} ok\else fehler\fi\par 1.2 $<$ 1 \Rifle{1.2}{1} fehler\else ok\fi\par -1 $<$ -1.2 \Rifle{-1}{-1.2} fehler\else ok\fi\par -1.2 $<$ -1 \Rifle{-1.2}{-1} ok\else fehler\fi\par 0.1 $<$ 0.1 \Rifle{0.1}{0.1} fehler\else ok\fi\par 0.1 $<$ 0.2 \Rifle{0.1}{0.2} ok\else fehler\fi\par 0.2 $<$ 0.1 \Rifle{0.2}{0.1} fehler\else ok\fi\par -0.1 $<$ -0.2 \Rifle{-0.1}{-0.2} fehler\else ok\fi\par -0.1 $<$ -0.1 \Rifle{-0.1}{-0.1} fehler\else ok\fi\par -0.2 $<$ -0.1 \Rifle{-0.2}{-0.1} ok\else fehler\fi\par } \def\testifeq{% \message{Rifeq} Test: Rifeq\par 0 = 0 \Rifeq{0}{0} ok\else fehler\fi\par 0 = 1 \Rifeq{0}{1} fehler\else ok\fi\par 1 = 0 \Rifeq{1}{0} fehler\else ok\fi\par 1 = 1 \Rifeq{1}{1} ok\else fehler\fi\par 1 = 2 \Rifeq{1}{2} fehler\else ok\fi\par 2 = 1 \Rifeq{2}{1} fehler\else ok\fi\par 0 = -1 \Rifeq{0}{-1} fehler\else ok\fi\par -1 = 0 \Rifeq{-1}{0} fehler\else ok\fi\par -1 = -1 \Rifeq{-1}{-1} ok\else fehler\fi\par -1 = -2 \Rifeq{-1}{-2} fehler\else ok\fi\par -2 = -1 \Rifeq{-2}{-1} fehler\else ok\fi\par 1 = 1.2 \Rifeq{1}{1.2} fehler\else ok\fi\par 1.2 = 1 \Rifeq{1.2}{1} fehler\else ok\fi\par -1 = -1.2 \Rifeq{-1}{-1.2} fehler\else ok\fi\par -1.2 = -1 \Rifeq{-1.2}{-1} fehler\else ok\fi\par 0.1 = 0.1 \Rifeq{0.1}{0.1} ok\else fehler\fi\par 0.1 = 0.2 \Rifeq{0.1}{0.2} fehler\else ok\fi\par 0.2 = 0.1 \Rifeq{0.2}{0.1} fehler\else ok\fi\par -0.1 = -0.2 \Rifeq{-0.1}{-0.2} fehler\else ok\fi\par -0.1 = -0.1 \Rifeq{-0.1}{-0.1} ok\else fehler\fi\par -0.2 = -0.1 \Rifeq{-0.2}{-0.1} fehler\else ok\fi\par } \def\testifgt{% \message{Rifgt} Test: Rifgt\par 0 $>$ 0 \Rifgt{0}{0} fehler\else ok\fi\par 0 $>$ 1 \Rifgt{0}{1} fehler\else ok\fi\par 1 $>$ 0 \Rifgt{1}{0} ok\else fehler\fi\par 1 $>$ 1 \Rifgt{1}{1} fehler\else ok\fi\par 1 $>$ 2 \Rifgt{1}{2} fehler\else ok\fi\par 2 $>$ 1 \Rifgt{2}{1} ok\else fehler\fi\par 0 $>$ -1 \Rifgt{0}{-1} ok\else fehler\fi\par -1 $>$ 0 \Rifgt{-1}{0} fehler\else ok\fi\par -1 $>$ -1 \Rifgt{-1}{-1} fehler\else ok\fi\par -1 $>$ -2 \Rifgt{-1}{-2} ok\else fehler\fi\par -2 $>$ -1 \Rifgt{-2}{-1} fehler\else ok\fi\par 1 $>$ 1.2 \Rifgt{1}{1.2} fehler\else ok\fi\par 1.2 $>$ 1 \Rifgt{1.2}{1} ok\else fehler\fi\par -1 $>$ -1.2 \Rifgt{-1}{-1.2} ok\else fehler\fi\par -1.2 $>$ -1 \Rifgt{-1.2}{-1} fehler\else ok\fi\par 0.1 $>$ 0.1 \Rifgt{0.1}{0.1} fehler\else ok\fi\par 0.1 $>$ 0.2 \Rifgt{0.1}{0.2} fehler\else ok\fi\par 0.2 $>$ 0.1 \Rifgt{0.2}{0.1} ok\else fehler\fi\par -0.1 $>$ -0.2 \Rifgt{-0.1}{-0.2} ok\else fehler\fi\par -0.1 $>$ -0.1 \Rifgt{-0.1}{-0.1} fehler\else ok\fi\par -0.2 $>$ -0.1 \Rifgt{-0.2}{-0.1} fehler\else ok\fi\par } \def\testifneg{% \message{Rifneg} Test: Rifneg\par 0: \Rifneg{0} fehler\else ok\fi\par 0.5: \Rifneg{0.5} fehler\else ok\fi\par .5: \Rifneg{.5} fehler\else ok\fi\par 1: \Rifneg{1} fehler\else ok\fi\par -0: \Rifneg{-0} fehler\else ok\fi\par -0.5: \Rifneg{-0.5} ok\else fehler\fi\par -1: \Rifneg{-1} ok\else fehler\fi\par } \def\testifzero{% \message{Rifzero} Test: Rifzero\par 0: \Rifzero{0} ok\else fehler\fi\par 0.5: \Rifzero{0.5} fehler\else ok\fi\par .5: \Rifzero{.5} fehler\else ok\fi\par 1: \Rifzero{1} fehler\else ok\fi\par -0: \Rifzero{-0} ok\else fehler\fi\par -0.5: \Rifzero{-0.5} fehler\else ok\fi\par -1: \Rifzero{-1} fehler\else ok\fi\par } \def\testifpos{% \message{Rifpos} Test: Rifpos\par 0: \Rifpos{0} ok\else fehler\fi\par 0.5: \Rifpos{0.5} ok\else fehler\fi\par .5: \Rifpos{.5} ok\else fehler\fi\par 1: \Rifpos{1} ok\else fehler\fi\par -0: \Rifpos{-0} ok\else fehler\fi\par -0.5: \Rifpos{-0.5} fehler\else ok\fi\par -1: \Rifpos{-1} fehler\else ok\fi\par } \def\testifint{% \message{Rifint} Test: Rifint\par 0: \Rifint{0} ok\else fehler\fi\par -0: \Rifint{-0} ok\else fehler\fi\par 1: \Rifint{1} ok\else fehler\fi\par -1: \Rifint{-1} ok\else fehler\fi\par 0.5: \Rifint{0.5} fehler\else ok\fi\par -0.5: \Rifint{-0.5} fehler\else ok\fi\par 1.5: \Rifint{1.5} fehler\else ok\fi\par -1.5: \Rifint{-1.5} fehler\else ok\fi\par }