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/SupportClasses.cs')
-rw-r--r--mcs/class/Mono.C5/Test/SupportClasses.cs552
1 files changed, 111 insertions, 441 deletions
diff --git a/mcs/class/Mono.C5/Test/SupportClasses.cs b/mcs/class/Mono.C5/Test/SupportClasses.cs
index e48ba49dab8..c6221c01065 100644
--- a/mcs/class/Mono.C5/Test/SupportClasses.cs
+++ b/mcs/class/Mono.C5/Test/SupportClasses.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,472 +23,141 @@
using System;
using C5;
using NUnit.Framework;
-using SCG = System.Collections.Generic;
+using MSG = System.Collections.Generic;
+using C = System.Collections;
-
-namespace C5UnitTests
+namespace nunit
{
- class SC : SCG.IComparer<string>
- {
- public int Compare(string a, string b)
- {
- return a.CompareTo(b);
- }
+ using System;
+ using C5;
+ using NUnit.Framework;
+ class SC: IComparer<string>
+ {
+ public int Compare(string a, string b)
+ {
+ return a.CompareTo(b);
+ }
+
+
+ public void appl(String s)
+ {
+ System.Console.WriteLine("--{0}", s);
+ }
+ }
+
+
+
+ class IC: IComparer<int>, IComparable<int>, IComparer<IC>, IComparable<IC>
+ {
+ public int Compare(int a, int b)
+ {
+ return a > b ? 1 : a < b ? -1 : 0;
+ }
+
+
+ public int Compare(IC a, IC b)
+ {
+ return a._i > b._i ? 1 : a._i < b._i ? -1 : 0;
+ }
+
+
+ private int _i;
+
+
+ public int i
+ {
+ get { return _i; }
+ set { _i = value; }
+ }
+
+
+ public IC() { }
+
+
+ public IC(int i) { _i = i; }
+
+
+ public int CompareTo(int that) { return _i > that ? 1 : _i < that ? -1 : 0; }
+
+ public bool Equals(int that) { return _i == that; }
+
+
+ public int CompareTo(IC that) { return _i > that._i ? 1 : _i < that._i ? -1 : 0; }
+ public bool Equals(IC that) { return _i == that._i; }
- public void appl(String s)
- {
- System.Console.WriteLine("--{0}", s);
- }
- }
+ public static bool eq(MSG.IEnumerable<int> me, params int[] that)
+ {
+ int i = 0, maxind = that.Length - 1;
- class TenEqualityComparer : SCG.IEqualityComparer<int>, SCG.IComparer<int>
- {
- TenEqualityComparer() { }
- public static TenEqualityComparer Default { get { return new TenEqualityComparer(); } }
- public int GetHashCode(int item) { return (item / 10).GetHashCode(); }
- public bool Equals(int item1, int item2) { return item1 / 10 == item2 / 10; }
- public int Compare(int a, int b) { return (a / 10).CompareTo(b / 10); }
- }
+ foreach (int item in me)
+ if (i > maxind || item != that[i++])
+ return false;
- class IC : SCG.IComparer<int>, IComparable<int>, SCG.IComparer<IC>, IComparable<IC>
- {
- public int Compare(int a, int b)
- {
- return a > b ? 1 : a < b ? -1 : 0;
- }
+ return i == maxind + 1;
+ }
+ public static bool seq(ICollection<int> me, params int[] that)
+ {
+ int[] me2 = me.ToArray();
+ Array.Sort(me2);
- public int Compare(IC a, IC b)
- {
- return a._i > b._i ? 1 : a._i < b._i ? -1 : 0;
- }
+ int i = 0, maxind = that.Length - 1;
+ foreach (int item in me2)
+ if (i > maxind || item != that[i++])
+ return false;
- private int _i;
+ return i == maxind + 1;
+ }
+ }
+
+ class RevIC: IComparer<int>
+ {
+ public int Compare(int a, int b)
+ {
+ return a > b ? -1 : a < b ? 1 : 0;
+ }
+ }
- public int i
- {
- get { return _i; }
- set { _i = value; }
- }
- public IC() { }
+ public delegate int Int2Int(int i);
- public IC(int i) { _i = i; }
+ public class FunEnumerable: MSG.IEnumerable<int>
+ {
+ int size;
+ Int2Int f;
- public int CompareTo(int that) { return _i > that ? 1 : _i < that ? -1 : 0; }
- public bool Equals(int that) { return _i == that; }
+ public FunEnumerable(int size, Int2Int f)
+ {
+ this.size = size; this.f = f;
+ }
- public int CompareTo(IC that) { return _i > that._i ? 1 : _i < that._i ? -1 : 0; }
- public bool Equals(IC that) { return _i == that._i; }
+ public bool Exists(Filter<int> filter) { return false; }
- public static bool eq(SCG.IEnumerable<int> me, params int[] that)
- {
- int i = 0, maxind = that.Length - 1;
+ public bool All(Filter<int> filter) { return false; }
- foreach (int item in me)
- if (i > maxind || item != that[i++])
- return false;
- return i == maxind + 1;
- }
- public static bool seteq(ICollectionValue<int> me, params int[] that)
- {
- int[] me2 = me.ToArray();
+ public MSG.IEnumerator<int> GetEnumerator()
+ {
+ for (int i = 0; i < size; i++)
+ yield return f(i);
+ }
- Array.Sort(me2);
+ C.IEnumerator C.IEnumerable.GetEnumerator ()
+ {
+ return GetEnumerator ();
+ }
- int i = 0, maxind = that.Length - 1;
-
- foreach (int item in me2)
- if (i > maxind || item != that[i++])
- return false;
-
- return i == maxind + 1;
- }
- public static bool seteq(ICollectionValue<KeyValuePair<int, int>> me, params int[] that)
- {
- ArrayList<KeyValuePair<int, int>> first = new ArrayList<KeyValuePair<int, int>>();
- first.AddAll(me);
- ArrayList<KeyValuePair<int, int>> other = new ArrayList<KeyValuePair<int, int>>();
- for (int i = 0; i < that.Length; i += 2)
- {
- other.Add(new KeyValuePair<int, int>(that[i], that[i + 1]));
- }
- return other.UnsequencedEquals(first);
- }
- }
-
- class RevIC : SCG.IComparer<int>
- {
- public int Compare(int a, int b)
- {
- return a > b ? -1 : a < b ? 1 : 0;
- }
- }
-
- public class FunEnumerable : SCG.IEnumerable<int>
- {
- int size;
- Fun<int, int> f;
-
- public FunEnumerable(int size, Fun<int, int> f)
- {
- this.size = size; this.f = f;
- }
-
- public SCG.IEnumerator<int> GetEnumerator()
- {
- for (int i = 0; i < size; i++)
- yield return f(i);
- }
-
-
- #region IEnumerable Members
-
- System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator()
- {
- throw new Exception("The method or operation is not implemented.");
- }
-
- #endregion
- }
-
- public class BadEnumerableException : Exception { }
-
- public class BadEnumerable<T> : CollectionValueBase<T>, ICollectionValue<T>
- {
- T[] contents;
- Exception exception;
-
- public BadEnumerable(Exception exception, params T[] contents)
- {
- this.contents = (T[])contents.Clone();
- this.exception = exception;
- }
-
- public override SCG.IEnumerator<T> GetEnumerator()
- {
- for (int i = 0; i < contents.Length; i++)
- yield return contents[i];
- throw exception;
- }
-
- public override bool IsEmpty { get { return false; } }
-
- public override int Count { get { return contents.Length + 1; } }
-
- public override Speed CountSpeed { get { return Speed.Constant; } }
-
- public override T Choose() { throw exception; }
- }
-
- public class CollectionEventList<T>
- {
- ArrayList<CollectionEvent<T>> happened;
- EventTypeEnum listenTo;
- SCG.IEqualityComparer<T> itemequalityComparer;
- public CollectionEventList(SCG.IEqualityComparer<T> itemequalityComparer)
- {
- happened = new ArrayList<CollectionEvent<T>>();
- this.itemequalityComparer = itemequalityComparer;
- }
- public void Listen(ICollectionValue<T> list, EventTypeEnum listenTo)
- {
- this.listenTo = listenTo;
- if ((listenTo & EventTypeEnum.Changed) != 0)
- list.CollectionChanged += new CollectionChangedHandler<T>(changed);
- if ((listenTo & EventTypeEnum.Cleared) != 0)
- list.CollectionCleared += new CollectionClearedHandler<T>(cleared);
- if ((listenTo & EventTypeEnum.Removed) != 0)
- list.ItemsRemoved += new ItemsRemovedHandler<T>(removed);
- if ((listenTo & EventTypeEnum.Added) != 0)
- list.ItemsAdded += new ItemsAddedHandler<T>(added);
- if ((listenTo & EventTypeEnum.Inserted) != 0)
- list.ItemInserted += new ItemInsertedHandler<T>(inserted);
- if ((listenTo & EventTypeEnum.RemovedAt) != 0)
- list.ItemRemovedAt += new ItemRemovedAtHandler<T>(removedAt);
- }
- public void Add(CollectionEvent<T> e) { happened.Add(e); }
- /// <summary>
- /// Check that we have seen exactly the events in expected that match listenTo.
- /// </summary>
- /// <param name="expected"></param>
- public void Check(SCG.IEnumerable<CollectionEvent<T>> expected)
- {
- int i = 0;
- foreach (CollectionEvent<T> expectedEvent in expected)
- {
- if ((expectedEvent.Act & listenTo) == 0)
- continue;
- if (i >= happened.Count)
- Assert.Fail(string.Format("Event number {0} did not happen:\n expected {1}", i, expectedEvent));
- if (!expectedEvent.Equals(happened[i], itemequalityComparer))
- Assert.Fail(string.Format("Event number {0}:\n expected {1}\n but saw {2}", i, expectedEvent, happened[i]));
- i++;
- }
- if (i < happened.Count)
- Assert.Fail(string.Format("Event number {0} seen but no event expected:\n {1}", i, happened[i]));
- happened.Clear();
- }
- public void Clear() { happened.Clear(); }
- public void Print(System.IO.TextWriter writer)
- {
- happened.Apply(delegate(CollectionEvent<T> e) { writer.WriteLine(e); });
- }
- void changed(object sender)
- {
- happened.Add(new CollectionEvent<T>(EventTypeEnum.Changed, new EventArgs(), sender));
- }
- void cleared(object sender, ClearedEventArgs eventArgs)
- {
- happened.Add(new CollectionEvent<T>(EventTypeEnum.Cleared, eventArgs, sender));
- }
- void added(object sender, ItemCountEventArgs<T> eventArgs)
- {
- happened.Add(new CollectionEvent<T>(EventTypeEnum.Added, eventArgs, sender));
- }
- void removed(object sender, ItemCountEventArgs<T> eventArgs)
- {
- happened.Add(new CollectionEvent<T>(EventTypeEnum.Removed, eventArgs, sender));
- }
- void inserted(object sender, ItemAtEventArgs<T> eventArgs)
- {
- happened.Add(new CollectionEvent<T>(EventTypeEnum.Inserted, eventArgs, sender));
- }
- void removedAt(object sender, ItemAtEventArgs<T> eventArgs)
- {
- happened.Add(new CollectionEvent<T>(EventTypeEnum.RemovedAt, eventArgs, sender));
- }
- }
-
- public sealed class CollectionEvent<T>
- {
- public readonly EventTypeEnum Act;
- public readonly EventArgs Args;
- public readonly object Sender;
-
- public CollectionEvent(EventTypeEnum act, EventArgs args, object sender)
- {
- this.Act = act;
- this.Args = args;
- this.Sender = sender;
- }
-
- public bool Equals(CollectionEvent<T> otherEvent, SCG.IEqualityComparer<T> itemequalityComparer)
- {
- if (otherEvent == null || Act != otherEvent.Act || !object.ReferenceEquals(Sender, otherEvent.Sender))
- return false;
- switch (Act)
- {
- case EventTypeEnum.None:
- break;
- case EventTypeEnum.Changed:
- return true;
- case EventTypeEnum.Cleared:
- if (Args is ClearedRangeEventArgs)
- {
- ClearedRangeEventArgs a = Args as ClearedRangeEventArgs, o = otherEvent.Args as ClearedRangeEventArgs;
- if (o == null)
- return false;
- return a.Full == o.Full && a.Start == o.Start && a.Count == o.Count;
- }
- else
- {
- if (otherEvent.Args is ClearedRangeEventArgs)
- return false;
- ClearedEventArgs a = Args as ClearedEventArgs, o = otherEvent.Args as ClearedEventArgs;
- return a.Full == o.Full && a.Count == o.Count;
- }
- case EventTypeEnum.Added:
- {
- ItemCountEventArgs<T> a = Args as ItemCountEventArgs<T>, o = otherEvent.Args as ItemCountEventArgs<T>;
- return itemequalityComparer.Equals(a.Item, o.Item) && a.Count == o.Count;
- }
- case EventTypeEnum.Removed:
- {
- ItemCountEventArgs<T> a = Args as ItemCountEventArgs<T>, o = otherEvent.Args as ItemCountEventArgs<T>;
- return itemequalityComparer.Equals(a.Item, o.Item) && a.Count == o.Count;
- }
- case EventTypeEnum.Inserted:
- {
- ItemAtEventArgs<T> a = Args as ItemAtEventArgs<T>, o = otherEvent.Args as ItemAtEventArgs<T>;
- return a.Index == o.Index && itemequalityComparer.Equals(a.Item, o.Item);
- }
- case EventTypeEnum.RemovedAt:
- {
- ItemAtEventArgs<T> a = Args as ItemAtEventArgs<T>, o = otherEvent.Args as ItemAtEventArgs<T>;
- return a.Index == o.Index && itemequalityComparer.Equals(a.Item, o.Item);
- }
- }
- throw new ApplicationException("Illegat Act: " + Act);
- }
-
- public override string ToString()
- {
- return string.Format("Act: {0}, Args : {1}, Source : {2}", Act, Args, Sender);
- }
-
- }
-
- public class CHC
- {
- static public int unsequencedhashcode(params int[] a)
- {
- int h = 0;
- foreach (int i in a)
- {
- h += (int)(((uint)i * 1529784657 + 1) ^ ((uint)i * 2912831877) ^ ((uint)i * 1118771817 + 2));
- }
- return h;
- }
- static public int sequencedhashcode(params int[] a)
- {
- int h = 0;
- foreach (int i in a) { h = h * 31 + i; }
- return h;
- }
- }
-
- //This class is a modified sample from VS2005 beta1 documentation
- public class RadixFormatProvider : IFormatProvider
- {
- RadixFormatter _radixformatter;
- public RadixFormatProvider(int radix)
- {
- if (radix < 2 || radix > 36)
- throw new ArgumentException(String.Format(
- "The radix \"{0}\" is not in the range 2..36.",
- radix));
- _radixformatter = new RadixFormatter(radix);
- }
- public object GetFormat(Type argType)
- {
- if (argType == typeof(ICustomFormatter))
- return _radixformatter;
- else
- return null;
- }
- }
-
- //This class is a modified sample from VS2005 beta1 documentation
- public class RadixFormatter : ICustomFormatter
- {
- int radix;
- public RadixFormatter(int radix)
- {
- if (radix < 2 || radix > 36)
- throw new ArgumentException(String.Format(
- "The radix \"{0}\" is not in the range 2..36.",
- radix));
- this.radix = radix;
- }
-
- // The value to be formatted is returned as a signed string
- // of digits from the rDigits array.
- private static char[] rDigits = {
- '0', '1', '2', '3', '4', '5', '6', '7', '8', '9',
- 'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J',
- 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T',
- 'U', 'V', 'W', 'X', 'Y', 'Z' };
-
- public string Format(string formatString,
- object argToBeFormatted, IFormatProvider provider)
- {
- /*switch (Type.GetTypeCode(argToBeFormatted.GetType()))
- {
- case TypeCode.Boolean:
- break;
- case TypeCode.Byte:
- break;
- case TypeCode.Char:
- break;
- case TypeCode.DBNull:
- break;
- case TypeCode.DateTime:
- break;
- case TypeCode.Decimal:
- break;
- case TypeCode.Double:
- break;
- case TypeCode.Empty:
- break;
- case TypeCode.Int16:
- break;
- case TypeCode.Int32:
- break;
- case TypeCode.Int64:
- break;
- case TypeCode.Object:
- break;
- case TypeCode.SByte:
- break;
- case TypeCode.Single:
- break;
- case TypeCode.String:
- break;
- case TypeCode.UInt16:
- break;
- case TypeCode.UInt32:
- break;
- case TypeCode.UInt64:
- break;
- }*/
- int intToBeFormatted;
- try
- {
- intToBeFormatted = (int)argToBeFormatted;
- }
- catch (Exception)
- {
- if (argToBeFormatted is IFormattable)
- return ((IFormattable)argToBeFormatted).
- ToString(formatString, provider);
- else
- return argToBeFormatted.ToString();
- }
- return formatInt(intToBeFormatted);
- }
-
- private string formatInt(int intToBeFormatted)
- {
- // The formatting is handled here.
- if (intToBeFormatted == 0)
- return "0";
- int digitIndex = 0;
- int intPositive;
- char[] outDigits = new char[31];
-
- // Verify that the argument can be converted to a int integer.
- // Extract the magnitude for conversion.
- intPositive = Math.Abs(intToBeFormatted);
-
- // Convert the magnitude to a digit string.
- for (digitIndex = 0; digitIndex <= 32; digitIndex++)
- {
- if (intPositive == 0) break;
-
- outDigits[outDigits.Length - digitIndex - 1] =
- rDigits[intPositive % radix];
- intPositive /= radix;
- }
-
- // Add a minus sign if the argument is negative.
- if (intToBeFormatted < 0)
- outDigits[outDigits.Length - digitIndex++ - 1] =
- '-';
-
- return new string(outDigits,
- outDigits.Length - digitIndex, digitIndex);
- }
- }
+ public void Apply(Applier<int> a) { }
+ }
}
+#endif