public void Test_Enumerable_Segmentation_1() { Vector x = new[] { 1d, 2, 3, 4, 5, 6, 7, 8, 9 }; Assert.Throws(typeof(InvalidOperationException), () => x.Segment(1) ); }
public void Test_Enumerable_Segmentation_2() { Vector x = new[] { 1d, 2, 3, 4, 5, 6, 7, 8, 9 }; var ranges = x.Segment(2); var truth = new Range[] { Range.Make(1, 5), Range.Make(5, 9.01), }; Assert.AreEqual(truth.Length, ranges.Length); for (int i = 0; i < truth.Length; i++) { Assert.AreEqual(truth[i].Min, ranges[i].Min); Assert.AreEqual(truth[i].Max, ranges[i].Max); } }
public void TestSegmentationStartsWithSecondItem() { var sequence = new[] { 0 }; var resultA = sequence.Segment((Func<int, bool>)delegate { throw new Exception(); }); var resultB = sequence.Segment((Func<int, int, bool>)delegate { throw new Exception(); }); var resultC = sequence.Segment((Func<int, int, int, bool>)delegate { throw new Exception(); }); Assert.IsTrue(resultA.Any()); Assert.IsTrue(resultB.Any()); Assert.IsTrue(resultC.Any()); }
public void Test_Enumerable_Segmentation_4() { Vector x = new[] { 1d, 2, 3, 4, 5, 6, 7, 8, 9 }; var ranges = x.Segment(4); var segmentsize = 8d / 4d; var truth = new Range[] { Range.Make(1, 1 + segmentsize), Range.Make(1 + segmentsize, 1 + 2 * segmentsize), Range.Make(1 + 2 * segmentsize, 1 + 3 * segmentsize), Range.Make( 1 + 3 * segmentsize, 9.01) }; Assert.AreEqual(truth.Length, ranges.Length); for (int i = 0; i < truth.Length; i++) { Assert.AreEqual(truth[i].Min, ranges[i].Min); Assert.AreEqual(truth[i].Max, ranges[i].Max); } }