public void testSpeed(IndexVotable x) {
   long start = System.currentTimeMillis();
   for (int i = 0; i < ivotes.length; i++) {
     x.voteIndexVoteSet(ivotes[i]);
   }
   NameVotingSystem.NameVote[] winners = x.getWinners();
   long end = System.currentTimeMillis();
   double vps = ivotes.length / ((double) (end - start) / 1000.0);
   System.out.println(x.name() + ": " + vps + " votes/second");
 }
 public void testSystem(Class ivc, int numc, int numv)
     throws java.lang.InstantiationException, java.lang.IllegalAccessException {
   IndexVotable iv = (IndexVotable) ivc.newInstance();
   IndexVotable nv = (IndexVotable) ivc.newInstance();
   generateRandomVotes(numc, numv);
   for (int i = 0; i < numv; i++) {
     iv.voteIndexVoteSet(ivotes[i]);
     nv.voteRating(votes[i]);
   }
   NameVotingSystem.NameVote[] ivw = iv.getWinners();
   NameVotingSystem.NameVote[] nvw = nv.getWinners();
   boolean good = SummableVotingSystemTest.winnersEq(ivw, nvw);
   if (!good) {
     StringBuffer sb = new StringBuffer("index vote=\n");
     sbWinners(sb, ivw);
     sb.append("name vote=\n");
     sbWinners(sb, nvw);
     fail(sb.toString());
   }
 }