docs: public boolean isValidAssignment(Assignment assignment) {
      Preconditions.checkArgument(containsAll(assignment.getVariableNumsArray()));
      for (int varNum : assignment.getVariableNumsArray()) {
        int index = getVariableIndex(varNum);
        if (!vars[index].canTakeValue(assignment.getValue(varNum))) {
          return false;
        }
      }
      return true;
    }