function getAllAssertionResultsForUrl(baseOptions, unfilteredLhrs) {
  const {assertions, auditsToAssert, medianLhrs, lhrs, url, aggregationMethod} =
    resolveAssertionOptionsAndLhrs(baseOptions, unfilteredLhrs);

  // If we don't have any data, just return early.
  if (!lhrs.length) return [];

  /** @type {LHCI.AssertResults.AssertionResult[]} */
  const results = [];

  for (const auditToAssert of auditsToAssert) {
    const {assertionKey, auditId, auditProperty} = auditToAssert;
    const [level, assertionOptions] = normalizeAssertion(assertions[assertionKey]);
    if (level === 'off') continue;

    const options = {aggregationMethod, ...assertionOptions};
    const lhrsToUseForAudit = options.aggregationMethod === 'median-run' ? medianLhrs : lhrs;
    const auditResults = lhrsToUseForAudit.map(lhr => lhr.audits[auditId]);
    const assertionResults = getAssertionResultsForAudit(
      auditId,
      auditProperty,
      auditResults,
      options,
      lhrs
    );

    for (const result of assertionResults) {
      const finalResult = {...result, auditId, level, url};
      if (auditToAssert.auditTitle) finalResult.auditTitle = auditToAssert.auditTitle;
      if (auditToAssert.auditDocumentationLink) {
        finalResult.auditDocumentationLink = auditToAssert.auditDocumentationLink;
      }

      results.push(finalResult);
    }
  }

  return results;
}
@param {LHCI.AssertCommand.BaseOptions} baseOptions
@param {LH.Result[]} unfilteredLhrs
@return {LHCI.AssertResults.AssertionResult[]}