The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.
<!doctype html public "-//w3c//dtd html 4.0 transitional//en">
<html>
<head>
   <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
   <meta name="Author" content="Ward Cunningham">
   <meta name="GENERATOR" content="Mozilla/4.5 [en]C-CCK-MCD compaq  (Win98; U) [Netscape]">
   <title>Arithmetic</title>
</head>
<body>

<h1>
Integer Arithmetic</h1>

<p>The computer relies on arithmetic. Here we test a variety of arithmetic
operations expressed as 32 bit two's complement binary numbers (Java's
int).
<br>&nbsp;
<table BORDER COLS=6 CELLSPACING=0 CELLPADDING=3 >
<tr>
<td COLSPAN="6">eg.ArithmeticFixture</td>
</tr>

<tr>
<td>x</td>

<td>y</td>

<td>+</td>

<td>-</td>

<td>*</td>

<td>/</td>
</tr>

<tr>
<td>0</td>

<td>0</td>

<td bgcolor="#cfffcf">0</td>

<td bgcolor="#cfffcf">0</td>

<td bgcolor="#cfffcf">0</td>

<td bgcolor="#ffffcf">0<hr><pre>Illegal division by zero at lib/Test/C2FIT/eg/ArithmeticFixture.pm line 56.<br /></pre></td>
</tr>


<tr>
<td>1</td>

<td>2</td>

<td bgcolor="#cfffcf">3</td>

<td bgcolor="#cfffcf">-1</td>

<td bgcolor="#cfffcf">2</td>

<td bgcolor="#ffcfcf">0.5 <font size=-1 color="#c08080"><i>expected</i></font><hr>0 <font size=-1 color="#c08080"><i>actual</i></font></td>
</tr>

<tr>
<td>1</td>

<td>-1</td>

<td bgcolor="#cfffcf">0</td>

<td bgcolor="#cfffcf">2</td>

<td bgcolor="#cfffcf">-1</td>

<td bgcolor="#cfffcf">-1</td>
</tr>

<tr>
<td>10000</td>

<td>10000</td>

<td bgcolor="#cfffcf">20000</td>

<td bgcolor="#cfffcf">0</td>

<td bgcolor="#cfffcf">100000000</td>

<td bgcolor="#cfffcf">1</td>
</tr>

<tr>
<td>100000</td>

<td>100000</td>

<td bgcolor="#cfffcf">200000</td>

<td bgcolor="#cfffcf">0</td>

<td bgcolor="#cfffcf">10000000000</td>

<td bgcolor="#cfffcf">1</td>
</tr>

<tr>
<td>1000000</td>

<td>1000000</td>

<td bgcolor="#cfffcf">2000000</td>

<td bgcolor="#cfffcf">0</td>

<td bgcolor="#cfffcf">1000000000000</td>

<td bgcolor="#cfffcf">1</td>
</tr>
</table>

<br><br>
Now we try something similar using automatic type conversion offered by ColumnFixtures (BFL1).
<br><br>

<table BORDER CELLSPACING=0 CELLPADDING=3>
    <tr>
        <td colspan=5>eg.ArithmeticColumnFixture</td>
    </tr>
    <tr>
        <td>x</td>
        <td>y</td>
        <td>plus()</td>
        <td>times()</td>
        <td>divide()</td>
        <td>floating()</td>
    </tr>
    <tr>
        <td>2</td>
        <td>3</td>
        <td bgcolor="#cfffcf">5</td>
        <td bgcolor="#cfffcf">6</td>
        <td bgcolor="#cfffcf">0</td>
        <td bgcolor="#cfffcf">0.6666667</td>
    </tr>
    <tr>
        <td>0</td>
        <td>0</td>
        <td bgcolor="#cfffcf">0</td>
        <td bgcolor="#cfffcf">0</td>
        <td bgcolor="#cfffcf">error</td>
        <td bgcolor="#cfffcf">error</td>
    </tr>
    <tr>
        <td>0</td>
        <td>0</td>
        <td bgcolor="#cfffcf">0</td>
        <td bgcolor="#cfffcf">0</td>
        <td> <font color="#808080">error</font></td>
        <td> <font color="#808080">error</font></td>
    </tr>
    <tr>
        <td>200</td>
        <td>300</td>
        <td bgcolor="#cfffcf">500</td>
        <td bgcolor="#cfffcf">60000</td>
        <td bgcolor="#cfffcf">0</td>
        <td bgcolor="#cfffcf">0.6666667</td>
    </tr>
    <tr>
        <td>2</td>
        <td>3</td>
        <td bgcolor="#ffcfcf">10 <font size=-1 color="#c08080"><i>expected</i></font><hr>5 <font size=-1 color="#c08080"><i>actual</i></font></td>
        <td bgcolor="#ffcfcf">10 <font size=-1 color="#c08080"><i>expected</i></font><hr>6 <font size=-1 color="#c08080"><i>actual</i></font></td>
        <td bgcolor="#ffcfcf">10 <font size=-1 color="#c08080"><i>expected</i></font><hr>0 <font size=-1 color="#c08080"><i>actual</i></font></td>
    </tr>
    <tr>
        <td>200</td>
        <td>3</td>
        <td bgcolor="#ffcfcf">5 <font size=-1 color="#c08080"><i>expected</i></font><hr>203 <font size=-1 color="#c08080"><i>actual</i></font></td>
        <td bgcolor="#ffcfcf">6 <font size=-1 color="#c08080"><i>expected</i></font><hr>600 <font size=-1 color="#c08080"><i>actual</i></font></td>
        <td bgcolor="#ffcfcf">0 <font size=-1 color="#c08080"><i>expected</i></font><hr>66 <font size=-1 color="#c08080"><i>actual</i></font></td>
        <td bgcolor="#ffcfcf">0.6666667 <font size=-1 color="#c08080"><i>expected</i></font><hr>66.6666666666667 <font size=-1 color="#c08080"><i>actual</i></font></td>
    </tr>
    <tr>
        <td>2</td>
        <td>-3</td>
        <td bgcolor="#cfffcf">-1</td>
        <td bgcolor="#cfffcf">-6</td>
        <td bgcolor="#cfffcf">-0</td>
        <td bgcolor="#cfffcf">-0.6666667</td>
    </tr>
</table>

<br><br>


<table BORDER CELLSPACING=0 CELLPADDING=3>
<tr>
<td COLSPAN="2">fit.Summary</td>
</tr>
<tr bgcolor="#ffcfcf">
<td> <font color="#808080">counts</font></td>
<td> <font color="#808080">40 right, 8 wrong, 0 ignores, 1 exceptions</font></td></tr>
<tr>
<td> <font color="#808080">input file</font></td>
<td> <font color="#808080">input/arithmetic.html</font></td></tr>
<tr>
<td> <font color="#808080">input update</font></td>
<td> <font color="#808080">Sat Apr 22 22:26:16 2006</font></td></tr>
<tr>
<td> <font color="#808080">output file</font></td>
<td> <font color="#808080">output/arithmetic.html</font></td></tr>
<tr>
<td> <font color="#808080">run date</font></td>
<td> <font color="#808080">Wed May &nbsp;3 18:11:04 2006</font></td></tr>
<tr>
<td> <font color="#808080">run elapsed time</font></td>
<td> <font color="#808080"> 0 wallclock secs ( 0.02 usr + &nbsp;0.01 sys = &nbsp;0.03 CPU)</font></td></tr></table>



<p>Document prepaired by Ward Cunningham
<br>First Version July 11, 2002
<br>Last Update August 17, 2002
</body>
</html>