Skip to content

Commit dc1bb08

Browse files
committed
enumerable support
1 parent 5212383 commit dc1bb08

20 files changed

+665
-511
lines changed

Advanced.Algorithms.Tests/Advanced.Algorithms.Tests.csproj

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -64,7 +64,7 @@
6464
<Compile Include="Combinatorics\Permutation_Tests.cs" />
6565
<Compile Include="Compression\HuffmanCoding_Tests.cs" />
6666
<Compile Include="DataStructures\Dictionary\Dictionary_Tests.cs" />
67-
<Compile Include="DataStructures\Dictionary\TreeDictionary_Tests.cs" />
67+
<Compile Include="DataStructures\Dictionary\SortedDictionary_Tests.cs" />
6868
<Compile Include="DataStructures\Graph\AdjacencyMatrix\DiGraph_Tests.cs" />
6969
<Compile Include="DataStructures\Graph\AdjacencyMatrix\Graph_Tests.cs" />
7070
<Compile Include="DataStructures\Graph\AdjacencyMatrix\WeightedDiGraph_Tests.cs" />
@@ -74,7 +74,7 @@
7474
<Compile Include="DataStructures\Graph\AdjacencyList\WeightedDiGraph_Tests.cs" />
7575
<Compile Include="DataStructures\Graph\AdjacencyList\WeightedGraph_Tests.cs" />
7676
<Compile Include="DataStructures\HashSet\HashSet_Tests.cs" />
77-
<Compile Include="DataStructures\HashSet\TreeHashSet_Tests.cs" />
77+
<Compile Include="DataStructures\HashSet\SortedHashSet_Tests.cs" />
7878
<Compile Include="DataStructures\Heap\Max\BinomialMaxHeap_Tests.cs" />
7979
<Compile Include="DataStructures\Heap\Max\BMaxHeap_Tests.cs" />
8080
<Compile Include="DataStructures\Heap\Max\D-aryMaxHeap_Tests.cs" />

Advanced.Algorithms.Tests/DataStructures/Dictionary/Dictionary_Tests.cs

Lines changed: 42 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -14,92 +14,108 @@ public class Dictionary_Tests
1414
[TestMethod]
1515
public void Dictionary_SeparateChaining_Test()
1616
{
17-
var Dictionary = new Dictionary<int, int>(DictionaryType.SeparateChaining);
17+
var dictionary = new Dictionary<int, int>(DictionaryType.SeparateChaining);
1818
int nodeCount = 1000 * 10;
19+
1920
//insert test
20-
21-
2221
for (int i = 0; i <= nodeCount; i++)
2322
{
24-
Dictionary.Add(i, i);
25-
Assert.AreEqual(true, Dictionary.ContainsKey(i));
23+
dictionary.Add(i, i);
24+
Assert.AreEqual(true, dictionary.ContainsKey(i));
2625
}
2726

27+
//IEnumerable test using linq
28+
Assert.AreEqual(dictionary.Count, dictionary.Count());
2829

2930
for (int i = 0; i <= nodeCount; i++)
3031
{
31-
Dictionary.Remove(i);
32-
Assert.AreEqual(false, Dictionary.ContainsKey(i));
32+
dictionary.Remove(i);
33+
Assert.AreEqual(false, dictionary.ContainsKey(i));
3334
}
3435

36+
//IEnumerable test using linq
37+
Assert.AreEqual(dictionary.Count, dictionary.Count());
3538

3639
var rnd = new Random();
3740
var testSeries = Enumerable.Range(1, nodeCount).OrderBy(x => rnd.Next()).ToList();
3841

39-
4042
foreach (var item in testSeries)
4143
{
42-
Dictionary.Add(item, item);
43-
Assert.AreEqual(true, Dictionary.ContainsKey(item));
44+
dictionary.Add(item, item);
45+
Assert.AreEqual(true, dictionary.ContainsKey(item));
4446
}
4547

48+
//IEnumerable test using linq
49+
Assert.AreEqual(dictionary.Count, dictionary.Count());
50+
4651
foreach (var item in testSeries)
4752
{
48-
Assert.AreEqual(true, Dictionary.ContainsKey(item));
53+
Assert.AreEqual(true, dictionary.ContainsKey(item));
4954
}
5055

5156
for (int i = 1; i <= nodeCount; i++)
5257
{
53-
Dictionary.Remove(i);
54-
Assert.AreEqual(false, Dictionary.ContainsKey(i));
58+
dictionary.Remove(i);
59+
Assert.AreEqual(false, dictionary.ContainsKey(i));
5560
}
5661

62+
//IEnumerable test using linq
63+
Assert.AreEqual(dictionary.Count, dictionary.Count());
64+
5765
}
5866

5967

