Do we break down the stats for this question by variant or not?

@return bool Do we?
196433
public function break_down_by_variant() {
        $qtype = \question_bank::get_qtype($this->question->qtype);
        return $qtype->break_down_stats_and_response_analysis_by_variant($this->question);
    }
232774
public function canShowAnything()
    {
        if (! $this->isCustomerSubscriber() || ! $this->helper->isEnabled($this->getCustomer()->getWebsiteId())) {
            return false;
        }

        $showPreferences = $this->getCanShowPreferences();
        $books = $this->getAdditionalBooksToShow();
        $fields = $this->getDataFieldsToShow();
        if ($books || $fields || $showPreferences) {
            if (! empty($books) || ! empty($fields) || $showPreferences) {
                return true;
            }
        }

        return false;
    }
913539
public function hasDirtyModels()
    {
        foreach ($this->models as $model) {
            if (true === $model->isDirty()) {
                return true;
            }
        }
        return false;
    }
421062
public function areDirty()
    {
        if (true === parent::areDirty()) {
            return true;
        }
        foreach ($this->getOriginalAll() as $collection) {
            if (true === $collection->isDirty()) {
                return true;
            }
        }
        return false;
    }
606492
private function modelIsMultiSitesAware() {
        $model = $this->getListDataClass();
        // always false if using silverstripe-recipe <= 4.3.0
        if ($model) {
            $isAware = $model::has_extension(MultisitesAware::class);
            $isSiteTree = in_array(SiteTree::class, ClassInfo::ancestry($model));
            return $isAware || $isSiteTree;
        }
        return false;
    }
410463
public function hasPlayed() : bool
    {
        if ($this->comparing() && isset($this->trophyInfo()->comparedUser)) {
            return $this->trophyInfo()->comparedUser;
        } else if (isset($this->trophyInfo()->fromUser)) {
            return $this->trophyInfo()->fromUser;
        }

        return false;
    }
1055342
public function isUsage()
    {
        $options = array('help', 'usage', 'option.h');
        foreach ($options as $option) {
            if ($this->request->get($option)) return true;
        }
        return false;
    }
1216877
public function has_subparts() {
        foreach ($this->get_variant_nos() as $variantno) {
            if (count($this->get_subpart_ids($variantno)) > 1) {
                return true;
            }
        }
        return false;
    }
976773
public function isNumeric(): bool
    {
        if ($this->isEmpty()) {
            return false;
        }

        foreach ($this->keys()->getGenerator() as $key) {
            if (!\is_int($key)) {
                return false;
            }
        }

        return true;
    }
964890
public function isReadable(): bool
    {
        if ($this->readable === null) {
            $this->readable = false;
            if ($this->isAttached() === true) {
                $meta = $this->getMetadata();
                foreach (self::$modes['readable'] as $mode) {
                    if (strpos($meta['mode'], $mode) === 0) {
                        $this->readable = true;
                        break;
                    }
                }
            }
        }

        return $this->readable;
    }
791918
protected function isNewVariant()
    {
        $bIsNewVariant = false;
        if (!is_null($this->sRestriction) && !is_null($this->sRestrictionField) && '_id' == substr($this->sRestrictionField, -3)) {
            if ('variant_parent_id' == $this->sRestrictionField) {
                $bIsNewVariant = true;
            }
        }

        return $bIsNewVariant;
    }
1083044
private boolean isNormalizable(Variant variant) {
        return !variant.getType().equals(VariantType.NO_VARIATION) && !variant.getType().equals(VariantType.SYMBOLIC);
    }
1078915
public function isMultiValued() {
    if ($this->isMultiValued == null) {
      $maxMultiplicity = $this->getOtherMaxMultiplicity();
      $this->isMultiValued = ($maxMultiplicity > 1 || $maxMultiplicity == 'unbounded');
    }
    return $this->isMultiValued;
  }
1230216
public function hasPatterns()
    {
        return (boolean) count($this->includesFileList) > 0 || count($this->excludesFileList) > 0
            || count($this->includeList) > 0 || count($this->excludeList) > 0;
    }
1152359
protected function queryIsDone()
    {
        $result = false;

        $statReplyString = $this->fetchURL($this->pazpar2StatURL());
        $statReply = GeneralUtility::xml2array($statReplyString);

        if ($statReply) {
            // The progress variable is a string representing a number between
            // 0.00 and 1.00.
            // Casting it to int gives 0 as long as the value is < 1.
            $progress = (int)$statReply['progress'];
            $result = ($progress === 1);
            if ($result === true) {
                // We are done: note that and get the record count.
                $this->setDidRun(true);
                $this->setTotalResultCount($statReply['hits']);
            }
        } else {
            GeneralUtility::devLog('could not parse pazpar2 stat reply', 'pazpar2', 3);
        }

        return $result;
    }
195251
public function aggregated()
    {
        if ($this->getEntityState() & AnDomain::STATE_NEW) {
            return false;
        }

        if ($this->getRowData('bundle_key') == null) {
            return false;
        }

        return count($this->getIds()) > 1;
    }
864179
public function anyFalse()
    {
        if($this->count == 0) return false;
        if (is_array($this->result)) {
            foreach ($this->result as $item) {
                if ($item === false) {
                    return true;
                }
            }
        } else {
            return $this->result == false;
        }
        return false;
    }