Skip to content

Commit ad90217

Browse files
authored
Merge pull request #42 from matiii/feature/i20-page-rank
Feature/i20 page rank
2 parents 10ac290 + 949da17 commit ad90217

File tree

22 files changed

+603
-98
lines changed

22 files changed

+603
-98
lines changed

src/Dijkstra.NET.Benchmark/BenchmarkIt.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,7 @@ public int DijkstraExtensionBenchmark()
4040
[Benchmark]
4141
public double PageRankExtensionBenchmark()
4242
{
43-
var result = Graph.CalculatePageRank();
43+
var result = Graph.PageRank();
4444

4545
return result[BenchmarkBase.First];
4646
}

src/Dijkstra.NET.Tests/EdgeTest.cs

Lines changed: 7 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -5,13 +5,13 @@ namespace Dijkstra.NET.Tests
55
{
66
public class EdgeTest
77
{
8-
8+
99
[Fact]
1010
public void Two_Edges_Should_Be_Equal()
1111
{
1212
var g = new Graph<string, int>() + "node1";
1313
var n = g >> 1;
14-
14+
1515
var a = new Edge<string, int>(n, 1, 1);
1616
var b = new Edge<string, int>(n,1, 1);
1717

@@ -25,7 +25,7 @@ public void Two_Edges_Should_Be_Equal_With_Null_References()
2525
{
2626
var g = new Graph<string, string>() + "node1";
2727
var n = g >> 1;
28-
28+
2929
var a = new Edge<string, string>(n, 1, null);
3030
var b = new Edge<string, string>(n,1, null);
3131

@@ -39,7 +39,7 @@ public void Two_Edges_Should_Be_Diffrent_With_Null_Reference()
3939
{
4040
var g = new Graph<string, string>() + "node1";
4141
var n = g >> 1;
42-
42+
4343
var a = new Edge<string, string>(n, 1, null);
4444
var b = new Edge<string, string>(n,1, "a");
4545

@@ -55,7 +55,7 @@ public void Two_Edges_Should_Be_Diffrent_With_Diffrent_Parameter()
5555
{
5656
var g = new Graph<string, string>() + "node1";
5757
var n = g >> 1;
58-
58+
5959
var a = new Edge<string, string>(n, 1, "b");
6060
var b = new Edge<string, string>(n,1, "a");
6161

@@ -71,7 +71,7 @@ public void Two_Edges_Should_Be_Diffrent_With_Diffrent_Costs()
7171
{
7272
var g = new Graph<string, string>() + "node1";
7373
var n = g >> 1;
74-
74+
7575
var a = new Edge<string, string>(n, 3, "a");
7676
var b = new Edge<string, string>(n,1, "a");
7777

@@ -88,7 +88,7 @@ public void Two_Edges_Should_Be_Diffrent_With_Diffrent_Nodes()
8888
var g = new Graph<string, string>() + "node1" + "node2";
8989
var n1 = g >> 1;
9090
var n2 = g >> 2;
91-
91+
9292
var a = new Edge<string, string>(n1, 1, "a");
9393
var b = new Edge<string, string>(n2,1, "a");
9494

@@ -114,7 +114,6 @@ public void Edges_Get_TEdgeCustom_Should_Work()
114114
var first = node.GetFirstEdgeCustom(2);
115115
var second = node.GetFirstEdgeCustom(3);
116116

117-
118117
bool act = first == "First" && second == "Second";
119118

120119
Assert.True(act);

src/Dijkstra.NET.Tests/PageRank/PageRankExtensionsTests.cs

Lines changed: 53 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -26,11 +26,34 @@ public void CalculatePageRank_Should_Calculate_Correct_PageRank()
2626
g.Connect(d, c, 0, 0);
2727

2828

29-
var result = g.CalculatePageRank();
30-
29+
var result = g.PageRank();
30+
31+
Assert.True(Math.Abs(result[c] - 0.35625) < 0.0001);
32+
}
33+
34+
[Fact]
35+
public void SimpleGraph_CalculatePageRank_Should_Calculate_Correct_PageRank()
36+
{
37+
var g = new Graph.Simple.Graph();
38+
39+
uint a = g.AddNode();
40+
uint b = g.AddNode();
41+
uint c = g.AddNode();
42+
uint d = g.AddNode();
43+
44+
g.Connect(a, b);
45+
g.Connect(a, c);
46+
g.Connect(b, d);
47+
g.Connect(c, a);
48+
g.Connect(c, b);
49+
g.Connect(c, d);
50+
g.Connect(d, c);
51+
52+
var result = g.PageRank();
53+
3154
Assert.True(Math.Abs(result[c] - 0.35625) < 0.0001);
3255
}
33-
56+
3457
[Fact]
3558
public void CalculatePageRank_Should_Calculate_Correct_PageRank_Wiki()
3659
{
@@ -49,8 +72,33 @@ public void CalculatePageRank_Should_Calculate_Correct_PageRank_Wiki()
4972
g.Connect(d, c, 0, 0);
5073

5174

52-
var result = g.CalculatePageRank();
53-
75+
var result = g.PageRank();
76+
77+
Assert.True(Math.Abs(result[a] - 0.35) < 0.01);
78+
Assert.True(Math.Abs(result[b] - 0.29) < 0.01);
79+
Assert.True(Math.Abs(result[c] - 0.15) < 0.01);
80+
Assert.True(Math.Abs(result[d] - 0.18) < 0.01);
81+
}
82+
83+
[Fact]
84+
public void SimpleGraph_CalculatePageRank_Should_Calculate_Correct_PageRank_Wiki()
85+
{
86+
var g = new Graph.Simple.Graph();
87+
88+
uint a = g.AddNode();
89+
uint b = g.AddNode();
90+
uint c = g.AddNode();
91+
uint d = g.AddNode();
92+
93+
g.Connect(a, b);
94+
g.Connect(a, d);
95+
g.Connect(b, a);
96+
g.Connect(c, b);
97+
g.Connect(c, a);
98+
g.Connect(d, c);
99+
100+
var result = g.PageRank();
101+
54102
Assert.True(Math.Abs(result[a] - 0.35) < 0.01);
55103
Assert.True(Math.Abs(result[b] - 0.29) < 0.01);
56104
Assert.True(Math.Abs(result[c] - 0.15) < 0.01);

0 commit comments

Comments
 (0)