public void AdjacentEdge_Throws() { var data = new GraphData <int, Edge <int> >(); var graph1 = new DelegateUndirectedGraph <int, Edge <int> >( new[] { 1, 2 }, data.TryGetEdges); AdjacentEdge_Throws_Test(data, graph1); // Additional tests data.ShouldReturnValue = true; var edge32 = new Edge <int>(3, 2); data.ShouldReturnEdges = new[] { edge32 }; // ReSharper disable once ReturnValueOfPureMethodIsNotUsed Assert.Throws <VertexNotFoundException>(() => graph1.AdjacentEdge(3, 0)); data.CheckCalls(0); // Vertex is not in graph so no need to call user code var edge14 = new Edge <int>(1, 4); var edge12 = new Edge <int>(1, 2); data.ShouldReturnEdges = new[] { edge14, edge12 }; // ReSharper disable once ReturnValueOfPureMethodIsNotUsed AssertIndexOutOfRange(() => graph1.AdjacentEdge(1, 1)); data.CheckCalls(1); var graph2 = new DelegateUndirectedGraph <TestVertex, Edge <TestVertex> >( Enumerable.Empty <TestVertex>(), GetEmptyGetter <TestVertex, Edge <TestVertex> >()); AdjacentEdge_NullThrows_Test(graph2); }
public void AdjacentEdge() { var data = new GraphData <int, Edge <int> >(); var graph = new DelegateUndirectedGraph <int, Edge <int> >( new[] { 1, 2, 3 }, data.TryGetEdges); AdjacentEdge_Test(data, graph); // Additional tests var edge14 = new Edge <int>(1, 4); var edge12 = new Edge <int>(1, 2); data.ShouldReturnValue = true; data.ShouldReturnEdges = new[] { edge14, edge12 }; Assert.AreSame(edge12, graph.AdjacentEdge(1, 0)); data.CheckCalls(1); }