Adding TryLast extension methods

This commit is contained in:
Chris Cameron
2017-12-11 21:14:52 -05:00
parent f9997f6d42
commit 8d0042aa19
2 changed files with 84 additions and 1 deletions

View File

@@ -3,7 +3,6 @@ using ICD.Common.Utils.Extensions;
using NUnit.Framework;
using System.Collections.Generic;
using System.Linq;
using System;
namespace ICD.Common.Utils.Tests.Extensions
{
@@ -62,6 +61,41 @@ namespace ICD.Common.Utils.Tests.Extensions
Assert.AreEqual(true, exists);
}
[TestCase(1)]
public void TryLastTest(int expected)
{
IEnumerable<int> sequence = Enumerable.Empty<int>();
int result;
bool exists = sequence.TryLast(out result);
Assert.AreEqual(0, result);
Assert.AreEqual(false, exists);
sequence = new[] { expected };
exists = sequence.TryLast(out result);
Assert.AreEqual(expected, result);
Assert.AreEqual(true, exists);
}
[TestCase(0)]
[TestCase(1)]
public void TryLastPredicateTest(int expected)
{
IEnumerable<int> sequence = Enumerable.Range(1, 10).Except(expected);
int result;
bool exists = sequence.TryLast(i => i == expected, out result);
Assert.AreEqual(0, result);
Assert.AreEqual(false, exists);
sequence = new[] { expected };
exists = sequence.TryLast(i => i == expected, out result);
Assert.AreEqual(expected, result);
Assert.AreEqual(true, exists);
}
[TestCase(0, 0)]
[TestCase(1, 10)]
public void TryElementAtTest(int index, int expected)