コード例 #1
0
        public void Predicate_Throws()
        {
            var graph     = new AdjacencyGraph <TestVertex, Edge <TestVertex> >();
            var predicate = new SinkVertexPredicate <TestVertex, Edge <TestVertex> >(graph);

            // ReSharper disable ReturnValueOfPureMethodIsNotUsed
            Assert.Throws <VertexNotFoundException>(() => predicate.Test(new TestVertex("1")));
            // ReSharper disable once AssignNullToNotNullAttribute
            Assert.Throws <ArgumentNullException>(() => predicate.Test(null));
            // ReSharper restore ReturnValueOfPureMethodIsNotUsed
        }
コード例 #2
0
        public void Predicate <TGraph>([NotNull] TGraph graph)
            where TGraph
        : IIncidenceGraph <int, Edge <int> >
        , IMutableVertexSet <int>
        , IMutableEdgeListGraph <int, Edge <int> >
        {
            var predicate = new SinkVertexPredicate <int, Edge <int> >(graph);

            graph.AddVertex(1);
            graph.AddVertex(2);
            Assert.IsTrue(predicate.Test(1));
            Assert.IsTrue(predicate.Test(2));

            graph.AddVertex(3);
            graph.AddEdge(new Edge <int>(1, 3));
            Assert.IsFalse(predicate.Test(1));
            Assert.IsTrue(predicate.Test(2));
            Assert.IsTrue(predicate.Test(3));

            graph.AddEdge(new Edge <int>(1, 2));
            Assert.IsFalse(predicate.Test(1));
            Assert.IsTrue(predicate.Test(2));
            Assert.IsTrue(predicate.Test(3));

            var edge23 = new Edge <int>(2, 3);

            graph.AddEdge(edge23);
            Assert.IsFalse(predicate.Test(1));
            Assert.IsFalse(predicate.Test(2));
            Assert.IsTrue(predicate.Test(3));

            graph.RemoveEdge(edge23);
            Assert.IsFalse(predicate.Test(1));
            Assert.IsTrue(predicate.Test(2));
            Assert.IsTrue(predicate.Test(3));
        }