public void BaGraphHasCorrectVectorsBeforeAndAfterAddingNode() { BaGraph g = new BaGraph(3, new Randomizer(), 10); Assert.AreEqual(14, g.DegreeVector.Count()); g.AddNodeToBaGraph(); Assert.AreEqual(15, g.DegreeVector.Count()); }
public void GraphAssortativityOfRandomGraphsIsInRange() { Randomizer rand = new Randomizer(); for (int i = 0; i < 10; i++) { ErGraph erg = new ErGraph((int)(rand.NextDouble() * 300 + 20), rand.NextDouble() * 0.4, new Randomizer(new Random(rand.Next()))); TestGraphs.Add(erg); Assert.IsTrue(-1 <= erg.GraphAssortativity && erg.GraphAssortativity <= 1); Assert.IsTrue(-1 <= erg.GraphAssortativity2() && erg.GraphAssortativity2() <= 1); Assert.IsTrue(Math.Abs(erg.GraphAssortativity - erg.GraphAssortativity2()) < Tolerance); BaGraph bag = new BaGraph((int)(rand.NextDouble() * 20 + 2), new Randomizer(new Random(rand.Next())), (int)(rand.NextDouble() * 800 + 100)); TestGraphs.Add(bag); Assert.IsTrue(-1 <= bag.GraphAssortativity && bag.GraphAssortativity <= 1); Assert.IsTrue(-1 <= bag.GraphAssortativity2() && bag.GraphAssortativity2() <= 1); Assert.IsTrue(Math.Abs(bag.GraphAssortativity - bag.GraphAssortativity2()) < Tolerance); } Assert.IsTrue(AllGraphsHaveNoZeroDegreeNodes()); }
public void IterativeSwappingMaintainsDegreeVector() { Randomizer rand = new Randomizer(); // Random graphs for (int i = 0; i < 10; i++) { ErGraph erg = new ErGraph((int)(rand.NextDouble() * 300 + 20), rand.NextDouble() * 0.4, new Randomizer(new Random(rand.Next()))); TestGraphs.Add(erg); string prevVector = String.Join(",", erg.DegreeVector); erg.IterativelySwapEdgesToIncreaseAssortativity(); Assert.AreEqual(prevVector, String.Join(",", erg.DegreeVector)); BaGraph bag = new BaGraph((int)(rand.NextDouble() * 20 + 2), new Randomizer(new Random(rand.Next())), (int)(rand.NextDouble() * 800 + 100)); TestGraphs.Add(bag); prevVector = String.Join(",", erg.DegreeVector); erg.IterativelySwapEdgesToIncreaseAssortativity(); Assert.AreEqual(prevVector, String.Join(",", erg.DegreeVector)); } Assert.IsTrue(AllGraphsHaveNoZeroDegreeNodes()); }