Exemplo n.º 1
0
        public void AdjacentEdge()
        {
            var data  = new GraphData <int, Edge <int> >();
            var graph = new DelegateImplicitUndirectedGraph <int, Edge <int> >(data.TryGetEdges);

            AdjacentEdge_Test(data, graph);
        }
Exemplo n.º 2
0
        public void ContainsEdge()
        {
            var data  = new GraphData <int, Edge <int> >();
            var graph = new DelegateImplicitUndirectedGraph <int, Edge <int> >(data.TryGetEdges);

            ContainsEdge_SourceTarget_UndirectedGraph_Test(data, graph);
        }
Exemplo n.º 3
0
        public void ContainsEdge_Throws()
        {
            var data  = new GraphData <TestVertex, Edge <TestVertex> >();
            var graph = new DelegateImplicitUndirectedGraph <TestVertex, Edge <TestVertex> >(data.TryGetEdges);

            ContainsEdge_SourceTarget_Throws_UndirectedGraph_Test(graph);
        }
Exemplo n.º 4
0
        public void ContainsVertex_Throws()
        {
            var graph = new DelegateImplicitUndirectedGraph <TestVertex, Edge <TestVertex> >(
                GetEmptyGetter <TestVertex, Edge <TestVertex> >());

            ContainsVertex_Throws_Test(graph);
        }
Exemplo n.º 5
0
        public void ContainsVertex()
        {
            var data  = new GraphData <int, Edge <int> >();
            var graph = new DelegateImplicitUndirectedGraph <int, Edge <int> >(data.TryGetEdges);

            ContainsVertex_Test(data, graph);
        }
Exemplo n.º 6
0
        public void TryGetAdjacentEdges_Throws()
        {
            var graph = new DelegateImplicitUndirectedGraph <TestVertex, Edge <TestVertex> >(
                GetEmptyGetter <TestVertex, Edge <TestVertex> >());

            TryGetAdjacentEdges_Throws_Test(graph);
        }
Exemplo n.º 7
0
        public void Construction()
        {
            var graph = new DelegateImplicitUndirectedGraph <int, Edge <int> >(
                GetEmptyGetter <int, Edge <int> >());

            AssertGraphProperties(graph);

            graph = new DelegateImplicitUndirectedGraph <int, Edge <int> >(
                GetEmptyGetter <int, Edge <int> >(),
                false);
            AssertGraphProperties(graph, false);

            #region Local function

            void AssertGraphProperties <TVertex, TEdge>(
                DelegateImplicitUndirectedGraph <TVertex, TEdge> g,
                bool parallelEdges = true)
                where TEdge : IEdge <TVertex>
            {
                Assert.IsFalse(g.IsDirected);
                Assert.AreEqual(parallelEdges, g.AllowParallelEdges);
                Assert.IsNotNull(g.EdgeEqualityComparer);
            }

            #endregion
        }
Exemplo n.º 8
0
 protected static void TryGetAdjacentEdges_Throws_Test <TVertex, TEdge>(
     [NotNull] DelegateImplicitUndirectedGraph <TVertex, TEdge> graph)
     where TVertex : class
     where TEdge : IEdge <TVertex>
 {
     // ReSharper disable once AssignNullToNotNullAttribute
     Assert.Throws <ArgumentNullException>(() => graph.TryGetAdjacentEdges(null, out _));
 }
Exemplo n.º 9
0
        public void AdjacentEdges_Throws()
        {
            var data   = new GraphData <int, Edge <int> >();
            var graph1 = new DelegateImplicitUndirectedGraph <int, Edge <int> >(data.TryGetEdges);

            AdjacentEdges_Throws_Test(data, graph1);

            var graph2 = new DelegateImplicitUndirectedGraph <TestVertex, Edge <TestVertex> >(
                GetEmptyGetter <TestVertex, Edge <TestVertex> >());

            AdjacentEdges_NullThrows_Test(graph2);
        }
Exemplo n.º 10
0
        protected static void TryGetAdjacentEdges_Test(
            [NotNull] GraphData <int, Edge <int> > data,
            [NotNull] DelegateImplicitUndirectedGraph <int, Edge <int> > graph)
        {
            data.CheckCalls(0);

            data.ShouldReturnValue = false;
            Assert.IsFalse(graph.TryGetAdjacentEdges(1, out _));
            data.CheckCalls(1);

            data.ShouldReturnValue = true;
            Assert.IsTrue(graph.TryGetAdjacentEdges(1, out IEnumerable <Edge <int> > edges));
            CollectionAssert.IsEmpty(edges);
            data.CheckCalls(1);

            data.ShouldReturnEdges = new[] { new Edge <int>(1, 4), new Edge <int>(1, 2) };
            Assert.IsTrue(graph.TryGetAdjacentEdges(1, out edges));
            CollectionAssert.AreEqual(data.ShouldReturnEdges, edges);
            data.CheckCalls(1);
        }