-
Notifications
You must be signed in to change notification settings - Fork 299
/
Copy pathBoyerMoore_Tests.cs
33 lines (26 loc) · 985 Bytes
/
BoyerMoore_Tests.cs
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
using System;
using System.Collections.Generic;
using System.Linq;
using Advanced.Algorithms.Search;
using Microsoft.VisualStudio.TestTools.UnitTesting;
namespace Advanced.Algorithms.Tests.Search
{
[TestClass]
public class BoyerMooreTests
{
[TestMethod]
public void BoyerMoore_Majority_Finder_Test()
{
var elementCount = 1000;
var rnd = new Random();
var randomNumbers = new List<int>();
while (randomNumbers.Count < elementCount / 2) randomNumbers.Add(rnd.Next(0, elementCount));
var majorityElement = rnd.Next(0, elementCount);
randomNumbers.AddRange(Enumerable.Repeat(majorityElement, elementCount / 2 + 1));
randomNumbers = randomNumbers.OrderBy(x => rnd.Next()).ToList();
var expected = majorityElement;
var actual = BoyerMoore<int>.FindMajority(randomNumbers);
Assert.AreEqual(actual, expected);
}
}
}