public void GenerateMultiLayer()
        {
            var generator = new RandomMultiLayerGenerator();

            foreach (var l in Enumerable.Range(2, 10))
            {
                foreach (var n in Enumerable.Range(2, 10))
                {
                    var network = generator.Generate(n, l, 0.55);

                    Assert.Equal(n, network.Actors.Count());
                    Assert.Equal(l, network.Layers.Count());
                }
            }
        }
示例#2
0
        public void TestRandom()
        {
            var random    = new Random();
            var generator = new RandomMultiLayerGenerator();

            for (var i = 8; i < 15; i++)
            {
                var p           = random.Next(6, 10) / 10.0;
                var l           = random.Next(2, 10);
                var n           = generator.Generate(i, l, p);
                var a           = n.Actors;
                var abacus      = new ABACUS();
                var communities = abacus.Apply(n, n => new Louvain().Apply(n), 2);
                var actors      = communities.SelectMany(c => c.Actors).Distinct();

                Assert.Empty(a.Except(actors));
                communities.ForEach(c => Assert.NotEmpty(c.Actors));
            }
        }