6068
[TestMethod]
6169
public void Dictionary_OpenAddressing_Test()
6270
{
63-
var Dictionary = new Dictionary<int, int>(DictionaryType.OpenAddressing);
71+
var dictionary = new Dictionary<int, int>(DictionaryType.OpenAddressing);
6472
int nodeCount = 1000 * 10;
73+
6574
//insert test
66-
67-
6875
for (int i = 0; i <= nodeCount; i++)
6976
{
70-
Dictionary.Add(i, i);
71-
Assert.AreEqual(true, Dictionary.ContainsKey(i));
77+
dictionary.Add(i, i);
78+
Assert.AreEqual(true, dictionary.ContainsKey(i));
7279
}
7380

81+
//IEnumerable test using linq
82+
Assert.AreEqual(dictionary.Count, dictionary.Count());
7483

7584
for (int i = 0; i <= nodeCount; i++)
7685
{
77-
Dictionary.Remove(i);
78-
Assert.AreEqual(false, Dictionary.ContainsKey(i));
86+
dictionary.Remove(i);
87+
Assert.AreEqual(false, dictionary.ContainsKey(i));
7988
}
8089

90+
//IEnumerable test using linq
91+
Assert.AreEqual(dictionary.Count, dictionary.Count());
8192

8293
var rnd = new Random();
8394
var testSeries = Enumerable.Range(1, nodeCount).OrderBy(x => rnd.Next()).ToList();
8495

85-
8696
foreach (var item in testSeries)
8797
{
88-
Dictionary.Add(item, item);
89-
Assert.AreEqual(true, Dictionary.ContainsKey(item));
98+
dictionary.Add(item, item);
99+
Assert.AreEqual(true, dictionary.ContainsKey(item));
90100
}
91101

102+
//IEnumerable test using linq
103+
Assert.AreEqual(dictionary.Count, dictionary.Count());
104+
92105
foreach (var item in testSeries)
93106
{
94-
Assert.AreEqual(true, Dictionary.ContainsKey(item));
107+
Assert.AreEqual(true, dictionary.ContainsKey(item));
95108
}
96109

97110
for (int i = 1; i <= nodeCount; i++)
98111
{
99-
Dictionary.Remove(i);
100-
Assert.AreEqual(false, Dictionary.ContainsKey(i));
112+
dictionary.Remove(i);
113+
Assert.AreEqual(false, dictionary.ContainsKey(i));
101114
}
102115

116+
//IEnumerable test using linq
117+
Assert.AreEqual(dictionary.Count, dictionary.Count());
118+
103119
}
104120
}
105121
}
Lines changed: 62 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,62 @@
1+
using Advanced.Algorithms.DataStructures;
2+
using Microsoft.VisualStudio.TestTools.UnitTesting;
3+
using System;
4+
using System.Linq;
5+
6+
namespace Advanced.Algorithms.Tests.DataStructures
7+
{
8+
[TestClass]
9+
public class SortedDictionary_Tests
10+
{
11+
/// <summary>
12+
/// key value dictionary tests
13+
/// </summary>
14+
[TestMethod]
15+
public void SortedDictionary_Test()
16+
{
17+
var dictionary = new SortedDictionary<int, int>();
18+
19+
int nodeCount = 1000;
20+
21+
//insert test
22+
for (int i = 0; i <= nodeCount; i++)
23+
{
24+
dictionary.Add(i, i);
25+
Assert.AreEqual(true, dictionary.ContainsKey(i));
26+
}
27+
28+
//IEnumerable test using linq
29+
Assert.AreEqual(dictionary.Count, dictionary.Count());
30+
31+
for (int i = 0; i <= nodeCount; i++)
32+
{
33+
dictionary.Remove(i);
34+
Assert.AreEqual(false, dictionary.ContainsKey(i));
35+
}
36+
37+
//IEnumerable test using linq
38+
Assert.AreEqual(dictionary.Count, dictionary.Count());
39+
40+
var rnd = new Random();
41+
var testSeries = Enumerable.Range(1, nodeCount).OrderBy(x => rnd.Next()).ToList();
42+
43+
foreach (var item in testSeries)
44+
{
45+
dictionary.Add(item, item);
46+
Assert.AreEqual(true, dictionary.ContainsKey(item));
47+
}
48+
49+
//IEnumerable test using linq
50+
Assert.AreEqual(dictionary.Count, dictionary.Count());
51+
52+
for (int i = 1; i <= nodeCount; i++)
53+
{
54+
dictionary.Remove(i);
55+
Assert.AreEqual(false, dictionary.ContainsKey(i));
56+
}
57+
58+
//IEnumerable test using linq
59+
Assert.AreEqual(dictionary.Count, dictionary.Count());
60+
}
61+
}
62+
}

Advanced.Algorithms.Tests/DataStructures/Dictionary/TreeDictionary_Tests.cs

Lines changed: 0 additions & 54 deletions
This file was deleted.

0 commit comments

Comments
 (0)