### Question:
StreamKey implements Comparable<StreamKey>, Parcelable { @Override public void writeToParcel(Parcel dest, int flags) { dest.writeInt(periodIndex); dest.writeInt(groupIndex); dest.writeInt(trackIndex); } StreamKey(int groupIndex, int trackIndex);  StreamKey(int periodIndex, int groupIndex, int trackIndex);   StreamKey(Parcel in); @Override String toString(); @Override boolean equals(@Nullable Object o); @Override int hashCode(); @Override int compareTo(@NonNull StreamKey o); @Override int describeContents(); @Override void writeToParcel(Parcel dest, int flags); final int periodIndex; final int groupIndex; final int trackIndex; static final Parcelable.Creator<StreamKey> CREATOR; }### Answer:
@Test public void testParcelable() { StreamKey streamKeyToParcel = new StreamKey(1, 2, 3); Parcel parcel = Parcel.obtain(); streamKeyToParcel.writeToParcel(parcel, 0); parcel.setDataPosition(0); StreamKey streamKeyFromParcel = StreamKey.CREATOR.createFromParcel(parcel); assertThat(streamKeyFromParcel).isEqualTo(streamKeyToParcel); parcel.recycle(); }