### Question:
DownloadHelper { public List<TrackSelection> getTrackSelections(int periodIndex, int rendererIndex) { assertPreparedWithMedia(); return immutableTrackSelectionsByPeriodAndRenderer[periodIndex][rendererIndex]; } DownloadHelper(
      String downloadType,
      Uri uri,
      @Nullable String cacheKey,
      @Nullable MediaSource mediaSource,
      DefaultTrackSelector.Parameters trackSelectorParameters,
      RendererCapabilities[] rendererCapabilities); static DownloadHelper forProgressive(Uri uri); static DownloadHelper forProgressive(Uri uri, @Nullable String cacheKey); static DownloadHelper forDash(
      Uri uri, DataSource.Factory dataSourceFactory, RenderersFactory renderersFactory); static DownloadHelper forDash(
      Uri uri,
      DataSource.Factory dataSourceFactory,
      RenderersFactory renderersFactory,
      @Nullable DrmSessionManager<FrameworkMediaCrypto> drmSessionManager,
      DefaultTrackSelector.Parameters trackSelectorParameters); static DownloadHelper forHls(
      Uri uri, DataSource.Factory dataSourceFactory, RenderersFactory renderersFactory); static DownloadHelper forHls(
      Uri uri,
      DataSource.Factory dataSourceFactory,
      RenderersFactory renderersFactory,
      @Nullable DrmSessionManager<FrameworkMediaCrypto> drmSessionManager,
      DefaultTrackSelector.Parameters trackSelectorParameters); static DownloadHelper forSmoothStreaming(
      Uri uri, DataSource.Factory dataSourceFactory, RenderersFactory renderersFactory); static DownloadHelper forSmoothStreaming(
      Uri uri,
      DataSource.Factory dataSourceFactory,
      RenderersFactory renderersFactory,
      @Nullable DrmSessionManager<FrameworkMediaCrypto> drmSessionManager,
      DefaultTrackSelector.Parameters trackSelectorParameters); void prepare(Callback callback); void release(); @Nullable Object getManifest(); int getPeriodCount(); TrackGroupArray getTrackGroups(int periodIndex); MappedTrackInfo getMappedTrackInfo(int periodIndex); List<TrackSelection> getTrackSelections(int periodIndex, int rendererIndex); void clearTrackSelections(int periodIndex); void replaceTrackSelections(
      int periodIndex, DefaultTrackSelector.Parameters trackSelectorParameters); void addTrackSelection(
      int periodIndex, DefaultTrackSelector.Parameters trackSelectorParameters); void addAudioLanguagesToSelection(String... languages); void addTextLanguagesToSelection(
      boolean selectUndeterminedTextLanguage, String... languages); void addTrackSelectionForSingleRenderer(
      int periodIndex,
      int rendererIndex,
      DefaultTrackSelector.Parameters trackSelectorParameters,
      List<SelectionOverride> overrides); DownloadRequest getDownloadRequest(@Nullable byte[] data); DownloadRequest getDownloadRequest(String id, @Nullable byte[] data); static final DefaultTrackSelector.Parameters DEFAULT_TRACK_SELECTOR_PARAMETERS; }### Answer:
@Test public void getTrackSelections_returnsInitialSelection() throws Exception { prepareDownloadHelper(downloadHelper); List<TrackSelection> selectedText0 = downloadHelper.getTrackSelections( 0, 0); List<TrackSelection> selectedAudio0 = downloadHelper.getTrackSelections( 0, 1); List<TrackSelection> selectedVideo0 = downloadHelper.getTrackSelections( 0, 2); List<TrackSelection> selectedText1 = downloadHelper.getTrackSelections( 1, 0); List<TrackSelection> selectedAudio1 = downloadHelper.getTrackSelections( 1, 1); List<TrackSelection> selectedVideo1 = downloadHelper.getTrackSelections( 1, 2); assertSingleTrackSelectionEquals(selectedText0, TRACK_GROUP_TEXT_US, 0); assertSingleTrackSelectionEquals(selectedAudio0, TRACK_GROUP_AUDIO_US, 0); assertSingleTrackSelectionEquals(selectedVideo0, TRACK_GROUP_VIDEO_BOTH, 1); assertThat(selectedText1).isEmpty(); assertSingleTrackSelectionEquals(selectedAudio1, TRACK_GROUP_AUDIO_US, 0); assertSingleTrackSelectionEquals(selectedVideo1, TRACK_GROUP_VIDEO_SINGLE, 0); }