Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/mono/mono.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'mcs/class/Mono.C5/Test/trees/RedBlackTreeSetTests.cs')
-rw-r--r--mcs/class/Mono.C5/Test/trees/RedBlackTreeSetTests.cs587
1 files changed, 219 insertions, 368 deletions
diff --git a/mcs/class/Mono.C5/Test/trees/RedBlackTreeSetTests.cs b/mcs/class/Mono.C5/Test/trees/RedBlackTreeSetTests.cs
index 09a13182df7..117ba6dd2b3 100644
--- a/mcs/class/Mono.C5/Test/trees/RedBlackTreeSetTests.cs
+++ b/mcs/class/Mono.C5/Test/trees/RedBlackTreeSetTests.cs
@@ -1,5 +1,6 @@
+#if NET_2_0
/*
- Copyright (c) 2003-2006 Niels Kokholm and Peter Sestoft
+ Copyright (c) 2003-2004 Niels Kokholm <kokholm@itu.dk> and Peter Sestoft <sestoft@dina.kvl.dk>
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
@@ -22,59 +23,12 @@
using System;
using C5;
using NUnit.Framework;
-using SCG = System.Collections.Generic;
+using MSG = System.Collections.Generic;
-namespace C5UnitTests.trees.TreeSet
+namespace nunit.trees.TreeSet
{
- using CollectionOfInt = TreeSet<int>;
-
- [TestFixture]
- public class GenericTesters
- {
- [Test]
- public void TestEvents()
- {
- Fun<CollectionOfInt> factory = delegate() { return new CollectionOfInt(TenEqualityComparer.Default); };
- new C5UnitTests.Templates.Events.SortedIndexedTester<CollectionOfInt>().Test(factory);
- }
-
- [Test]
- public void Extensible()
- {
- C5UnitTests.Templates.Extensible.Clone.Tester<CollectionOfInt>();
- C5UnitTests.Templates.Extensible.Serialization.Tester<CollectionOfInt>();
- }
- }
-
- static class Factory
- {
- public static ICollection<T> New<T>() { return new TreeSet<T>(); }
- }
-
-
- [TestFixture]
- public class Formatting
- {
- ICollection<int> coll;
- IFormatProvider rad16;
- [SetUp]
- public void Init() { coll = Factory.New<int>(); rad16 = new RadixFormatProvider(16); }
- [TearDown]
- public void Dispose() { coll = null; rad16 = null; }
- [Test]
- public void Format()
- {
- Assert.AreEqual("{ }", coll.ToString());
- coll.AddAll<int>(new int[] { -4, 28, 129, 65530 });
- Assert.AreEqual("{ -4, 28, 129, 65530 }", coll.ToString());
- Assert.AreEqual("{ -4, 1C, 81, FFFA }", coll.ToString(null, rad16));
- Assert.AreEqual("{ -4, 28, 129... }", coll.ToString("L14", null));
- Assert.AreEqual("{ -4, 1C, 81... }", coll.ToString("L14", rad16));
- }
- }
-
- [TestFixture]
- public class Combined
+ [TestFixture]
+ public class Combined
{
private IIndexedSorted<KeyValuePair<int,int>> lst;
@@ -98,8 +52,8 @@ namespace C5UnitTests.trees.TreeSet
KeyValuePair<int,int> p = new KeyValuePair<int,int>(3, 78);
Assert.IsTrue(lst.Find(ref p));
- Assert.AreEqual(3, p.Key);
- Assert.AreEqual(33, p.Value);
+ Assert.AreEqual(3, p.key);
+ Assert.AreEqual(33, p.value);
p = new KeyValuePair<int,int>(13, 78);
Assert.IsFalse(lst.Find(ref p));
}
@@ -111,12 +65,12 @@ namespace C5UnitTests.trees.TreeSet
KeyValuePair<int,int> p = new KeyValuePair<int,int>(3, 78);
Assert.IsTrue(lst.FindOrAdd(ref p));
- Assert.AreEqual(3, p.Key);
- Assert.AreEqual(33, p.Value);
+ Assert.AreEqual(3, p.key);
+ Assert.AreEqual(33, p.value);
p = new KeyValuePair<int,int>(13, 79);
Assert.IsFalse(lst.FindOrAdd(ref p));
- Assert.AreEqual(13, lst[10].Key);
- Assert.AreEqual(79, lst[10].Value);
+ Assert.AreEqual(13, lst[10].key);
+ Assert.AreEqual(79, lst[10].value);
}
@@ -126,8 +80,8 @@ namespace C5UnitTests.trees.TreeSet
KeyValuePair<int,int> p = new KeyValuePair<int,int>(3, 78);
Assert.IsTrue(lst.Update(p));
- Assert.AreEqual(3, lst[3].Key);
- Assert.AreEqual(78, lst[3].Value);
+ Assert.AreEqual(3, lst[3].key);
+ Assert.AreEqual(78, lst[3].value);
p = new KeyValuePair<int,int>(13, 78);
Assert.IsFalse(lst.Update(p));
}
@@ -139,12 +93,12 @@ namespace C5UnitTests.trees.TreeSet
KeyValuePair<int,int> p = new KeyValuePair<int,int>(3, 78);
Assert.IsTrue(lst.UpdateOrAdd(p));
- Assert.AreEqual(3, lst[3].Key);
- Assert.AreEqual(78, lst[3].Value);
+ Assert.AreEqual(3, lst[3].key);
+ Assert.AreEqual(78, lst[3].value);
p = new KeyValuePair<int,int>(13, 79);
Assert.IsFalse(lst.UpdateOrAdd(p));
- Assert.AreEqual(13, lst[10].Key);
- Assert.AreEqual(79, lst[10].Value);
+ Assert.AreEqual(13, lst[10].key);
+ Assert.AreEqual(79, lst[10].value);
}
@@ -153,14 +107,14 @@ namespace C5UnitTests.trees.TreeSet
{
KeyValuePair<int,int> p = new KeyValuePair<int,int>(3, 78);
- Assert.IsTrue(lst.Remove(p, out p));
- Assert.AreEqual(3, p.Key);
- Assert.AreEqual(33, p.Value);
- Assert.AreEqual(4, lst[3].Key);
- Assert.AreEqual(34, lst[3].Value);
+ Assert.IsTrue(lst.RemoveWithReturn(ref p));
+ Assert.AreEqual(3, p.key);
+ Assert.AreEqual(33, p.value);
+ Assert.AreEqual(4, lst[3].key);
+ Assert.AreEqual(34, lst[3].value);
p = new KeyValuePair<int,int>(13, 78);
- Assert.IsFalse(lst.Remove(p, out p));
- }
+ Assert.IsFalse(lst.RemoveWithReturn(ref p));
+ }
}
@@ -169,7 +123,7 @@ namespace C5UnitTests.trees.TreeSet
{
private TreeSet<int> tree;
- private SCG.IComparer<int> c;
+ private IComparer<int> c;
[SetUp]
@@ -187,7 +141,7 @@ namespace C5UnitTests.trees.TreeSet
[Test]
public void Enumerator()
{
- SCG.IEnumerator<int> e = tree.RangeFromTo(5, 17).GetEnumerator();
+ MSG.IEnumerator<int> e = tree.RangeFromTo(5, 17).GetEnumerator();
int i = 3;
while (e.MoveNext())
@@ -203,7 +157,7 @@ namespace C5UnitTests.trees.TreeSet
[ExpectedException(typeof(InvalidOperationException))]
public void Enumerator2()
{
- SCG.IEnumerator<int> e = tree.RangeFromTo(5, 17).GetEnumerator();
+ MSG.IEnumerator<int> e = tree.RangeFromTo(5, 17).GetEnumerator();
int i = e.Current;
}
@@ -212,7 +166,7 @@ namespace C5UnitTests.trees.TreeSet
[ExpectedException(typeof(InvalidOperationException))]
public void Enumerator3()
{
- SCG.IEnumerator<int> e = tree.RangeFromTo(5, 17).GetEnumerator();
+ MSG.IEnumerator<int> e = tree.RangeFromTo(5, 17).GetEnumerator();
while (e.MoveNext());
@@ -396,50 +350,8 @@ namespace C5UnitTests.trees.TreeSet
}
}
- [Test]
- [ExpectedException(typeof(NullReferenceException))]
- public void NullEqualityComparerinConstructor1()
- {
- new TreeSet<int>(null);
- }
-
- [Test]
- [ExpectedException(typeof(NullReferenceException))]
- public void NullEqualityComparerinConstructor3()
- {
- new TreeSet<int>(null, EqualityComparer<int>.Default);
- }
-
- [Test]
- [ExpectedException(typeof(NullReferenceException))]
- public void NullEqualityComparerinConstructor4()
- {
- new TreeSet<int>(Comparer<int>.Default, null);
- }
-
- [Test]
- [ExpectedException(typeof(NullReferenceException))]
- public void NullEqualityComparerinConstructor5()
- {
- new TreeSet<int>(null, null);
- }
-
- [Test]
- public void Choose()
- {
- tree.Add(7);
- Assert.AreEqual(7, tree.Choose());
- }
-
- [Test]
- [ExpectedException(typeof(NoSuchItemException))]
- public void BadChoose()
- {
- tree.Choose();
- }
-
-
- [Test]
+
+ [Test]
public void NoDuplicates()
{
Assert.IsFalse(tree.AllowsDuplicates);
@@ -492,100 +404,19 @@ namespace C5UnitTests.trees.TreeSet
KeyValuePair<int,string> p = new KeyValuePair<int,string>(3, "tre");
Assert.IsFalse(bag.FindOrAdd(ref p));
- p.Value = "drei";
+ p.value = "drei";
Assert.IsTrue(bag.FindOrAdd(ref p));
- Assert.AreEqual("tre", p.Value);
- p.Value = "three";
+ Assert.AreEqual("tre", p.value);
+ p.value = "three";
Assert.AreEqual(1, bag.ContainsCount(p));
- Assert.AreEqual("tre", bag[0].Value);
+ Assert.AreEqual("tre", bag[0].value);
}
}
- [TestFixture]
- public class FindPredicate
- {
- private TreeSet<int> list;
- Fun<int, bool> pred;
-
- [SetUp]
- public void Init()
- {
- list = new TreeSet<int>(TenEqualityComparer.Default);
- pred = delegate(int i) { return i % 5 == 0; };
- }
-
- [TearDown]
- public void Dispose() { list = null; }
-
- [Test]
- public void Find()
- {
- int i;
- Assert.IsFalse(list.Find(pred, out i));
- list.AddAll<int>(new int[] { 4, 22, 67, 37 });
- Assert.IsFalse(list.Find(pred, out i));
- list.AddAll<int>(new int[] { 45, 122, 675, 137 });
- Assert.IsTrue(list.Find(pred, out i));
- Assert.AreEqual(45, i);
- }
-
- [Test]
- public void FindLast()
- {
- int i;
- Assert.IsFalse(list.FindLast(pred, out i));
- list.AddAll<int>(new int[] { 4, 22, 67, 37 });
- Assert.IsFalse(list.FindLast(pred, out i));
- list.AddAll<int>(new int[] { 45, 122, 675, 137 });
- Assert.IsTrue(list.FindLast(pred, out i));
- Assert.AreEqual(675, i);
- }
-
- [Test]
- public void FindIndex()
- {
- Assert.IsFalse(0 <= list.FindIndex(pred));
- list.AddAll<int>(new int[] { 4, 22, 67, 37 });
- Assert.IsFalse(0 <= list.FindIndex(pred));
- list.AddAll<int>(new int[] { 45, 122, 675, 137 });
- Assert.AreEqual(3, list.FindIndex(pred));
- }
-
- [Test]
- public void FindLastIndex()
- {
- Assert.IsFalse(0 <= list.FindLastIndex(pred));
- list.AddAll<int>(new int[] { 4, 22, 67, 37 });
- Assert.IsFalse(0 <= list.FindLastIndex(pred));
- list.AddAll<int>(new int[] { 45, 122, 675, 137 });
- Assert.AreEqual(7, list.FindLastIndex(pred));
- }
- }
-
- [TestFixture]
- public class UniqueItems
- {
- private TreeSet<int> list;
-
- [SetUp]
- public void Init() { list = new TreeSet<int>(); }
-
- [TearDown]
- public void Dispose() { list = null; }
-
- [Test]
- public void Test()
- {
- Assert.IsTrue(IC.seteq(list.UniqueItems()));
- Assert.IsTrue(IC.seteq(list.ItemMultiplicities()));
- list.AddAll<int>(new int[] { 7, 9, 7 });
- Assert.IsTrue(IC.seteq(list.UniqueItems(), 7, 9));
- Assert.IsTrue(IC.seteq(list.ItemMultiplicities(), 7, 1, 9, 1));
- }
- }
-
- [TestFixture]
- public class ArrayTest
+
+
+ [TestFixture]
+ public class ArrayTest
{
private TreeSet<int> tree;
@@ -649,10 +480,11 @@ namespace C5UnitTests.trees.TreeSet
[Test]
- [ExpectedException(typeof(ArgumentOutOfRangeException))]
- public void CopyToBad()
+ [ExpectedException(typeof(ArgumentException))]
+ public void CopyToBad()
{
- tree.CopyTo(a, 11);
+ tree.Add(3);
+ tree.CopyTo(a, 10);
}
@@ -665,8 +497,8 @@ namespace C5UnitTests.trees.TreeSet
[Test]
- [ExpectedException(typeof(ArgumentOutOfRangeException))]
- public void CopyToTooFar()
+ [ExpectedException(typeof(ArgumentException))]
+ public void CopyToTooFar()
{
tree.Add(3);
tree.Add(4);
@@ -755,7 +587,7 @@ namespace C5UnitTests.trees.TreeSet
[Test]
- [ExpectedException(typeof(IndexOutOfRangeException), "Index out of range for sequenced collectionvalue")]
+ [ExpectedException(typeof(IndexOutOfRangeException), "Index out of range for sequenced collection")]
public void Empty()
{
tree.Clear();
@@ -764,7 +596,7 @@ namespace C5UnitTests.trees.TreeSet
[Test]
- [ExpectedException(typeof(IndexOutOfRangeException), "Index out of range for sequenced collectionvalue")]
+ [ExpectedException(typeof(IndexOutOfRangeException), "Index out of range for sequenced collection")]
public void HighIndex()
{
tree.RemoveAt(tree.Count);
@@ -772,7 +604,7 @@ namespace C5UnitTests.trees.TreeSet
[Test]
- [ExpectedException(typeof(IndexOutOfRangeException), "Index out of range for sequenced collectionvalue")]
+ [ExpectedException(typeof(IndexOutOfRangeException), "Index out of range for sequenced collection")]
public void LowIndex()
{
tree.RemoveAt(-1);
@@ -892,16 +724,16 @@ namespace C5UnitTests.trees.TreeSet
[Test]
- [ExpectedException(typeof(NoSuchItemException))]
- public void PredecessorTooLow1()
+ [ExpectedException(typeof(ArgumentOutOfRangeException))]
+ public void PredecessorTooLow1()
{
tree.Predecessor(-2);
}
[Test]
- [ExpectedException(typeof(NoSuchItemException))]
- public void PredecessorTooLow2()
+ [ExpectedException(typeof(ArgumentOutOfRangeException))]
+ public void PredecessorTooLow2()
{
tree.Predecessor(0);
}
@@ -925,8 +757,8 @@ namespace C5UnitTests.trees.TreeSet
[Test]
- [ExpectedException(typeof(NoSuchItemException))]
- public void WeakPredecessorTooLow1()
+ [ExpectedException(typeof(ArgumentOutOfRangeException))]
+ public void WeakPredecessorTooLow1()
{
tree.WeakPredecessor(-2);
}
@@ -949,16 +781,16 @@ namespace C5UnitTests.trees.TreeSet
[Test]
- [ExpectedException(typeof(NoSuchItemException))]
- public void SuccessorTooHigh1()
+ [ExpectedException(typeof(ArgumentOutOfRangeException))]
+ public void SuccessorTooHigh1()
{
tree.Successor(38);
}
[Test]
- [ExpectedException(typeof(NoSuchItemException))]
- public void SuccessorTooHigh2()
+ [ExpectedException(typeof(ArgumentOutOfRangeException))]
+ public void SuccessorTooHigh2()
{
tree.Successor(39);
}
@@ -982,8 +814,8 @@ namespace C5UnitTests.trees.TreeSet
[Test]
- [ExpectedException(typeof(NoSuchItemException))]
- public void WeakSuccessorTooHigh1()
+ [ExpectedException(typeof(ArgumentOutOfRangeException))]
+ public void WeakSuccessorTooHigh1()
{
tree.WeakSuccessor(39);
}
@@ -1036,7 +868,7 @@ namespace C5UnitTests.trees.TreeSet
[Test]
- [ExpectedException(typeof(NoSuchItemException))]
+ [ExpectedException(typeof(InvalidOperationException), "Priority queue is empty")]
public void Empty1()
{
tree.FindMin();
@@ -1044,7 +876,7 @@ namespace C5UnitTests.trees.TreeSet
[Test]
- [ExpectedException(typeof(NoSuchItemException))]
+ [ExpectedException(typeof(InvalidOperationException), "Priority queue is empty")]
public void Empty2()
{
tree.FindMax();
@@ -1052,7 +884,7 @@ namespace C5UnitTests.trees.TreeSet
[Test]
- [ExpectedException(typeof(NoSuchItemException))]
+ [ExpectedException(typeof(InvalidOperationException), "Priority queue is empty")]
public void Empty3()
{
tree.DeleteMin();
@@ -1060,7 +892,7 @@ namespace C5UnitTests.trees.TreeSet
[Test]
- [ExpectedException(typeof(NoSuchItemException))]
+ [ExpectedException(typeof(InvalidOperationException), "Priority queue is empty")]
public void Empty4()
{
tree.DeleteMax();
@@ -1127,16 +959,16 @@ namespace C5UnitTests.trees.TreeSet
Assert.AreEqual(1, tree.IndexOf(30));
Assert.AreEqual(2, tree.IndexOf(50));
Assert.AreEqual(3, tree.IndexOf(70));
- Assert.AreEqual(~1, tree.IndexOf(20));
- Assert.AreEqual(~0, tree.IndexOf(0));
- Assert.AreEqual(~4, tree.IndexOf(90));
+ Assert.AreEqual(-1, tree.IndexOf(20));
+ Assert.AreEqual(-1, tree.IndexOf(0));
+ Assert.AreEqual(-1, tree.IndexOf(90));
Assert.AreEqual(0, tree.LastIndexOf(10));
Assert.AreEqual(1, tree.LastIndexOf(30));
Assert.AreEqual(2, tree.LastIndexOf(50));
Assert.AreEqual(3, tree.LastIndexOf(70));
- Assert.AreEqual(~1, tree.LastIndexOf(20));
- Assert.AreEqual(~0, tree.LastIndexOf(0));
- Assert.AreEqual(~4, tree.LastIndexOf(90));
+ Assert.AreEqual(-1, tree.LastIndexOf(20));
+ Assert.AreEqual(-1, tree.LastIndexOf(0));
+ Assert.AreEqual(-1, tree.LastIndexOf(90));
}
@@ -1221,7 +1053,7 @@ namespace C5UnitTests.trees.TreeSet
{
private TreeSet<int> tree;
- private SCG.IEnumerator<int> e;
+ private MSG.IEnumerator<int> e;
[SetUp]
@@ -1245,8 +1077,8 @@ namespace C5UnitTests.trees.TreeSet
[Test]
- [ExpectedException(typeof(CollectionModifiedException))]
- public void MoveNextAfterAdd()
+ [ExpectedException(typeof(InvalidOperationException), "Collection was modified")]
+ public void MoveNextAfterAdd()
{
tree.Add(34);
e.MoveNext();
@@ -1256,8 +1088,8 @@ namespace C5UnitTests.trees.TreeSet
[Test]
- [ExpectedException(typeof(CollectionModifiedException))]
- public void MoveNextAfterRemove()
+ [ExpectedException(typeof(InvalidOperationException), "Collection was modified")]
+ public void MoveNextAfterRemove()
{
tree.Remove(34);
e.MoveNext();
@@ -1265,8 +1097,8 @@ namespace C5UnitTests.trees.TreeSet
[Test]
- [ExpectedException(typeof(CollectionModifiedException))]
- public void MoveNextAfterClear()
+ [ExpectedException(typeof(InvalidOperationException), "Collection was modified")]
+ public void MoveNextAfterClear()
{
tree.Clear();
e.MoveNext();
@@ -1288,7 +1120,7 @@ namespace C5UnitTests.trees.TreeSet
{
private TreeSet<int> tree;
- private SCG.IEnumerator<int> e;
+ private MSG.IEnumerator<int> e;
[SetUp]
@@ -1312,8 +1144,8 @@ namespace C5UnitTests.trees.TreeSet
[Test]
- [ExpectedException(typeof(CollectionModifiedException))]
- public void MoveNextAfterAdd()
+ [ExpectedException(typeof(InvalidOperationException), "Collection was modified")]
+ public void MoveNextAfterAdd()
{
tree.Add(34);
e.MoveNext();
@@ -1323,8 +1155,8 @@ namespace C5UnitTests.trees.TreeSet
[Test]
- [ExpectedException(typeof(CollectionModifiedException))]
- public void MoveNextAfterRemove()
+ [ExpectedException(typeof(InvalidOperationException), "Collection was modified")]
+ public void MoveNextAfterRemove()
{
tree.Remove(34);
e.MoveNext();
@@ -1332,8 +1164,8 @@ namespace C5UnitTests.trees.TreeSet
[Test]
- [ExpectedException(typeof(CollectionModifiedException))]
- public void MoveNextAfterClear()
+ [ExpectedException(typeof(InvalidOperationException), "Collection was modified")]
+ public void MoveNextAfterClear()
{
tree.Clear();
e.MoveNext();
@@ -1359,7 +1191,7 @@ namespace C5UnitTests.trees.TreeSet
{
private TreeSet<int> tree, snap;
- private SCG.IComparer<int> ic;
+ private IComparer<int> ic;
[SetUp]
@@ -1385,7 +1217,7 @@ namespace C5UnitTests.trees.TreeSet
[Test]
public void InternalEnum()
{
- Assert.IsTrue(IC.eq(snap.FindAll(new Fun<int, bool>(twomodeleven)), 13, 35));
+ Assert.IsTrue(IC.eq(snap.FindAll(new Filter<int>(twomodeleven)), 13, 35));
}
@@ -1524,7 +1356,7 @@ namespace C5UnitTests.trees.TreeSet
{
private TreeSet<int> tree;
- private SCG.IComparer<int> ic;
+ private IComparer<int> ic;
[SetUp]
@@ -1752,10 +1584,10 @@ namespace C5UnitTests.trees.TreeSet
{
private TreeSet<int> tree;
- private SCG.IComparer<int> ic;
+ private IComparer<int> ic;
- private bool eq(SCG.IEnumerable<int> me, int[] that)
+ private bool eq(MSG.IEnumerable<int> me, int[] that)
{
int i = 0, maxind = that.Length - 1;
@@ -1892,7 +1724,7 @@ namespace C5UnitTests.trees.TreeSet
{
private TreeSet<int> tree;
- private SCG.IComparer<int> ic;
+ private IComparer<int> ic;
[SetUp]
@@ -1931,7 +1763,7 @@ namespace C5UnitTests.trees.TreeSet
{
Simple simple1 = new Simple();
- tree.Apply(new Act<int>(simple1.apply));
+ tree.Apply(new Applier<int>(simple1.apply));
Assert.AreEqual(0, simple1.appfield1);
Assert.AreEqual(0, simple1.appfield2);
@@ -1939,7 +1771,7 @@ namespace C5UnitTests.trees.TreeSet
for (int i = 0; i < 10; i++) tree.Add(i);
- tree.Apply(new Act<int>(simple2.apply));
+ tree.Apply(new Applier<int>(simple2.apply));
Assert.AreEqual(10, simple2.appfield1);
Assert.AreEqual(285, simple2.appfield2);
}
@@ -1948,77 +1780,77 @@ namespace C5UnitTests.trees.TreeSet
[Test]
public void All()
{
- Assert.IsTrue(tree.All(new Fun<int, bool>(never)));
- Assert.IsTrue(tree.All(new Fun<int, bool>(even)));
- Assert.IsTrue(tree.All(new Fun<int, bool>(always)));
+ Assert.IsTrue(tree.All(new Filter<int>(never)));
+ Assert.IsTrue(tree.All(new Filter<int>(even)));
+ Assert.IsTrue(tree.All(new Filter<int>(always)));
for (int i = 0; i < 10; i++) tree.Add(i);
- Assert.IsFalse(tree.All(new Fun<int, bool>(never)));
- Assert.IsFalse(tree.All(new Fun<int, bool>(even)));
- Assert.IsTrue(tree.All(new Fun<int, bool>(always)));
+ Assert.IsFalse(tree.All(new Filter<int>(never)));
+ Assert.IsFalse(tree.All(new Filter<int>(even)));
+ Assert.IsTrue(tree.All(new Filter<int>(always)));
tree.Clear();
for (int i = 0; i < 10; i++) tree.Add(i * 2);
- Assert.IsFalse(tree.All(new Fun<int, bool>(never)));
- Assert.IsTrue(tree.All(new Fun<int, bool>(even)));
- Assert.IsTrue(tree.All(new Fun<int, bool>(always)));
+ Assert.IsFalse(tree.All(new Filter<int>(never)));
+ Assert.IsTrue(tree.All(new Filter<int>(even)));
+ Assert.IsTrue(tree.All(new Filter<int>(always)));
tree.Clear();
for (int i = 0; i < 10; i++) tree.Add(i * 2 + 1);
- Assert.IsFalse(tree.All(new Fun<int, bool>(never)));
- Assert.IsFalse(tree.All(new Fun<int, bool>(even)));
- Assert.IsTrue(tree.All(new Fun<int, bool>(always)));
+ Assert.IsFalse(tree.All(new Filter<int>(never)));
+ Assert.IsFalse(tree.All(new Filter<int>(even)));
+ Assert.IsTrue(tree.All(new Filter<int>(always)));
}
[Test]
public void Exists()
{
- Assert.IsFalse(tree.Exists(new Fun<int, bool>(never)));
- Assert.IsFalse(tree.Exists(new Fun<int, bool>(even)));
- Assert.IsFalse(tree.Exists(new Fun<int, bool>(always)));
+ Assert.IsFalse(tree.Exists(new Filter<int>(never)));
+ Assert.IsFalse(tree.Exists(new Filter<int>(even)));
+ Assert.IsFalse(tree.Exists(new Filter<int>(always)));
for (int i = 0; i < 10; i++) tree.Add(i);
- Assert.IsFalse(tree.Exists(new Fun<int, bool>(never)));
- Assert.IsTrue(tree.Exists(new Fun<int, bool>(even)));
- Assert.IsTrue(tree.Exists(new Fun<int, bool>(always)));
+ Assert.IsFalse(tree.Exists(new Filter<int>(never)));
+ Assert.IsTrue(tree.Exists(new Filter<int>(even)));
+ Assert.IsTrue(tree.Exists(new Filter<int>(always)));
tree.Clear();
for (int i = 0; i < 10; i++) tree.Add(i * 2);
- Assert.IsFalse(tree.Exists(new Fun<int, bool>(never)));
- Assert.IsTrue(tree.Exists(new Fun<int, bool>(even)));
- Assert.IsTrue(tree.Exists(new Fun<int, bool>(always)));
+ Assert.IsFalse(tree.Exists(new Filter<int>(never)));
+ Assert.IsTrue(tree.Exists(new Filter<int>(even)));
+ Assert.IsTrue(tree.Exists(new Filter<int>(always)));
tree.Clear();
for (int i = 0; i < 10; i++) tree.Add(i * 2 + 1);
- Assert.IsFalse(tree.Exists(new Fun<int, bool>(never)));
- Assert.IsFalse(tree.Exists(new Fun<int, bool>(even)));
- Assert.IsTrue(tree.Exists(new Fun<int, bool>(always)));
+ Assert.IsFalse(tree.Exists(new Filter<int>(never)));
+ Assert.IsFalse(tree.Exists(new Filter<int>(even)));
+ Assert.IsTrue(tree.Exists(new Filter<int>(always)));
}
[Test]
public void FindAll()
{
- Assert.AreEqual(0, tree.FindAll(new Fun<int, bool>(never)).Count);
+ Assert.AreEqual(0, tree.FindAll(new Filter<int>(never)).Count);
for (int i = 0; i < 10; i++)
tree.Add(i);
- Assert.AreEqual(0, tree.FindAll(new Fun<int, bool>(never)).Count);
- Assert.AreEqual(10, tree.FindAll(new Fun<int, bool>(always)).Count);
- Assert.AreEqual(5, tree.FindAll(new Fun<int, bool>(even)).Count);
- Assert.IsTrue(((TreeSet<int>)tree.FindAll(new Fun<int, bool>(even))).Check("R"));
+ Assert.AreEqual(0, tree.FindAll(new Filter<int>(never)).Count);
+ Assert.AreEqual(10, tree.FindAll(new Filter<int>(always)).Count);
+ Assert.AreEqual(5, tree.FindAll(new Filter<int>(even)).Count);
+ Assert.IsTrue(((TreeSet<int>)tree.FindAll(new Filter<int>(even))).Check("R"));
}
[Test]
public void Map()
{
- Assert.AreEqual(0, tree.Map(new Fun<int,string>(themap), new SC()).Count);
+ Assert.AreEqual(0, tree.Map(new Mapper<int,string>(themap), new SC()).Count);
for (int i = 0; i < 11; i++)
tree.Add(i * i * i);
- IIndexedSorted<string> res = tree.Map(new Fun<int,string>(themap), new SC());
+ IIndexedSorted<string> res = tree.Map(new Mapper<int,string>(themap), new SC());
Assert.IsTrue(((TreeSet<string>)res).Check("R"));
Assert.AreEqual(11, res.Count);
@@ -2036,7 +1868,7 @@ namespace C5UnitTests.trees.TreeSet
for (int i = 0; i < 11; i++)
tree.Add(i * i * i);
- ISorted<string> res = tree.Map(new Fun<int,string>(badmap), new SC());
+ ISorted<string> res = tree.Map(new Mapper<int,string>(badmap), new SC());
}
@@ -2159,7 +1991,7 @@ namespace C5UnitTests.trees.TreeSet
[Test]
public void EmptyEmpty()
{
- tree.AddAll(new FunEnumerable(0, new Fun<int,int>(sqr)));
+ tree.AddAll(new FunEnumerable(0, new Int2Int(sqr)));
Assert.AreEqual(0, tree.Count);
Assert.IsTrue(tree.Check());
}
@@ -2170,7 +2002,7 @@ namespace C5UnitTests.trees.TreeSet
{
for (int i = 4; i < 9; i++) tree.Add(i);
- tree.AddAll(new FunEnumerable(0, new Fun<int,int>(sqr)));
+ tree.AddAll(new FunEnumerable(0, new Int2Int(sqr)));
Assert.AreEqual(5, tree.Count);
Assert.IsTrue(tree.Check());
}
@@ -2179,7 +2011,7 @@ namespace C5UnitTests.trees.TreeSet
[Test]
public void EmptySome()
{
- tree.AddAll(new FunEnumerable(4, new Fun<int,int>(sqr)));
+ tree.AddAll(new FunEnumerable(4, new Int2Int(sqr)));
Assert.AreEqual(4, tree.Count);
Assert.IsTrue(tree.Check());
Assert.AreEqual(0, tree[0]);
@@ -2194,7 +2026,7 @@ namespace C5UnitTests.trees.TreeSet
{
for (int i = 5; i < 9; i++) tree.Add(i);
- tree.AddAll(new FunEnumerable(4, new Fun<int,int>(sqr)));
+ tree.AddAll(new FunEnumerable(4, new Int2Int(sqr)));
Assert.AreEqual(8, tree.Count);
Assert.IsTrue(tree.Check());
Assert.IsTrue(IC.eq(tree, 0, 1, 4, 5, 6, 7, 8, 9));
@@ -2226,7 +2058,7 @@ namespace C5UnitTests.trees.TreeSet
[Test]
public void EmptyEmpty()
{
- tree.AddSorted(new FunEnumerable(0, new Fun<int,int>(sqr)));
+ tree.AddSorted(new FunEnumerable(0, new Int2Int(sqr)));
Assert.AreEqual(0, tree.Count);
Assert.IsTrue(tree.Check());
}
@@ -2238,7 +2070,7 @@ namespace C5UnitTests.trees.TreeSet
{
for (int i = 4; i < 9; i++) tree.Add(i);
- tree.AddSorted(new FunEnumerable(0, new Fun<int,int>(sqr)));
+ tree.AddSorted(new FunEnumerable(0, new Int2Int(sqr)));
Assert.AreEqual(5, tree.Count);
Assert.IsTrue(tree.Check());
}
@@ -2248,7 +2080,7 @@ namespace C5UnitTests.trees.TreeSet
[Test]
public void EmptySome()
{
- tree.AddSorted(new FunEnumerable(4, new Fun<int,int>(sqr)));
+ tree.AddSorted(new FunEnumerable(4, new Int2Int(sqr)));
Assert.AreEqual(4, tree.Count);
Assert.IsTrue(tree.Check());
Assert.AreEqual(0, tree[0]);
@@ -2264,7 +2096,7 @@ namespace C5UnitTests.trees.TreeSet
{
for (int i = 5; i < 9; i++) tree.Add(i);
- tree.AddSorted(new FunEnumerable(4, new Fun<int,int>(sqr)));
+ tree.AddSorted(new FunEnumerable(4, new Int2Int(sqr)));
Assert.AreEqual(8, tree.Count);
Assert.IsTrue(tree.Check());
Assert.IsTrue(IC.eq(tree, 0, 1, 4, 5, 6, 7, 8, 9));
@@ -2274,7 +2106,7 @@ namespace C5UnitTests.trees.TreeSet
[ExpectedException(typeof(ArgumentException), "Argument not sorted")]
public void EmptyBad()
{
- tree.AddSorted(new FunEnumerable(9, new Fun<int,int>(bad)));
+ tree.AddSorted(new FunEnumerable(9, new Int2Int(bad)));
}
@@ -2412,8 +2244,8 @@ namespace C5UnitTests.trees.TreeSet
[Test]
- [ExpectedException(typeof(ArgumentOutOfRangeException))]
- public void RemoveRangeBad3()
+ [ExpectedException(typeof(ArgumentException))]
+ public void RemoveRangeBad3()
{
tree.RemoveInterval(3, 8);
}
@@ -2422,7 +2254,7 @@ namespace C5UnitTests.trees.TreeSet
[Test]
public void GetRange()
{
- SCG.IEnumerable<int> e = tree[3, 6];
+ MSG.IEnumerable<int> e = tree[3, 6];
Assert.IsTrue(IC.eq(e, 3, 4, 5));
e = tree[3, 3];
@@ -2447,8 +2279,8 @@ namespace C5UnitTests.trees.TreeSet
[Test]
- [ExpectedException(typeof(ArgumentOutOfRangeException))]
- public void GetRangeBad3()
+ [ExpectedException(typeof(ArgumentException))]
+ public void GetRangeBad3()
{
object foo = tree[3, 11];
}
@@ -2460,16 +2292,15 @@ namespace C5UnitTests.trees.TreeSet
}
-
-
namespace Sync
{
+ [Category ("Threading")]
[TestFixture]
public class SyncRoot
{
private TreeSet<int> tree;
- int sz = 5000;
+ int sz = 50;
[Test]
@@ -2578,14 +2409,13 @@ namespace C5UnitTests.trees.TreeSet
public void Dispose() { tree = null; }
}
-
-
//[TestFixture]
+ [Category ("Threading")]
public class ConcurrentQueries
{
private TreeSet<int> tree;
- int sz = 500000;
+ int sz = 500;
[SetUp]
@@ -2613,7 +2443,7 @@ namespace C5UnitTests.trees.TreeSet
public void a(int i) { count++; }
- public void traverse() { t.Apply(new Act<int>(a)); }
+ public void traverse() { t.Apply(new Applier<int>(a)); }
}
@@ -2655,9 +2485,6 @@ namespace C5UnitTests.trees.TreeSet
}
}
-
-
-
namespace Hashing
{
[TestFixture]
@@ -2669,16 +2496,16 @@ namespace C5UnitTests.trees.TreeSet
[SetUp]
public void Init()
{
- dit = new TreeSet<int>(Comparer<int>.Default, EqualityComparer<int>.Default);
- dat = new TreeSet<int>(Comparer<int>.Default, EqualityComparer<int>.Default);
- dut = new TreeSet<int>(new RevIC(), EqualityComparer<int>.Default);
+ dit = new TreeSet<int>(new IC());
+ dat = new TreeSet<int>(new IC());
+ dut = new TreeSet<int>(new RevIC());
}
[Test]
public void EmptyEmpty()
{
- Assert.IsTrue(dit.SequencedEquals(dat));
+ Assert.IsTrue(dit.Equals(dat));
}
@@ -2686,23 +2513,35 @@ namespace C5UnitTests.trees.TreeSet
public void EmptyNonEmpty()
{
dit.Add(3);
- Assert.IsFalse(dit.SequencedEquals(dat));
- Assert.IsFalse(dat.SequencedEquals(dit));
+ Assert.IsFalse(dit.Equals(dat));
+ Assert.IsFalse(dat.Equals(dit));
}
+
+ public int hasher(params int[] items)
+ {
+ int retval = 0;
+
+ foreach (int i in items)
+ retval = retval * 31 + i;
+
+ return retval;
+ }
+
+
[Test]
public void HashVal()
{
- Assert.AreEqual(CHC.sequencedhashcode(), dit.GetSequencedHashCode());
+ Assert.AreEqual(hasher(), dit.GetHashCode());
dit.Add(3);
- Assert.AreEqual(CHC.sequencedhashcode(3), dit.GetSequencedHashCode());
+ Assert.AreEqual(hasher(3), dit.GetHashCode());
dit.Add(7);
- Assert.AreEqual(CHC.sequencedhashcode(3, 7), dit.GetSequencedHashCode());
- Assert.AreEqual(CHC.sequencedhashcode(), dut.GetSequencedHashCode());
+ Assert.AreEqual(hasher(3, 7), dit.GetHashCode());
+ Assert.AreEqual(hasher(), dut.GetHashCode());
dut.Add(3);
- Assert.AreEqual(CHC.sequencedhashcode(3), dut.GetSequencedHashCode());
+ Assert.AreEqual(hasher(3), dut.GetHashCode());
dut.Add(7);
- Assert.AreEqual(CHC.sequencedhashcode(7, 3), dut.GetSequencedHashCode());
+ Assert.AreEqual(hasher(7, 3), dut.GetHashCode());
}
@@ -2712,11 +2551,11 @@ namespace C5UnitTests.trees.TreeSet
dit.Add(3);
dit.Add(7);
dat.Add(3);
- Assert.IsFalse(dit.SequencedEquals(dat));
- Assert.IsFalse(dat.SequencedEquals(dit));
+ Assert.IsFalse(dit.Equals(dat));
+ Assert.IsFalse(dat.Equals(dit));
dat.Add(7);
- Assert.IsTrue(dit.SequencedEquals(dat));
- Assert.IsTrue(dat.SequencedEquals(dit));
+ Assert.IsTrue(dit.Equals(dat));
+ Assert.IsTrue(dat.Equals(dit));
}
@@ -2725,23 +2564,23 @@ namespace C5UnitTests.trees.TreeSet
{
dit.Add(3);
dut.Add(3);
- Assert.IsTrue(dit.SequencedEquals(dut));
- Assert.IsTrue(dut.SequencedEquals(dit));
+ Assert.IsTrue(dit.Equals(dut));
+ Assert.IsTrue(dut.Equals(dit));
dit.Add(7);
dut.Add(7);
- Assert.IsFalse(dit.SequencedEquals(dut));
- Assert.IsFalse(dut.SequencedEquals(dit));
+ Assert.IsFalse(dit.Equals(dut));
+ Assert.IsFalse(dut.Equals(dit));
}
[Test]
public void Reflexive()
{
- Assert.IsTrue(dit.SequencedEquals(dit));
+ Assert.IsTrue(dit.Equals(dit));
dit.Add(3);
- Assert.IsTrue(dit.SequencedEquals(dit));
+ Assert.IsTrue(dit.Equals(dit));
dit.Add(7);
- Assert.IsTrue(dit.SequencedEquals(dit));
+ Assert.IsTrue(dit.Equals(dit));
}
@@ -2765,16 +2604,16 @@ namespace C5UnitTests.trees.TreeSet
[SetUp]
public void Init()
{
- dit = new TreeSet<int>(Comparer<int>.Default, EqualityComparer<int>.Default);
- dat = new TreeSet<int>(Comparer<int>.Default, EqualityComparer<int>.Default);
- dut = new TreeSet<int>(new RevIC(), EqualityComparer<int>.Default);
+ dit = new TreeSet<int>(new IC());
+ dat = new TreeSet<int>(new IC());
+ dut = new TreeSet<int>(new RevIC());
}
[Test]
public void EmptyEmpty()
{
- Assert.IsTrue(dit.UnsequencedEquals(dat));
+ Assert.IsTrue(dit.Equals(dat));
}
@@ -2782,25 +2621,36 @@ namespace C5UnitTests.trees.TreeSet
public void EmptyNonEmpty()
{
dit.Add(3);
- Assert.IsFalse(dit.UnsequencedEquals(dat));
- Assert.IsFalse(dat.UnsequencedEquals(dit));
+ Assert.IsFalse(dit.Equals(dat));
+ Assert.IsFalse(dat.Equals(dit));
+ }
+
+
+ public int hasher(int count,params int[] items)
+ {
+ int retval = 0;
+
+ foreach (int i in items)
+ retval ^= i;
+
+ return (count<<16)+retval;
}
[Test]
public void HashVal()
{
- Assert.AreEqual(CHC.unsequencedhashcode(), dit.GetUnsequencedHashCode());
- dit.Add(3);
- Assert.AreEqual(CHC.unsequencedhashcode(3), dit.GetUnsequencedHashCode());
- dit.Add(7);
- Assert.AreEqual(CHC.unsequencedhashcode(3, 7), dit.GetUnsequencedHashCode());
- Assert.AreEqual(CHC.unsequencedhashcode(), dut.GetUnsequencedHashCode());
- dut.Add(3);
- Assert.AreEqual(CHC.unsequencedhashcode(3), dut.GetUnsequencedHashCode());
- dut.Add(7);
- Assert.AreEqual(CHC.unsequencedhashcode(7, 3), dut.GetUnsequencedHashCode());
- }
+ Assert.AreEqual(hasher(0), dit.GetHashCode());
+ dit.Add(3);
+ Assert.AreEqual(hasher(1,3), dit.GetHashCode());
+ dit.Add(7);
+ Assert.AreEqual(hasher(2,3, 7), dit.GetHashCode());
+ Assert.AreEqual(hasher(0), dut.GetHashCode());
+ dut.Add(3);
+ Assert.AreEqual(hasher(1,3), dut.GetHashCode());
+ dut.Add(7);
+ Assert.AreEqual(hasher(2,7, 3), dut.GetHashCode());
+ }
[Test]
@@ -2809,11 +2659,11 @@ namespace C5UnitTests.trees.TreeSet
dit.Add(3);
dit.Add(7);
dat.Add(3);
- Assert.IsFalse(dit.UnsequencedEquals(dat));
- Assert.IsFalse(dat.UnsequencedEquals(dit));
+ Assert.IsFalse(dit.Equals(dat));
+ Assert.IsFalse(dat.Equals(dit));
dat.Add(7);
- Assert.IsTrue(dit.UnsequencedEquals(dat));
- Assert.IsTrue(dat.UnsequencedEquals(dit));
+ Assert.IsTrue(dit.Equals(dat));
+ Assert.IsTrue(dat.Equals(dit));
}
@@ -2822,23 +2672,23 @@ namespace C5UnitTests.trees.TreeSet
{
dit.Add(3);
dut.Add(3);
- Assert.IsTrue(dit.UnsequencedEquals(dut));
- Assert.IsTrue(dut.UnsequencedEquals(dit));
+ Assert.IsTrue(dit.Equals(dut));
+ Assert.IsTrue(dut.Equals(dit));
dit.Add(7);
dut.Add(7);
- Assert.IsTrue(dit.UnsequencedEquals(dut));
- Assert.IsTrue(dut.UnsequencedEquals(dit));
+ Assert.IsTrue(dit.Equals(dut));
+ Assert.IsTrue(dut.Equals(dit));
}
[Test]
public void Reflexive()
{
- Assert.IsTrue(dit.UnsequencedEquals(dit));
+ Assert.IsTrue(dit.Equals(dit));
dit.Add(3);
- Assert.IsTrue(dit.UnsequencedEquals(dit));
+ Assert.IsTrue(dit.Equals(dit));
dit.Add(7);
- Assert.IsTrue(dit.UnsequencedEquals(dit));
+ Assert.IsTrue(dit.Equals(dit));
}
@@ -2852,4 +2702,5 @@ namespace C5UnitTests.trees.TreeSet
}
}
-} \ No newline at end of file
+}
+#endif