From 5ff2ad4ea88cc2052eded807d87a421b9a301ba6 Mon Sep 17 00:00:00 2001 From: Stuart Turner Date: Fri, 25 Nov 2022 15:37:47 -0600 Subject: [PATCH] Add missing unit test --- MoreLinq.Test/EquiZipTest.cs | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) diff --git a/MoreLinq.Test/EquiZipTest.cs b/MoreLinq.Test/EquiZipTest.cs index 477a86384..1655ca36c 100644 --- a/MoreLinq.Test/EquiZipTest.cs +++ b/MoreLinq.Test/EquiZipTest.cs @@ -17,7 +17,10 @@ namespace MoreLinq.Test { + using System; + using System.Collections.Generic; using NUnit.Framework; + using NUnit.Framework.Interfaces; using Tuple = System.ValueTuple; [TestFixture] @@ -76,6 +79,29 @@ public void ZipIsLazy() bs.EquiZip(bs, BreakingFunc.Of()); } + public static readonly IEnumerable TestData = + from e in new[] + { + new { A = 1, B = "First", }, + new { A = 2, B = "Second", }, + new { A = 3, B = "Third", }, + new { A = 4, B = "Fourth", }, + } + select new TestCaseData(e.A, e.B); + + [Test, TestCaseSource(nameof(TestData))] + public void ShortestSequenceIsIdentifiedProperly(int shortSequence, string sequenceName) + { + using var seq1 = Enumerable.Range(1, shortSequence == 1 ? 2 : 3).AsTestingSequence(); + using var seq2 = Enumerable.Range(1, shortSequence == 2 ? 2 : 3).AsTestingSequence(); + using var seq3 = Enumerable.Range(1, shortSequence == 3 ? 2 : 3).AsTestingSequence(); + using var seq4 = Enumerable.Range(1, shortSequence == 4 ? 2 : 3).AsTestingSequence(); + + var ex = Assert.Throws(() => + seq1.EquiZip(seq2, seq3, seq4, (_, _, _, _) => 0).Consume()); + Assert.That(ex.Message, Is.EqualTo(sequenceName + " sequence too short.")); + } + [Test] public void MoveNextIsNotCalledUnnecessarily() {