static makeReference(uri, start, end, baseUri = '',
      startByte = 0, endByte = null, timestampOffset = 0,
      partialReferences = [], tilesLayout = '', syncTime = null) {
    const getUris = () => {
      const uris = [];
      if (Array.isArray(uri)) {
        for (const url of uri) {
          if (url.length) {
            uris.push(baseUri + url);
          }
        }
      } else if (uri.length) {
        uris.push(baseUri + uri);
      }
      return uris;
    };

    // If a test wants to verify these, they can be set explicitly after
    // makeReference is called.
    const initSegmentReference = /** @type {?} */({
      asymmetricMatch: (value) => {
        return value == null ||
            value instanceof shaka.media.InitSegmentReference;
      },
    });

    timestampOffset =
        timestampOffset || /** @type {?} */(jasmine.any(Number));
    const appendWindowStart = /** @type {?} */(jasmine.any(Number));
    const appendWindowEnd = /** @type {?} */(jasmine.any(Number));

    const ref = new shaka.media.SegmentReference(
        start, end, getUris, startByte, endByte,
        initSegmentReference,
        timestampOffset,
        appendWindowStart,
        appendWindowEnd,
        partialReferences,
        tilesLayout,
        /* tileDuration= */ undefined,
        syncTime);
    ref.discontinuitySequence = /** @type {?} */(jasmine.any(Number));
    ref.bandwidth = /** @type {?} */(new shaka.test.AnyOrNull(Number));
    ref.codecs = /** @type {?} */(jasmine.any(String));
    ref.mimeType = /** @type {?} */(jasmine.any(String));
    ref.segmentData = /** @type {?} */(new shaka.test.AnythingOrNull());
    ref.removeSegmentDataOnGet = /** @type {?} */(jasmine.any(Boolean));
    return ref;
  }
Creates a segment reference using a relative URI.

@param {string | Array<string>} uri A relative URI to http://example.com
@param {number} start
@param {number} end
@param {string=} baseUri
@param {number=} startByte
@param {?number=} endByte
@param {number=} timestampOffset
@param {!Array<!shaka.media.SegmentReference>=} partialReferences
@param {?string=} tilesLayout
@param {?number=} syncTime
@return {!shaka.media.SegmentReference}