static void printSet(IntSetVar var, boolean requiredOnly) {
   System.out.print(var.name());
   Iterator iter;
   if (requiredOnly) {
     System.out.print(": ");
     iter = var.requiredSet().iterator();
   } else {
     System.out.print("(possibleSet)" + ": ");
     iter = var.possibleSet().iterator();
   }
   while (iter.hasNext()) {
     Integer val = (Integer) iter.next();
     System.out.print(names[val.intValue()] + (iter.hasNext() ? ", " : ""));
   }
 }
    static void checkResults(IntSetVarArray array) {
      int size = array.size();
      for (int i = 0; i < size; i++) {
        IntSetVar var = array.get(i);
        Set checkSet = var.requiredSet();
        assertTrue(checkSet.size() >= req[i][iNbMembers]);
        assertTrue(intersectionCardinality(checkSet, Stewards.possibleSet()) >= req[i][iStewards]);
        assertTrue(
            intersectionCardinality(checkSet, Hostesses.possibleSet()) >= req[i][iHostesses]);
        assertTrue(intersectionCardinality(checkSet, French.possibleSet()) >= req[i][iFrench]);
        assertTrue(intersectionCardinality(checkSet, German.possibleSet()) >= req[i][iGerman]);
        assertTrue(intersectionCardinality(checkSet, Spanish.possibleSet()) >= req[i][iSpanish]);
      }
      for (int i = 0; i < size - 2; i++) {
        assertTrue(
            intersectionCardinality(array.get(i).requiredSet(), array.get(i + 1).requiredSet())
                == 0);
      }

      assertTrue(
          intersectionCardinality(
                  array.get(size - 2).requiredSet(), array.get(size - 1).requiredSet())
              == 0);
    }