public void ReturnsCorrectValueForInitializedSets() { const int n = 5; var fastDisjointSet = new FastDisjointSet(n); var expected = Enumerable .Range(0, 5) .Select(e => (new[] {e})); var actual = fastDisjointSet.GetSets(); Assert.Equal(expected, actual); }
public void ReturnsCorrectValueForFullyMergedSets() { const int n = 5; var fastDisjointSet = new FastDisjointSet(n); // Merge all items foreach (var item in Enumerable.Range(1, n - 1)) { fastDisjointSet.Union(0, item); } var expected = new[] { new[] {0, 1, 2, 3, 4}, }; var actual = fastDisjointSet.GetSets(); Assert.Equal(expected, actual); }
public void ReturnsCorrectValueForPartiallyMergedSets() { const int n = 5; var fastDisjointSet = new FastDisjointSet(n); // Make merges so structure looks like: // [[0,1],[2],[3,4]] fastDisjointSet.Union(0, 1); fastDisjointSet.Union(3, 4); var expected = new[] { new[] {0, 1}, new[] {2}, new[] {3, 4}, }; var actual = fastDisjointSet.GetSets(); Assert.Equal(expected, actual); }