Beispiel #1
0
        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);
        }
Beispiel #2
0
        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);
        }