public void SetCompareTest()
{
// ReSharper disable ExpressionIsAlwaysNull
int[] currentSet = {1, 2, 3, 4};
int[] newSet = {3, 4, 5, 6};
int[] nullSet = null;
SetComparisonResult<int> result = currentSet.CompareSets(newSet);
int[] expectedAdd = {5, 6};
int[] expectedDelete = {1, 2};
Assert.IsTrue(expectedAdd.HaveSameElements(result.ToBeAdded));
Assert.IsTrue(expectedDelete.HaveSameElements(result.ToBeDeleted));
result = nullSet.CompareSets(newSet);
Assert.IsTrue(newSet.HaveSameElements(result.ToBeAdded));
Assert.IsTrue(nullSet.HaveSameElements(result.ToBeDeleted));
result = currentSet.CompareSets(nullSet);
Assert.IsTrue(nullSet.HaveSameElements(result.ToBeAdded));
Assert.IsTrue(currentSet.HaveSameElements(result.ToBeDeleted));
// ReSharper restore ExpressionIsAlwaysNull
}