public void ListExtensions_Partition_PartitionMatches() { var target = new[] { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 }; var result = target.PartitionMatches(n => n % 2 == 0); var leftExpected = new[] { 0, 2, 4, 6, 8 }; var rightExpected = new[] { 1, 3, 5, 7, 9 }; var leftResult = result.Item1.ToList(); var rightResult = result.Item2.ToList(); for (var i = 0; i < leftExpected.Length; i++) { Assert.AreEqual(leftExpected[i], leftResult[i]); } for (var i = 0; i < rightExpected.Length; i++) { Assert.AreEqual(rightExpected[i], rightResult[i]); } }