function assertRangeListsEqual(a, b, c = undefined) {
  const message = c ? `${a}
` :
                      '';
  const expected = c ? b : a;
  const actual = c ? c : b;

  assertEquals(
      `${message}Array lengths unequal.`, expected.length, actual.length);

  for (let i = 0; i < expected.length; i++) {
    assertRangesEqual(`${message}Range ${i} mismatch.`, expected[i], actual[i]);
  }
}
Produce legible assertion results for comparing two lists of ranges. Expected
lists may be specified as a list of goog.math.Ranges, or as a list of
two-element arrays of numbers.
@param {Array<Range|Array<number>>|string} a A help string or the list of
    expected ranges.
@param {Array<Range|Array<number>>} b The list of expected ranges when a
    descriptive string is present, or the list of ranges to compare.
@param {Array<Range>=} c The list of ranges to compare when a descriptive
    string is present.
@suppress {checkTypes} suppression added to enable type checking