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/BasesTest.cs')
-rw-r--r--mcs/class/Mono.C5/Test/BasesTest.cs622
1 files changed, 230 insertions, 392 deletions
diff --git a/mcs/class/Mono.C5/Test/BasesTest.cs b/mcs/class/Mono.C5/Test/BasesTest.cs
index 60cfe17b29a..51d448d3716 100644
--- a/mcs/class/Mono.C5/Test/BasesTest.cs
+++ b/mcs/class/Mono.C5/Test/BasesTest.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,398 +23,235 @@
using System;
using C5;
using NUnit.Framework;
-using SCG = System.Collections.Generic;
+using MSG = System.Collections.Generic;
-namespace C5UnitTests.support
+namespace nunit.support
{
- namespace bases
- {
- [TestFixture]
- public class ArrayBaseTest
- {
- class ABT : ArrayBase<string>
- {
- public ABT() : base(8,NaturalEqualityComparer<string>.Default) { }
-
- public override string Choose() { if (size > 0) return array[0]; throw new NoSuchItemException(); }
-
- public string this[int i] { get { return array[i]; } set { array[i] = value; } }
-
-
- public int thesize { get { return size; } set { size = value; } }
- }
-
-
- [Test]
- public void Check()
- {
- ABT abt = new ABT();
-
- abt.thesize = 3;
- abt[2] = "aaa";
- // Assert.IsFalse(abt.Check());
- abt[0] = "##";
- abt[1] = "##";
- Assert.IsTrue(abt.Check());
- }
- }
- }
-
- namespace itemops
- {
- [TestFixture]
- public class Comparers
- {
- class dbl : IComparable<dbl>
- {
- double d;
-
- public dbl(double din) { d = din; }
-
- public int CompareTo(dbl that)
- {
- return d < that.d ? -1 : d == that.d ? 0 : 1;
- }
- public bool Equals(dbl that) { return d == that.d; }
- }
-
- [Test]
- [ExpectedException(typeof(NotComparableException))]
- public void NotComparable()
- {
- SCG.IComparer<object> foo = Comparer<object>.Default;
- }
-
- [Test]
- public void GenericC()
- {
- SCG.IComparer<dbl> h = new NaturalComparer<dbl>();
- dbl s = new dbl(3.4);
- dbl t = new dbl(3.4);
- dbl u = new dbl(7.4);
-
- Assert.AreEqual(0, h.Compare(s, t));
- Assert.IsTrue(h.Compare(s, u) < 0);
- }
-
-
- [Test]
- public void OrdinaryC()
- {
- SCG.IComparer<string> h = new NaturalComparerO<string>();
- string s = "bamse";
- string t = "bamse";
- string u = "bimse";
-
- Assert.AreEqual(0, h.Compare(s, t));
- Assert.IsTrue(h.Compare(s, u) < 0);
- }
-
-
- [Test]
- public void GenericCViaBuilder()
- {
- SCG.IComparer<dbl> h = Comparer<dbl>.Default;
- dbl s = new dbl(3.4);
- dbl t = new dbl(3.4);
- dbl u = new dbl(7.4);
-
- Assert.AreEqual(0, h.Compare(s, t));
- Assert.IsTrue(h.Compare(s, u) < 0);
- Assert.AreSame(h, Comparer<dbl>.Default);
- }
-
-
- [Test]
- public void OrdinaryCViaBuilder()
- {
- SCG.IComparer<string> h = Comparer<string>.Default;
- string s = "bamse";
- string t = "bamse";
- string u = "bimse";
-
- Assert.AreEqual(0, h.Compare(s, t));
- Assert.IsTrue(h.Compare(s, u) < 0);
- Assert.AreSame(h, Comparer<string>.Default);
-
- }
-
-
- [Test]
- public void ICViaBuilder()
- {
- SCG.IComparer<int> h = Comparer<int>.Default;
- int s = 4;
- int t = 4;
- int u = 5;
-
- Assert.AreEqual(0, h.Compare(s, t));
- Assert.IsTrue(h.Compare(s, u) < 0);
- Assert.AreSame(h, Comparer<int>.Default);
-
- }
-
- [Test]
- public void Nulls()
- {
- Assert.IsTrue(Comparer<string>.Default.Compare(null, "abe") < 0);
- Assert.IsTrue(Comparer<string>.Default.Compare(null, null) == 0);
- Assert.IsTrue(Comparer<string>.Default.Compare("abe", null) > 0);
- }
- }
-
- [TestFixture]
- public class EqualityComparers
- {
- [Test]
- public void ReftypeequalityComparer()
- {
- SCG.IEqualityComparer<string> h = NaturalEqualityComparer<string>.Default;
- string s = "bamse";
- string t = "bamse";
- string u = "bimse";
-
- Assert.AreEqual(s.GetHashCode(), h.GetHashCode(s));
- Assert.IsTrue(h.Equals(s, t));
- Assert.IsFalse(h.Equals(s, u));
- }
-
-
- [Test]
- public void ValuetypeequalityComparer()
- {
- SCG.IEqualityComparer<double> h = NaturalEqualityComparer<double>.Default;
- double s = 3.4;
- double t = 3.4;
- double u = 5.7;
-
- Assert.AreEqual(s.GetHashCode(), h.GetHashCode(s));
- Assert.IsTrue(h.Equals(s, t));
- Assert.IsFalse(h.Equals(s, u));
- }
-
- internal class REHTest { public override int GetHashCode() { return 37; } }
-
- [Test]
- public void ReferenceEqualityEqualityComparerTest()
- {
- REHTest rehtest = new REHTest();
- SCG.IEqualityComparer<REHTest> equalityComparer = ReferenceEqualityComparer<REHTest>.Default;
- Assert.AreEqual(37, rehtest.GetHashCode());
- Assert.IsFalse(equalityComparer.GetHashCode(rehtest) == 37);
- }
-
- [Test]
- public void ReftypeequalityComparerViaBuilder()
- {
- SCG.IEqualityComparer<string> h = EqualityComparer<string>.Default;
- string s = "bamse";
- string t = "bamse";
- string u = "bimse";
-
- Assert.AreEqual(s.GetHashCode(), h.GetHashCode(s));
- Assert.IsTrue(h.Equals(s, t));
- Assert.IsFalse(h.Equals(s, u));
- Assert.AreSame(h, EqualityComparer<string>.Default);
- }
-
-
- [Test]
- public void ValuetypeequalityComparerViaBuilder()
- {
- SCG.IEqualityComparer<double> h = EqualityComparer<double>.Default;
- double s = 3.4;
- double t = 3.4;
- double u = 5.7;
-
- Assert.AreEqual(s.GetHashCode(), h.GetHashCode(s));
- Assert.IsTrue(h.Equals(s, t));
- Assert.IsFalse(h.Equals(s, u));
- Assert.AreSame(h, EqualityComparer<double>.Default);
- }
-
-
- [Test]
- public void IntequalityComparerViaBuilder()
- {
- SCG.IEqualityComparer<int> h = EqualityComparer<int>.Default;
- int s = 3;
- int t = 3;
- int u = 5;
-
- Assert.AreEqual(s.GetHashCode(), h.GetHashCode(s));
- Assert.IsTrue(h.Equals(s, t));
- Assert.IsFalse(h.Equals(s, u));
- Assert.AreSame(h, EqualityComparer<int>.Default);
- }
-
- [Test]
- public void DoubleequalityComparerViaBuilder()
- {
- SCG.IEqualityComparer<double> h = EqualityComparer<double>.Default;
- double s = 3.1;
- double t = 3.1;
- double u = 5.2;
-
- Assert.AreEqual(s.GetHashCode(), h.GetHashCode(s));
- Assert.IsTrue(h.Equals(s, t));
- Assert.IsFalse(h.Equals(s, u));
- Assert.AreSame(h, EqualityComparer<double>.Default);
- }
-
- [Test]
- public void CharequalityComparerViaBuilder()
- {
- SCG.IEqualityComparer<char> h = EqualityComparer<char>.Default;
- char s = 'å';
- char t = 'å';
- char u = 'r';
-
- Assert.AreEqual(s.GetHashCode(), h.GetHashCode(s));
- Assert.IsTrue(h.Equals(s, t));
- Assert.IsFalse(h.Equals(s, u));
- Assert.AreSame(h, EqualityComparer<char>.Default);
- }
-
- [Test]
- public void ByteequalityComparerViaBuilder()
- {
- SCG.IEqualityComparer<byte> h = EqualityComparer<byte>.Default;
- byte s = 3;
- byte t = 3;
- byte u = 5;
-
- Assert.AreEqual(s.GetHashCode(), h.GetHashCode(s));
- Assert.IsTrue(h.Equals(s, t));
- Assert.IsFalse(h.Equals(s, u));
- Assert.AreSame(h, EqualityComparer<byte>.Default);
- }
-
- [Test]
- public void UnseqequalityComparerViaBuilder()
- {
- SCG.IEqualityComparer<ICollection<int>> h = EqualityComparer<ICollection<int>>.Default;
- ICollection<int> s = new LinkedList<int>();
- ICollection<int> t = new LinkedList<int>();
- ICollection<int> u = new LinkedList<int>();
- s.Add(1); s.Add(2); s.Add(3);
- t.Add(3); t.Add(2); t.Add(1);
- u.Add(3); u.Add(2); u.Add(4);
- Assert.AreEqual(s.GetUnsequencedHashCode(), h.GetHashCode(s));
- Assert.IsTrue(h.Equals(s, t));
- Assert.IsFalse(h.Equals(s, u));
- Assert.AreSame(h, EqualityComparer<ICollection<int>>.Default);
- }
-
- [Test]
- public void SeqequalityComparerViaBuilder2()
- {
- SCG.IEqualityComparer<LinkedList<int>> h = EqualityComparer<LinkedList<int>>.Default;
- LinkedList<int> s = new LinkedList<int>();
- s.Add(1); s.Add(2); s.Add(3);
- Assert.AreEqual(CHC.sequencedhashcode(1, 2, 3), h.GetHashCode(s));
- }
-
- [Test]
- public void UnseqequalityComparerViaBuilder2()
- {
- SCG.IEqualityComparer<HashSet<int>> h = EqualityComparer<HashSet<int>>.Default;
- HashSet<int> s = new HashSet<int>();
- s.Add(1); s.Add(2); s.Add(3);
- Assert.AreEqual(CHC.unsequencedhashcode(1, 2, 3), h.GetHashCode(s));
- }
-
- //generic types implementing collection interfaces
- [Test]
- public void SeqequalityComparerViaBuilder3()
- {
- SCG.IEqualityComparer<IList<int>> h = EqualityComparer<IList<int>>.Default;
- IList<int> s = new LinkedList<int>();
- s.Add(1); s.Add(2); s.Add(3);
- Assert.AreEqual(CHC.sequencedhashcode(1, 2, 3), h.GetHashCode(s));
- }
-
- interface IFoo<T> : ICollection<T> { void Bamse(); }
-
- class Foo<T> : HashSet<T>, IFoo<T>
- {
- internal Foo() : base() { }
- public void Bamse() { }
- }
-
- [Test]
- public void UnseqequalityComparerViaBuilder3()
- {
- SCG.IEqualityComparer<IFoo<int>> h = EqualityComparer<IFoo<int>>.Default;
- IFoo<int> s = new Foo<int>();
- s.Add(1); s.Add(2); s.Add(3);
- Assert.AreEqual(CHC.unsequencedhashcode(1, 2, 3), h.GetHashCode(s));
- }
-
- //Nongeneric types implementing collection types:
- interface IBaz : ISequenced<int> { void Bamse(); }
-
- class Baz : LinkedList<int>, IBaz
- {
- internal Baz() : base() { }
- public void Bamse() { }
- //int ISequenced<int>.GetHashCode() { return sequencedhashcode(); }
- //bool ISequenced<int>.Equals(ISequenced<int> that) { return sequencedequals(that); }
- }
-
-#warning This test fails because of an error in .Net 2.0
- //[Test]
- public void SeqequalityComparerViaBuilder4()
- {
- SCG.IEqualityComparer<IBaz> h = EqualityComparer<IBaz>.Default;
- IBaz s = new Baz();
- s.Add(1); s.Add(2); s.Add(3);
- Assert.AreEqual(CHC.sequencedhashcode(1, 2, 3), h.GetHashCode(s));
- }
-
- interface IBar : ICollection<int>
- {
- void Bamse();
- }
-
- class Bar : HashSet<int>, IBar
- {
- internal Bar() : base() { }
- public void Bamse() { }
-
- //TODO: remove all this workaround stuff:
-
- bool ICollection<int>.ContainsAll<U>(System.Collections.Generic.IEnumerable<U> items)
- {
- throw new NotImplementedException();
- }
-
- void ICollection<int>.RemoveAll<U>(System.Collections.Generic.IEnumerable<U> items)
- {
- throw new NotImplementedException();
- }
-
- void ICollection<int>.RetainAll<U>(System.Collections.Generic.IEnumerable<U> items)
- {
- throw new NotImplementedException();
- }
-
- void IExtensible<int>.AddAll<U>(System.Collections.Generic.IEnumerable<U> items)
- {
- throw new NotImplementedException();
- }
-
- }
-
- [Test]
- public void UnseqequalityComparerViaBuilder4()
- {
- SCG.IEqualityComparer<IBar> h = EqualityComparer<IBar>.Default;
- IBar s = new Bar();
- s.Add(1); s.Add(2); s.Add(3);
- Assert.AreEqual(CHC.unsequencedhashcode(1, 2, 3), h.GetHashCode(s));
- }
- }
- }
+ namespace bases
+ {
+ [TestFixture]
+ public class ArrayBaseTest
+ {
+ class ABT: ArrayBase<string>
+ {
+ public ABT() : base(8,new DefaultReferenceTypeHasher<string>()) { }
+
+
+ public string this[int i] { get { return array[i]; } set { array[i] = value; } }
+
+
+ public int thesize { get { return size; } set { size = value; } }
+ }
+
+
+ [Test]
+ public void Check()
+ {
+ ABT abt = new ABT();
+
+ abt.thesize = 3;
+ abt[2] = "aaa";
+ Assert.IsFalse(abt.Check());
+ abt[0] = "##";
+ abt[1] = "##";
+ Assert.IsTrue(abt.Check());
+ }
+ }
+ }
+
+
+
+
+ namespace itemops
+ {
+ [TestFixture]
+ public class Comparers
+ {
+ class dbl: IComparable<dbl>
+ {
+ double d;
+
+ public dbl(double din) { d = din; }
+
+ public int CompareTo(dbl that)
+ {
+ return d < that.d ? -1 : d == that.d ? 0 : 1;
+ }
+ public bool Equals(dbl that) { return d == that.d; }
+ }
+
+ [Test]
+ public void GenericC()
+ {
+ IComparer<dbl> h = new NaturalComparer<dbl>();
+ dbl s = new dbl(3.4);
+ dbl t = new dbl(3.4);
+ dbl u = new dbl(7.4);
+
+ Assert.AreEqual(0, h.Compare(s, t));
+ Assert.IsTrue(h.Compare(s, u) < 0);
+ }
+
+
+ [Test]
+ public void OrdinaryC()
+ {
+ IComparer<string> h = new NaturalComparerO<string>();
+ string s = "bamse";
+ string t = "bamse";
+ string u = "bimse";
+
+ Assert.AreEqual(0, h.Compare(s, t));
+ Assert.IsTrue(h.Compare(s, u) < 0);
+ }
+
+
+ [Test]
+ public void GenericCViaBuilder()
+ {
+ IComparer<dbl> h = C5.ComparerBuilder.FromComparable<dbl>.Examine();
+ dbl s = new dbl(3.4);
+ dbl t = new dbl(3.4);
+ dbl u = new dbl(7.4);
+
+ Assert.AreEqual(0, h.Compare(s, t));
+ Assert.IsTrue(h.Compare(s, u) < 0);
+ }
+
+ [Test]
+ public void OrdinaryCViaBuilder()
+ {
+ IComparer<string> h = C5.ComparerBuilder.FromComparable<string>.Examine();
+ string s = "bamse";
+ string t = "bamse";
+ string u = "bimse";
+
+ Assert.AreEqual(0, h.Compare(s, t));
+ Assert.IsTrue(h.Compare(s, u) < 0);
+ }
+
+ [Test]
+ public void ICViaBuilder()
+ {
+ IComparer<int> h = C5.ComparerBuilder.FromComparable<int>.Examine();
+ int s = 4;
+ int t = 4;
+ int u = 5;
+
+ Assert.AreEqual(0, h.Compare(s, t));
+ Assert.IsTrue(h.Compare(s, u) < 0);
+ }
+
+ }
+
+ [TestFixture]
+ public class Hashers
+ {
+ [Test]
+ public void Reftypehasher()
+ {
+ IHasher<string> h = new DefaultReferenceTypeHasher<string>();
+ string s = "bamse";
+ string t = "bamse";
+ string u = "bimse";
+
+ Assert.AreEqual(s.GetHashCode(), h.GetHashCode(s));
+ Assert.IsTrue(h.Equals(s, t));
+ Assert.IsFalse(h.Equals(s, u));
+ }
+
+
+ [Test]
+ public void Valuetypehasher()
+ {
+ IHasher<double> h = new DefaultValueTypeHasher<double>();
+ double s = 3.4;
+ double t = 3.4;
+ double u = 5.7;
+
+ Assert.AreEqual(s.GetHashCode(), h.GetHashCode(s));
+ Assert.IsTrue(h.Equals(s, t));
+ Assert.IsFalse(h.Equals(s, u));
+ }
+
+
+ [Test]
+ public void ReftypehasherViaBuilder()
+ {
+ IHasher<string> h = C5.HasherBuilder.ByPrototype<string>.Examine();
+ string s = "bamse";
+ string t = "bamse";
+ string u = "bimse";
+
+ Assert.AreEqual(s.GetHashCode(), h.GetHashCode(s));
+ Assert.IsTrue(h.Equals(s, t));
+ Assert.IsFalse(h.Equals(s, u));
+ }
+
+
+ [Test]
+ public void ValuetypehasherViaBuilder()
+ {
+ IHasher<double> h = C5.HasherBuilder.ByPrototype<double>.Examine();
+ double s = 3.4;
+ double t = 3.4;
+ double u = 5.7;
+
+ Assert.AreEqual(s.GetHashCode(), h.GetHashCode(s));
+ Assert.IsTrue(h.Equals(s, t));
+ Assert.IsFalse(h.Equals(s, u));
+ }
+
+
+ [Test]
+ public void InthasherViaBuilder()
+ {
+ IHasher<int> h = C5.HasherBuilder.ByPrototype<int>.Examine();
+ int s = 3;
+ int t = 3;
+ int u = 5;
+
+ Assert.AreEqual(s.GetHashCode(), h.GetHashCode(s));
+ Assert.IsTrue(h.Equals(s, t));
+ Assert.IsFalse(h.Equals(s, u));
+ }
+
+ [Test]
+ public void UnseqhasherViaBuilder()
+ {
+ IHasher<ICollection<int>> h = C5.HasherBuilder.ByPrototype<ICollection<int>>.Examine();
+ ICollection<int> s = new LinkedList<int>();
+ ICollection<int> t = new LinkedList<int>();
+ ICollection<int> u = new LinkedList<int>();
+ s.Add(1);s.Add(2);s.Add(3);
+ t.Add(3);t.Add(2);t.Add(1);
+ u.Add(3);u.Add(2);u.Add(4);
+ Assert.AreEqual(s.GetHashCode(), h.GetHashCode(s));
+ Assert.IsTrue(h.Equals(s, t));
+ Assert.IsFalse(h.Equals(s, u));
+ }
+
+
+ [Test]
+ public void SeqhasherViaBuilder()
+ {
+ IHasher<ISequenced<int>> h = C5.HasherBuilder.ByPrototype<ISequenced<int>>.Examine();
+ ISequenced<int> s = new LinkedList<int>();
+ ISequenced<int> t = new LinkedList<int>();
+ ISequenced<int> u = new LinkedList<int>();
+ s.Add(1);s.Add(2);s.Add(3);
+ t.Add(1);t.Add(2);t.Add(3);
+ u.Add(3);u.Add(2);u.Add(1);
+ Assert.AreEqual(s.GetHashCode(), h.GetHashCode(s));
+ Assert.IsTrue(h.Equals(s, t));
+ Assert.IsFalse(h.Equals(s, u));
+ }
+
+
+ }
+
+
+ }
}
+#endif