The London Perl and Raku Workshop takes place on 26th Oct 2024. If your company depends on Perl, please consider sponsoring and/or attending.
<html xmlns:v="urn:schemas-microsoft-com:vml"
xmlns:o="urn:schemas-microsoft-com:office:office"
xmlns:w="urn:schemas-microsoft-com:office:word"
xmlns="http://www.w3.org/TR/REC-html40">

<head>
<meta http-equiv=Content-Type content="text/html; charset=us-ascii">
<meta name=ProgId content=Word.Document>
<meta name=Generator content="Microsoft Word 9">
<meta name=Originator content="Microsoft Word 9">
<link rel=File-List href="./AllPairs-Dateien/filelist.xml">
<link rel=Edit-Time-Data href="./AllPairs-Dateien/editdata.mso">
<!--[if !mso]>
<style>
v\:* {behavior:url(#default#VML);}
o\:* {behavior:url(#default#VML);}
w\:* {behavior:url(#default#VML);}
.shape {behavior:url(#default#VML);}
</style>
<![endif]-->
<title>Wiki: All Pairs</title>
<!--[if gte mso 9]><xml>
 <o:DocumentProperties>
  <o:Author>Martin Busik</o:Author>
  <o:LastAuthor>Martin Busik</o:LastAuthor>
  <o:Revision>2</o:Revision>
  <o:Created>2006-04-30T12:11:00Z</o:Created>
  <o:LastSaved>2006-04-30T12:11:00Z</o:LastSaved>
  <o:Pages>1</o:Pages>
  <o:Words>305</o:Words>
  <o:Characters>1744</o:Characters>
  <o:Company>Hogwarts</o:Company>
  <o:Lines>14</o:Lines>
  <o:Paragraphs>3</o:Paragraphs>
  <o:CharactersWithSpaces>2141</o:CharactersWithSpaces>
  <o:Version>9.3821</o:Version>
 </o:DocumentProperties>
</xml><![endif]-->
<style>
<!--
 /* Font Definitions */
@font-face
	{font-family:Wingdings;
	panose-1:5 0 0 0 0 0 0 0 0 0;
	mso-font-charset:2;
	mso-generic-font-family:auto;
	mso-font-pitch:variable;
	mso-font-signature:0 268435456 0 0 -2147483648 0;}
 /* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
	{mso-style-parent:"";
	margin:0cm;
	margin-bottom:.0001pt;
	mso-pagination:widow-orphan;
	font-size:12.0pt;
	font-family:"Times New Roman";
	mso-fareast-font-family:"Times New Roman";}
a:link, span.MsoHyperlink
	{color:#D06040;
	text-decoration:underline;
	text-underline:single;}
a:visited, span.MsoHyperlinkFollowed
	{color:#806040;
	text-decoration:underline;
	text-underline:single;}
p
	{font-size:12.0pt;
	font-family:"Times New Roman";
	mso-fareast-font-family:"Times New Roman";}
@page Section1
	{size:595.3pt 841.9pt;
	margin:70.85pt 70.85pt 2.0cm 70.85pt;
	mso-header-margin:35.4pt;
	mso-footer-margin:35.4pt;
	mso-paper-source:0;}
div.Section1
	{page:Section1;}
 /* List Definitions */
@list l0
	{mso-list-id:579945449;
	mso-list-type:hybrid;
	mso-list-template-ids:198362032 -522688268 -1010658292 500097488 1747850154 -1573244660 663140660 1937952700 -457164122 1837500028;}
@list l0:level1
	{mso-level-number-format:bullet;
	mso-level-text:\F0B7;
	mso-level-tab-stop:36.0pt;
	mso-level-number-position:left;
	text-indent:-18.0pt;
	mso-ansi-font-size:10.0pt;
	font-family:Symbol;}
@list l1
	{mso-list-id:790784490;
	mso-list-type:hybrid;
	mso-list-template-ids:758947072 2122978908 246171758 286177992 932189014 1323872684 -1850154262 -1479370294 1314143454 -1604309956;}
@list l1:level1
	{mso-level-number-format:bullet;
	mso-level-text:\F0B7;
	mso-level-tab-stop:36.0pt;
	mso-level-number-position:left;
	text-indent:-18.0pt;
	mso-ansi-font-size:10.0pt;
	font-family:Symbol;}
@list l2
	{mso-list-id:1607612477;
	mso-list-type:hybrid;
	mso-list-template-ids:-1665612040 -1160845870 1269302082 1254790144 1202071508 1587427110 397181584 748089446 -44126896 1134839936;}
@list l2:level1
	{mso-level-number-format:bullet;
	mso-level-text:\F0B7;
	mso-level-tab-stop:36.0pt;
	mso-level-number-position:left;
	text-indent:-18.0pt;
	mso-ansi-font-size:10.0pt;
	font-family:Symbol;}
@list l3
	{mso-list-id:1935091615;
	mso-list-type:hybrid;
	mso-list-template-ids:1752859504 -646949470 -1369279776 -2139161614 979668176 1889151396 -1135559688 -1347003014 1881986658 8817184;}
@list l3:level1
	{mso-level-number-format:bullet;
	mso-level-text:\F0B7;
	mso-level-tab-stop:36.0pt;
	mso-level-number-position:left;
	text-indent:-18.0pt;
	mso-ansi-font-size:10.0pt;
	font-family:Symbol;}
ol
	{margin-bottom:0cm;}
ul
	{margin-bottom:0cm;}
-->
</style>
<!--[if gte mso 9]><xml>
 <o:shapedefaults v:ext="edit" spidmax="1027"/>
</xml><![endif]--><!--[if gte mso 9]><xml>
 <o:shapelayout v:ext="edit">
  <o:idmap v:ext="edit" data="1"/>
 </o:shapelayout></xml><![endif]-->
</head>

<body bgcolor=white lang=EN-GB link="#d06040" vlink="#806040" style='tab-interval:
36.0pt'>

<div class=Section1>

<h1>All Pairs<o:p></o:p></h1>

<p class=MsoNormal><wiki>This is the third and final fixture of a suite that
make up the AllPairsExample. Like with AllFiles, we expand wildcard characters
in path specifications to get lists of tests. And, like in AllCombinations, we
enumerate cases drawing from these lists one test at a time in sequence. But
here our goal is only to test all possible pairs of test, which will require
fewer cases. </p>


<div class=MsoNormal align=center style='text-align:center'>

<hr size=2 width="100%" align=center>

</div>


<p>Here is the same specification we used to test the CalculatorExample in
AllCombinations. Try it using AllPairs. </p>

<p><a href="run.cgi">http:run.cgi</a> </p>

<table border=1 cellspacing=0 cellpadding=0 style='mso-cellspacing:0cm;
 mso-padding-alt:2.25pt 2.25pt 2.25pt 2.25pt'>
 <tr>
  <td colspan=2 style='padding:2.25pt 2.25pt 2.25pt 2.25pt'>
  <p class=MsoNormal>eg.AllPairs </p>
  </td>
 </tr>
 <tr>
  <td style='padding:2.25pt 2.25pt 2.25pt 2.25pt'>
  <p class=MsoNormal>input/AllPairs/magnitude/*.html </p>
  </td>
  <td style='padding:2.25pt 2.25pt 2.25pt 2.25pt'>
  <p class=MsoNormal>&nbsp;</p>
  </td>
 </tr>
 <tr>
  <td style='padding:2.25pt 2.25pt 2.25pt 2.25pt'>
  <p class=MsoNormal style='text-align:justify'>input/AllPairs/sign/*.html </p>
  </td>
  <td style='padding:2.25pt 2.25pt 2.25pt 2.25pt'>
  <p class=MsoNormal>&nbsp;</p>
  </td>
 </tr>
 <tr>
  <td style='padding:2.25pt 2.25pt 2.25pt 2.25pt'>
  <p class=MsoNormal>input/AllPairs/function/*.html </p>
  </td>
  <td style='padding:2.25pt 2.25pt 2.25pt 2.25pt'>
  <p class=MsoNormal>&nbsp;</p>
  </td>
 </tr>
<tr>
<td colspan=2> <font color="#808080">1</font></td></tr>
<tr>
<td> <font color="#808080">180+30.html</font></td>
<td bgcolor="#cfffcf"> <font color="#808080"></font> <font color="#808080">1 right, 0 wrong, 0 ignores, 0 exceptions</font></td></tr>
<tr>
<td> <font color="#808080">change-sign.html</font></td>
<td bgcolor="#cfffcf"> <font color="#808080"></font> <font color="#808080">0 right, 0 wrong, 0 ignores, 0 exceptions</font></td></tr>
<tr>
<td> <font color="#808080">cosine.html</font></td>
<td bgcolor="#cfffcf"> <font color="#808080"></font> <font color="#808080">1 right, 0 wrong, 0 ignores, 0 exceptions</font></td></tr>
<tr>
<td colspan=2> <font color="#808080">2</font></td></tr>
<tr>
<td> <font color="#808080">180+30.html</font></td>
<td bgcolor="#cfffcf"> <font color="#808080"></font> <font color="#808080">1 right, 0 wrong, 0 ignores, 0 exceptions</font></td></tr>
<tr>
<td> <font color="#808080">multiply.html</font></td>
<td bgcolor="#cfffcf"> <font color="#808080"></font> <font color="#808080">0 right, 0 wrong, 0 ignores, 0 exceptions</font></td></tr>
<tr>
<td> <font color="#808080">sine.html</font></td>
<td bgcolor="#cfffcf"> <font color="#808080"></font> <font color="#808080">1 right, 0 wrong, 0 ignores, 0 exceptions</font></td></tr>
<tr>
<td colspan=2> <font color="#808080">3</font></td></tr>
<tr>
<td> <font color="#808080">180+30.html</font></td>
<td bgcolor="#cfffcf"> <font color="#808080"></font> <font color="#808080">1 right, 0 wrong, 0 ignores, 0 exceptions</font></td></tr>
<tr>
<td> <font color="#808080">no-change.html</font></td>
<td bgcolor="#cfffcf"> <font color="#808080"></font> <font color="#808080">0 right, 0 wrong, 0 ignores, 0 exceptions</font></td></tr>
<tr>
<td> <font color="#808080">cosine.html</font></td>
<td bgcolor="#cfffcf"> <font color="#808080"></font> <font color="#808080">1 right, 0 wrong, 0 ignores, 0 exceptions</font></td></tr>
<tr>
<td colspan=2> <font color="#808080">4</font></td></tr>
<tr>
<td> <font color="#808080">30.html</font></td>
<td bgcolor="#cfffcf"> <font color="#808080"></font> <font color="#808080">1 right, 0 wrong, 0 ignores, 0 exceptions</font></td></tr>
<tr>
<td> <font color="#808080">change-sign.html</font></td>
<td bgcolor="#cfffcf"> <font color="#808080"></font> <font color="#808080">0 right, 0 wrong, 0 ignores, 0 exceptions</font></td></tr>
<tr>
<td> <font color="#808080">cosine.html</font></td>
<td bgcolor="#cfffcf"> <font color="#808080"></font> <font color="#808080">1 right, 0 wrong, 0 ignores, 0 exceptions</font></td></tr>
<tr>
<td colspan=2> <font color="#808080">5</font></td></tr>
<tr>
<td> <font color="#808080">30.html</font></td>
<td bgcolor="#cfffcf"> <font color="#808080"></font> <font color="#808080">1 right, 0 wrong, 0 ignores, 0 exceptions</font></td></tr>
<tr>
<td> <font color="#808080">multiply.html</font></td>
<td bgcolor="#cfffcf"> <font color="#808080"></font> <font color="#808080">0 right, 0 wrong, 0 ignores, 0 exceptions</font></td></tr>
<tr>
<td> <font color="#808080">sine.html</font></td>
<td bgcolor="#cfffcf"> <font color="#808080"></font> <font color="#808080">1 right, 0 wrong, 0 ignores, 0 exceptions</font></td></tr>
<tr>
<td colspan=2> <font color="#808080">6</font></td></tr>
<tr>
<td> <font color="#808080">30.html</font></td>
<td bgcolor="#cfffcf"> <font color="#808080"></font> <font color="#808080">1 right, 0 wrong, 0 ignores, 0 exceptions</font></td></tr>
<tr>
<td> <font color="#808080">no-change.html</font></td>
<td bgcolor="#cfffcf"> <font color="#808080"></font> <font color="#808080">0 right, 0 wrong, 0 ignores, 0 exceptions</font></td></tr>
<tr>
<td> <font color="#808080">sine.html</font></td>
<td bgcolor="#cfffcf"> <font color="#808080"></font> <font color="#808080">1 right, 0 wrong, 0 ignores, 0 exceptions</font></td></tr>
<tr>
<td colspan=2> <font color="#808080">7</font></td></tr>
<tr>
<td> <font color="#808080">360+30.html</font></td>
<td bgcolor="#cfffcf"> <font color="#808080"></font> <font color="#808080">1 right, 0 wrong, 0 ignores, 0 exceptions</font></td></tr>
<tr>
<td> <font color="#808080">change-sign.html</font></td>
<td bgcolor="#cfffcf"> <font color="#808080"></font> <font color="#808080">0 right, 0 wrong, 0 ignores, 0 exceptions</font></td></tr>
<tr>
<td> <font color="#808080">cosine.html</font></td>
<td bgcolor="#cfffcf"> <font color="#808080"></font> <font color="#808080">1 right, 0 wrong, 0 ignores, 0 exceptions</font></td></tr>
<tr>
<td colspan=2> <font color="#808080">8</font></td></tr>
<tr>
<td> <font color="#808080">360+30.html</font></td>
<td bgcolor="#cfffcf"> <font color="#808080"></font> <font color="#808080">1 right, 0 wrong, 0 ignores, 0 exceptions</font></td></tr>
<tr>
<td> <font color="#808080">multiply.html</font></td>
<td bgcolor="#cfffcf"> <font color="#808080"></font> <font color="#808080">0 right, 0 wrong, 0 ignores, 0 exceptions</font></td></tr>
<tr>
<td> <font color="#808080">sine.html</font></td>
<td bgcolor="#cfffcf"> <font color="#808080"></font> <font color="#808080">1 right, 0 wrong, 0 ignores, 0 exceptions</font></td></tr>
<tr>
<td colspan=2> <font color="#808080">9</font></td></tr>
<tr>
<td> <font color="#808080">360+30.html</font></td>
<td bgcolor="#cfffcf"> <font color="#808080"></font> <font color="#808080">1 right, 0 wrong, 0 ignores, 0 exceptions</font></td></tr>
<tr>
<td> <font color="#808080">no-change.html</font></td>
<td bgcolor="#cfffcf"> <font color="#808080"></font> <font color="#808080">0 right, 0 wrong, 0 ignores, 0 exceptions</font></td></tr>
<tr>
<td> <font color="#808080">cosine.html</font></td>
<td bgcolor="#cfffcf"> <font color="#808080"></font> <font color="#808080">1 right, 0 wrong, 0 ignores, 0 exceptions</font></td></tr>
<tr>
<td colspan=2> <font color="#808080">10</font></td></tr>
<tr>
<td> <font color="#808080">90-30.html</font></td>
<td bgcolor="#cfffcf"> <font color="#808080"></font> <font color="#808080">1 right, 0 wrong, 0 ignores, 0 exceptions</font></td></tr>
<tr>
<td> <font color="#808080">change-sign.html</font></td>
<td bgcolor="#cfffcf"> <font color="#808080"></font> <font color="#808080">0 right, 0 wrong, 0 ignores, 0 exceptions</font></td></tr>
<tr>
<td> <font color="#808080">cosine.html</font></td>
<td bgcolor="#ffcfcf">0 right, 1 wrong, 0 ignores, 0 exceptions[!]</td></tr>
<tr>
<td colspan=2> <font color="#808080">11</font></td></tr>
<tr>
<td> <font color="#808080">90-30.html</font></td>
<td bgcolor="#cfffcf"> <font color="#808080"></font> <font color="#808080">1 right, 0 wrong, 0 ignores, 0 exceptions</font></td></tr>
<tr>
<td> <font color="#808080">multiply.html</font></td>
<td bgcolor="#cfffcf"> <font color="#808080"></font> <font color="#808080">0 right, 0 wrong, 0 ignores, 0 exceptions</font></td></tr>
<tr>
<td> <font color="#808080">sine.html</font></td>
<td bgcolor="#ffcfcf">0 right, 1 wrong, 0 ignores, 0 exceptions[!]</td></tr>
<tr>
<td colspan=2> <font color="#808080">12</font></td></tr>
<tr>
<td> <font color="#808080">90-30.html</font></td>
<td bgcolor="#cfffcf"> <font color="#808080"></font> <font color="#808080">1 right, 0 wrong, 0 ignores, 0 exceptions</font></td></tr>
<tr>
<td> <font color="#808080">no-change.html</font></td>
<td bgcolor="#cfffcf"> <font color="#808080"></font> <font color="#808080">0 right, 0 wrong, 0 ignores, 0 exceptions</font></td></tr>
<tr>
<td> <font color="#808080">cosine.html</font></td>
<td bgcolor="#ffcfcf">0 right, 1 wrong, 0 ignores, 0 exceptions[!]</td></tr>
<tr>
<td colspan=2> <font color="#808080">13</font></td></tr>
<tr>
<td> <font color="#808080">180+30.html</font></td>
<td bgcolor="#cfffcf"> <font color="#808080"></font> <font color="#808080">1 right, 0 wrong, 0 ignores, 0 exceptions</font></td></tr>
<tr>
<td> <font color="#808080">change-sign.html</font></td>
<td bgcolor="#cfffcf"> <font color="#808080"></font> <font color="#808080">0 right, 0 wrong, 0 ignores, 0 exceptions</font></td></tr>
<tr>
<td> <font color="#808080">cosine.html</font></td>
<td bgcolor="#cfffcf"> <font color="#808080"></font> <font color="#808080">1 right, 0 wrong, 0 ignores, 0 exceptions</font></td></tr>
<tr>
<td colspan=2> <font color="#808080">14</font></td></tr>
<tr>
<td> <font color="#808080">180+30.html</font></td>
<td bgcolor="#cfffcf"> <font color="#808080"></font> <font color="#808080">1 right, 0 wrong, 0 ignores, 0 exceptions</font></td></tr>
<tr>
<td> <font color="#808080">change-sign.html</font></td>
<td bgcolor="#cfffcf"> <font color="#808080"></font> <font color="#808080">0 right, 0 wrong, 0 ignores, 0 exceptions</font></td></tr>
<tr>
<td> <font color="#808080">sine.html</font></td>
<td bgcolor="#cfffcf"> <font color="#808080"></font> <font color="#808080">1 right, 0 wrong, 0 ignores, 0 exceptions</font></td></tr>
<tr>
<td colspan=2> <font color="#808080">15</font></td></tr>
<tr>
<td> <font color="#808080">180+30.html</font></td>
<td bgcolor="#cfffcf"> <font color="#808080"></font> <font color="#808080">1 right, 0 wrong, 0 ignores, 0 exceptions</font></td></tr>
<tr>
<td> <font color="#808080">multiply.html</font></td>
<td bgcolor="#cfffcf"> <font color="#808080"></font> <font color="#808080">0 right, 0 wrong, 0 ignores, 0 exceptions</font></td></tr>
<tr>
<td> <font color="#808080">cosine.html</font></td>
<td bgcolor="#cfffcf"> <font color="#808080"></font> <font color="#808080">1 right, 0 wrong, 0 ignores, 0 exceptions</font></td></tr>
<tr>
<td colspan=2> <font color="#808080">16</font></td></tr>
<tr>
<td> <font color="#808080">30.html</font></td>
<td bgcolor="#cfffcf"> <font color="#808080"></font> <font color="#808080">1 right, 0 wrong, 0 ignores, 0 exceptions</font></td></tr>
<tr>
<td> <font color="#808080">multiply.html</font></td>
<td bgcolor="#cfffcf"> <font color="#808080"></font> <font color="#808080">0 right, 0 wrong, 0 ignores, 0 exceptions</font></td></tr>
<tr>
<td> <font color="#808080">sine.html</font></td>
<td bgcolor="#cfffcf"> <font color="#808080"></font> <font color="#808080">1 right, 0 wrong, 0 ignores, 0 exceptions</font></td></tr></table>

<p>To meet the &quot;all pairs&quot; requirement we need at least n X m cases,
where n and m are the sizes of the two largest categories. That means with only
two categories all combinations and all pairs are the same. The marvel of the
all pairs algorithm is that it squeezes draws from additional categories into
these same cases and possibly a few more. </p>

<table border=1 cellspacing=0 cellpadding=0 style='mso-cellspacing:0cm;
 mso-padding-alt:2.25pt 2.25pt 2.25pt 2.25pt'>
 <tr>
  <td style='padding:2.25pt 2.25pt 2.25pt 2.25pt'>
  <p class=MsoNormal>fit.Summary </p>
  </td>
 </tr>
<tr bgcolor="#ffcfcf">
<td> <font color="#808080">counts</font></td>
<td> <font color="#808080">45 right, 3 wrong, 0 ignores, 0 exceptions</font></td></tr>
<tr>
<td> <font color="#808080">input file</font></td>
<td> <font color="#808080">input/AllPairs.html</font></td></tr>
<tr>
<td> <font color="#808080">input update</font></td>
<td> <font color="#808080">Sun Apr 30 14:32:22 2006</font></td></tr>
<tr>
<td> <font color="#808080">output file</font></td>
<td> <font color="#808080">output/AllPairs.html</font></td></tr>
<tr>
<td> <font color="#808080">run date</font></td>
<td> <font color="#808080">Wed May &nbsp;3 18:10:02 2006</font></td></tr>
<tr>
<td> <font color="#808080">run elapsed time</font></td>
<td> <font color="#808080"> 0 wallclock secs ( 0.00 usr + &nbsp;0.02 sys = &nbsp;0.02 CPU)</font></td></tr></table>


<div class=MsoNormal align=center style='text-align:center'>

<hr size=2 width="100%" align=center>

</div>


<p><strong>Implementation</strong> </p>

<p>The algorithm is largely JamesBach's from the source cited on the
AllPairsExample page. My implementation can be summarized as follows. </p>

<ul type=disc>
 <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;
     mso-list:l2 level1 lfo1;tab-stops:list 36.0pt'>Fill test cases with tests
     drawn from a list of <em>most wanted</em> pairs. </li>
 <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;
     mso-list:l2 level1 lfo1;tab-stops:list 36.0pt'>Fill one case at a time.
     Never reexamine a case once filled. </li>
 <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;
     mso-list:l2 level1 lfo1;tab-stops:list 36.0pt'>Recirculate used pairs back
     to the list but as <em>less wanted</em>. </li>
 <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;
     mso-list:l2 level1 lfo1;tab-stops:list 36.0pt'>Quit filling cases when all
     pairs have been used at least once. </li>
</ul>

<p class=MsoNormal>The case currently being filled is called the <em>slug.</em>
A pair will fit the slug only if the following hold. </p>

<ul type=disc>
 <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;
     mso-list:l3 level1 lfo2;tab-stops:list 36.0pt'>At least one item of a pair
     is of a category that is not already filled. </li>
 <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;
     mso-list:l3 level1 lfo2;tab-stops:list 36.0pt'>The other item must match the
     slug in its category or must also be unfilled. </li>
</ul>

<p class=MsoNormal>The fixture uses these helper objects to represent the state
of the algorithm. </p>

<ul type=disc>
 <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;
     mso-list:l1 level1 lfo3;tab-stops:list 36.0pt'>Item -- A value from within
     a category. </li>
 <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;
     mso-list:l1 level1 lfo3;tab-stops:list 36.0pt'>Pair -- Two Items drawn
     from different categories. </li>
 <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;
     mso-list:l1 level1 lfo3;tab-stops:list 36.0pt'>Var -- A category, one per
     list of files. </li>
</ul>

<p class=MsoNormal>See the source. </p>

<ul type=disc>
 <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;
     mso-list:l0 level1 lfo4;tab-stops:list 36.0pt'><a
     href="Release\Source\eg\AllPairs.java">http:Release/Source/eg/AllPairs.java</a>
     </li>
</ul>

<p class=MsoNormal>See AllPairsAlgorithm for some tests we've written for this
algorithm itself. </wiki></p>


<div class=MsoNormal align=center style='text-align:center'>

<hr size=2 width="100%" align=center>

</div>


<p class=MsoNormal>Last edited November 9, 2002 </p>

</div>

</body>

</html>