コード例 #1
0
        public void BaseLine()
        {
            var sut   = new FleurysAlgorithm();
            var graph = new UndirectedGraph(4);

            graph.Connect(0, 1);
            graph.Connect(0, 2);
            graph.Connect(1, 2);
            graph.Connect(2, 3);

            Assert.Collection(sut.GetEulerianTrail(graph), arg =>
            {
                Assert.Equal(3, arg.Item1);
                Assert.Equal(2, arg.Item2);
            },
                              arg =>
            {
                Assert.Equal(2, arg.Item1);
                Assert.Equal(1, arg.Item2);
            },
                              arg =>
            {
                Assert.Equal(1, arg.Item1);
                Assert.Equal(0, arg.Item2);
            },
                              arg =>
            {
                Assert.Equal(0, arg.Item1);
                Assert.Equal(2, arg.Item2);
            });
        }
コード例 #2
0
        public void EmptyGraphHasEmptyEulerianTrail()
        {
            var sut   = new FleurysAlgorithm();
            var graph = new UndirectedGraph(0);

            Assert.Empty(sut.GetEulerianTrail(graph));
        }
コード例 #3
0
        public void TwoVerticeGraphHasOneEdgeEulerianTrail()
        {
            var sut   = new FleurysAlgorithm();
            var graph = new UndirectedGraph(2);

            graph.Connect(0, 1);

            Assert.Collection(sut.GetEulerianTrail(graph), arg =>
            {
                Assert.Equal(1, arg.Item1);
                Assert.Equal(0, arg.Item2);
            });
        }