Exemple #1
0
        public void Clear()
        {
            int edgesRemoved = 0;

            var graph = new EdgeListGraph <int, Edge <int> >();

            // ReSharper disable once ParameterOnlyUsedForPreconditionCheck.Local
            graph.EdgeRemoved += e =>
            {
                Assert.IsNotNull(e);
                // ReSharper disable once AccessToModifiedClosure
                ++edgesRemoved;
            };

            AssertEmptyGraph(graph);

            graph.Clear();
            AssertEmptyGraph(graph);
            CheckCounter(0);

            graph.AddVerticesAndEdge(new Edge <int>(1, 2));
            graph.AddVerticesAndEdge(new Edge <int>(2, 3));
            graph.AddVerticesAndEdge(new Edge <int>(3, 1));

            graph.Clear();
            AssertEmptyGraph(graph);
            CheckCounter(3);

            #region Local function

            void CheckCounter(int expectedEdgesRemoved)
            {
                Assert.AreEqual(expectedEdgesRemoved, edgesRemoved);
                edgesRemoved = 0;
            }

            #endregion
        }