129 lines
6.2 KiB
C#
129 lines
6.2 KiB
C#
|
|
using System;
|
|
using System.Collections.Generic;
|
|
using System.Text;
|
|
using NUnit.Framework;
|
|
|
|
namespace ScrewTurn.Wiki.SearchEngine.Tests {
|
|
|
|
[TestFixture]
|
|
public class SortedBasicWordInfoSetTests : TestsBase {
|
|
|
|
[Test]
|
|
public void Constructor_Default() {
|
|
SortedBasicWordInfoSet set = new SortedBasicWordInfoSet();
|
|
Assert.AreEqual(0, set.Count, "Wrong count (set should be empty)");
|
|
}
|
|
|
|
[Test]
|
|
public void Constructor_WithCapacity() {
|
|
SortedBasicWordInfoSet set = new SortedBasicWordInfoSet(10);
|
|
Assert.AreEqual(0, set.Count, "Wrong count (set should be empty)");
|
|
Assert.AreEqual(10, set.Capacity, "Wrong capacity (capacity should be ensured)");
|
|
}
|
|
|
|
[Test]
|
|
[ExpectedException(typeof(ArgumentOutOfRangeException))]
|
|
public void Constructor_InvalidCapacity() {
|
|
SortedBasicWordInfoSet set = new SortedBasicWordInfoSet(0);
|
|
}
|
|
|
|
[Test]
|
|
public void Add_NewItem() {
|
|
SortedBasicWordInfoSet set = new SortedBasicWordInfoSet();
|
|
Assert.IsTrue(set.Add(new BasicWordInfo(10, 1, WordLocation.Content)), "Add should return true (adding new item)");
|
|
Assert.AreEqual(1, set.Count, "Wrong count (set should contain 1 item)");
|
|
}
|
|
|
|
[Test]
|
|
public void Add_ExistingItem() {
|
|
SortedBasicWordInfoSet set = new SortedBasicWordInfoSet();
|
|
Assert.IsTrue(set.Add(new BasicWordInfo(2, 0, WordLocation.Content)), "Add should return true (adding new item)");
|
|
Assert.AreEqual(1, set.Count, "Wrong count (set should contain 1 item)");
|
|
Assert.IsFalse(set.Add(new BasicWordInfo(2, 0, WordLocation.Content)), "Add should return false (adding existing item)");
|
|
Assert.AreEqual(1, set.Count, "Wrong count (set should contain 1 item)");
|
|
}
|
|
|
|
[Test]
|
|
public void Contains() {
|
|
SortedBasicWordInfoSet set = new SortedBasicWordInfoSet();
|
|
Assert.IsFalse(set.Contains(new BasicWordInfo(1, 0, WordLocation.Content)), "Contains should return false (inexistent item)");
|
|
Assert.IsTrue(set.Add(new BasicWordInfo(1, 0, WordLocation.Content)), "Add should return true (adding new item)");
|
|
Assert.IsTrue(set.Contains(new BasicWordInfo(1, 0, WordLocation.Content)), "Contains should return true (item exists)");
|
|
Assert.AreEqual(1, set.Count, "Wrong count (set should contain 1 item");
|
|
Assert.IsFalse(set.Contains(new BasicWordInfo(10, 2, WordLocation.Content)), "Contains should return false (inexistent item)");
|
|
}
|
|
|
|
[Test]
|
|
public void Remove() {
|
|
SortedBasicWordInfoSet set = new SortedBasicWordInfoSet();
|
|
Assert.IsFalse(set.Remove(new BasicWordInfo(1, 0, WordLocation.Content)), "Remove should return false (removing inexistent item");
|
|
Assert.IsTrue(set.Add(new BasicWordInfo(1, 0, WordLocation.Content)), "Add should return true (adding new item)");
|
|
Assert.AreEqual(1, set.Count, "Wrong count (set should contain 1 item)");
|
|
Assert.IsTrue(set.Contains(new BasicWordInfo(1, 0, WordLocation.Content)), "Contains should return true (item exists)");
|
|
Assert.IsTrue(set.Remove(new BasicWordInfo(1, 0, WordLocation.Content)), "Remove should return true (removing existing item)");
|
|
Assert.IsFalse(set.Contains(new BasicWordInfo(1, 0, WordLocation.Content)), "Contains should return false (inexistent item)");
|
|
Assert.AreEqual(0, set.Count, "Wrong count (set should be empty)");
|
|
}
|
|
|
|
[Test]
|
|
public void Clear() {
|
|
SortedBasicWordInfoSet set = new SortedBasicWordInfoSet();
|
|
Assert.IsTrue(set.Add(new BasicWordInfo(10, 2, WordLocation.Content)), "Add should return true (adding new item)");
|
|
Assert.IsTrue(set.Add(new BasicWordInfo(2, 1, WordLocation.Content)), "Add should return true (adding new item)");
|
|
Assert.AreEqual(2, set.Count, "Wrong count (set should contain 2 items)");
|
|
set.Clear();
|
|
Assert.AreEqual(0, set.Count, "Wrong count (set should be empty)");
|
|
Assert.IsFalse(set.Contains(new BasicWordInfo(10, 2, WordLocation.Content)), "Contains should return false (empty set)");
|
|
Assert.IsFalse(set.Contains(new BasicWordInfo(2, 1, WordLocation.Content)), "Contains should return false (empty set)");
|
|
}
|
|
|
|
[Test]
|
|
public void GetEnumerator() {
|
|
SortedBasicWordInfoSet set = new SortedBasicWordInfoSet();
|
|
Assert.IsTrue(set.Add(new BasicWordInfo(1, 0, WordLocation.Content)), "Add should return true (adding new item)");
|
|
Assert.IsTrue(set.Add(new BasicWordInfo(3, 1, WordLocation.Content)), "Add should return true (adding new item)");
|
|
Assert.AreEqual(2, set.Count);
|
|
int count = 0;
|
|
foreach(BasicWordInfo item in set) {
|
|
if(count == 0) Assert.AreEqual(1, item.FirstCharIndex, "Wrong start index for current item");
|
|
if(count == 0) Assert.AreEqual(0, item.WordIndex, "Wrong word index for current item");
|
|
if(count == 1) Assert.AreEqual(3, item.FirstCharIndex, "Wrong start index for current item");
|
|
if(count == 1) Assert.AreEqual(1, item.WordIndex, "Wrong word index for current item");
|
|
count++;
|
|
}
|
|
Assert.AreEqual(2, count);
|
|
}
|
|
|
|
[Test]
|
|
public void Indexer() {
|
|
SortedBasicWordInfoSet set = new SortedBasicWordInfoSet();
|
|
Assert.IsTrue(set.Add(new BasicWordInfo(1, 0, WordLocation.Content)), "Add should return true (adding new item)");
|
|
Assert.IsTrue(set.Add(new BasicWordInfo(10, 1, WordLocation.Content)), "Add should return true (adding new item)");
|
|
Assert.IsTrue(set.Add(new BasicWordInfo(3, 2, WordLocation.Content)), "Add should return true (adding new item)");
|
|
Assert.AreEqual(3, set.Count);
|
|
Assert.AreEqual(1, set[0].FirstCharIndex, "Wrong start index at index 0");
|
|
Assert.AreEqual(0, set[0].WordIndex, "Wrong word index at index 0");
|
|
Assert.AreEqual(10, set[1].FirstCharIndex, "Wrong start index at index 1");
|
|
Assert.AreEqual(1, set[1].WordIndex, "Wrong word index at index 1");
|
|
Assert.AreEqual(3, set[2].FirstCharIndex, "Wrong start index at index 2");
|
|
Assert.AreEqual(2, set[2].WordIndex, "Wrong word index at index 2");
|
|
}
|
|
|
|
[Test]
|
|
[ExpectedException(typeof(IndexOutOfRangeException))]
|
|
public void Indexer_InvalidIndex_Negative() {
|
|
SortedBasicWordInfoSet set = new SortedBasicWordInfoSet();
|
|
BasicWordInfo i = set[-1];
|
|
}
|
|
|
|
[Test]
|
|
[ExpectedException(typeof(IndexOutOfRangeException))]
|
|
public void Indexer_InvalidIndex_TooBig() {
|
|
SortedBasicWordInfoSet set = new SortedBasicWordInfoSet();
|
|
BasicWordInfo i = set[1];
|
|
}
|
|
|
|
}
|
|
|
|
}
|