public void Merge() { var emptyEdge1 = new MergedEdge <int, Edge <int> >(1, 2); var emptyEdge2 = new MergedEdge <int, Edge <int> >(1, 2); var subEdge1 = new Edge <int>(1, 2); var subEdge2 = new Edge <int>(1, 2); var subEdge3 = new Edge <int>(1, 2); var edge1 = new MergedEdge <int, Edge <int> >(1, 2); edge1.Edges.Add(subEdge1); var edge2 = new MergedEdge <int, Edge <int> >(1, 2); edge2.Edges.Add(subEdge2); edge2.Edges.Add(subEdge3); MergedEdge <int, Edge <int> > mergedEdge = MergedEdge.Merge(emptyEdge1, emptyEdge2); Assert.IsNotNull(mergedEdge); CollectionAssert.IsEmpty(mergedEdge.Edges); mergedEdge = MergedEdge.Merge(emptyEdge1, edge1); Assert.IsNotNull(mergedEdge); CollectionAssert.AreEqual(new[] { subEdge1 }, mergedEdge.Edges); mergedEdge = MergedEdge.Merge(edge1, emptyEdge1); Assert.IsNotNull(mergedEdge); CollectionAssert.AreEqual(new[] { subEdge1 }, mergedEdge.Edges); mergedEdge = MergedEdge.Merge(edge1, edge2); Assert.IsNotNull(mergedEdge); CollectionAssert.AreEqual(new[] { subEdge1, subEdge2, subEdge3 }, mergedEdge.Edges); }
public void Merge_Throws() { var edge = new MergedEdge <int, Edge <int> >(1, 2); // ReSharper disable ReturnValueOfPureMethodIsNotUsed // ReSharper disable AssignNullToNotNullAttribute Assert.Throws <ArgumentNullException>(() => MergedEdge.Merge(edge, null)); Assert.Throws <ArgumentNullException>(() => MergedEdge.Merge(null, edge)); Assert.Throws <ArgumentNullException>(() => MergedEdge.Merge <int, Edge <int> >(null, null)); // ReSharper restore AssignNullToNotNullAttribute // ReSharper restore ReturnValueOfPureMethodIsNotUsed }