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

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

                Assert.Equal(n, network.Actors.Count());
            }
        }
Esempio n. 2
0
        public void TestRandom()
        {
            var generator   = new RandomMultiLayerGenerator();
            var random      = new Random();
            var network     = generator.GenerateSingleLayer(5, 0.65);
            var communities = new Louvain().Apply(network);

            var count = communities.SelectMany(c => c.Actors).Count();

            Assert.Equal(5, count);
        }
Esempio n. 3
0
        public void TestRandom()
        {
            var generator   = new RandomMultiLayerGenerator();
            var random      = new Random();
            var network     = generator.GenerateSingleLayer(5, 0.65);
            var communities = _labelPropagation.GetCommunities(network);

            var count = communities.SelectMany(c => c.Actors).Count();

            Assert.Equal(5, count);
        }
Esempio n. 4
0
        public void TestRandom()
        {
            var random    = new Random();
            var generator = new RandomMultiLayerGenerator();

            for (var n = 2; n < 15; n++)
            {
                var network     = generator.GenerateSingleLayer(n, 0.65);
                var communities = new CLECCCommunityDetection().Apply(network, 1, 2);

                var count = communities.SelectMany(c => c.Actors).Count();
                Assert.Equal(n, count);
            }
        }
Esempio n. 5
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));
            }
        }
Esempio n. 6
0
        public void PerformanceBetweenOneAndZero()
        {
            var r = new Random();
            var g = new RandomMultiLayerGenerator();

            for (var n = 2; n < 50; n++)
            {
                var network        = g.GenerateSingleLayer(n, 0.65);
                var communityCount = r.Next(2, n);
                var communities    = Enumerable
                                     .Range(0, communityCount)
                                     .Select(c => new Community())
                                     .ToList();
                foreach (var actor in network.Actors)
                {
                    var c = r.Next(0, communityCount);
                    communities[c].Actors.Add(actor);
                }
                var performance = Performance.Get(network, communities);

                Assert.True(performance >= 0.0, "Performance was less than zero.");
                Assert.True(performance <= 1.0, "Performance was greater than one.");
            }
        }