Exemple #1
0
        public async Task <IEnumerable <int> > TPTest <T, Q>(T[] values, Q value, int limit)
            where Q : T
        {
            Contract.Requires(values != null);
            Contract.Requires(Contract.ForAll(0, values.Length, i => !values[i].Equals(value)));
            Contract.Ensures(Contract.ForAll(Contract.Result <Task <IEnumerable <int> > >().Result, i => i < limit && Contract.Result <Task <IEnumerable <int> > >() != null));
            Contract.EnsuresOnThrow <ArgumentException>(limit == 10);

            if (values.Length == 3)
            {
                throw new ArgumentException();
            }

            var x = await NonGen.CountThem(values, value);

            if (x == 5)
            {
                throw new ArgumentException();
            }

            return(GetValues(x, limit));
        }