public void TestDedupeSegments() { var audioRecording = AudioRecordingFactory.Create(); var segments = new RemoteSegmentWithData[] { new RemoteSegmentWithData(audioRecording, new Range <double>(0, 60), 1.AsArray < object > ()), new RemoteSegmentWithData(audioRecording, new Range <double>(0, 60), 2.AsArray < object > ()), new RemoteSegmentWithData(audioRecording, new Range <double>(33, 93), 3.AsArray < object > ()), new RemoteSegmentWithData(audioRecording, new Range <double>(100.375, 160.375), 4.AsArray < object > ()), new RemoteSegmentWithData(audioRecording, new Range <double>(100.375, 160.375), 5.AsArray < object > ()), new RemoteSegmentWithData(audioRecording, new Range <double>(900, 960), 6.AsArray < object > ()), new RemoteSegmentWithData(audioRecording, new Range <double>(0, 60), 7.AsArray < object > ()), }; var actual = EventMetadataResolver.DedupeSegments(segments); var expected = new RemoteSegmentWithData[] { new RemoteSegmentWithData(audioRecording, new Range <double>(0, 60), new object[] { 1, 2, 7 }), new RemoteSegmentWithData(audioRecording, new Range <double>(33, 93), 3.AsArray < object > ()), new RemoteSegmentWithData(audioRecording, new Range <double>(100.375, 160.375), new object[] { 4, 5 }), new RemoteSegmentWithData(audioRecording, new Range <double>(900, 960), 6.AsArray < object > ()), }; Assert.AreEqual(expected.Length, actual.Length); foreach (var(expectedItem, actualItem) in expected.Zip(actual, ValueTuple.Create)) { Assert.AreEqual(expectedItem.Source, actualItem.Source); Assert.AreEqual(expectedItem.Offsets, actualItem.Offsets); CollectionAssert.AreEqual(expectedItem.Data.ToArray(), actualItem.Data.ToArray()); } }