public void Malformed_Weird() { var empty = new EmptyEnumerable <int>(); var emptyOrdered = new EmptyOrderedEnumerable <int>(); var groupByDefault = new GroupByDefaultEnumerable <int, int, int, EmptyEnumerable <int>, EmptyEnumerator <int> >(); var groupBySpecific = new GroupBySpecificEnumerable <int, int, int, EmptyEnumerable <int>, EmptyEnumerator <int> >(); var lookupDefault = new LookupDefaultEnumerable <int, int>(); var lookupSpecific = new LookupSpecificEnumerable <int, int>(); var range = new RangeEnumerable(); var repeat = new RepeatEnumerable <int>(); var reverseRange = new ReverseRangeEnumerable(); var oneItemDefault = new OneItemDefaultEnumerable <int>(); var oneItemSpecific = new OneItemSpecificEnumerable <int>(); var oneItemDefaultOrdered = new OneItemDefaultOrderedEnumerable <int>(); var oneItemSpecificOrdered = new OneItemSpecificOrderedEnumerable <int>(); // empty { try { empty.Count(); Assert.Fail(); }catch (ArgumentException exc) { Assert.AreEqual("source", exc.ParamName); } try { empty.Count(x => true); Assert.Fail(); } catch (ArgumentException exc) { Assert.AreEqual("source", exc.ParamName); } try { empty.LongCount(); Assert.Fail(); } catch (ArgumentException exc) { Assert.AreEqual("source", exc.ParamName); } try { empty.LongCount(x => true); Assert.Fail(); } catch (ArgumentException exc) { Assert.AreEqual("source", exc.ParamName); } } // emptyOrdered { try { emptyOrdered.Count(); Assert.Fail(); } catch (ArgumentException exc) { Assert.AreEqual("source", exc.ParamName); } try { emptyOrdered.Count(x => true); Assert.Fail(); } catch (ArgumentException exc) { Assert.AreEqual("source", exc.ParamName); } try { emptyOrdered.LongCount(); Assert.Fail(); } catch (ArgumentException exc) { Assert.AreEqual("source", exc.ParamName); } try { emptyOrdered.LongCount(x => true); Assert.Fail(); } catch (ArgumentException exc) { Assert.AreEqual("source", exc.ParamName); } } // groupByDefault { try { groupByDefault.Count(); Assert.Fail(); } catch (ArgumentException exc) { Assert.AreEqual("source", exc.ParamName); } try { groupByDefault.Count(x => true); Assert.Fail(); } catch (ArgumentException exc) { Assert.AreEqual("source", exc.ParamName); } try { groupByDefault.LongCount(); Assert.Fail(); } catch (ArgumentException exc) { Assert.AreEqual("source", exc.ParamName); } try { groupByDefault.LongCount(x => true); Assert.Fail(); } catch (ArgumentException exc) { Assert.AreEqual("source", exc.ParamName); } } // groupBySpecific { try { groupBySpecific.Count(); Assert.Fail(); } catch (ArgumentException exc) { Assert.AreEqual("source", exc.ParamName); } try { groupBySpecific.Count(x => true); Assert.Fail(); } catch (ArgumentException exc) { Assert.AreEqual("source", exc.ParamName); } try { groupBySpecific.LongCount(); Assert.Fail(); } catch (ArgumentException exc) { Assert.AreEqual("source", exc.ParamName); } try { groupBySpecific.LongCount(x => true); Assert.Fail(); } catch (ArgumentException exc) { Assert.AreEqual("source", exc.ParamName); } } // lookupDefault { try { lookupDefault.Count(); Assert.Fail(); } catch (ArgumentException exc) { Assert.AreEqual("source", exc.ParamName); } try { lookupDefault.Count(x => true); Assert.Fail(); } catch (ArgumentException exc) { Assert.AreEqual("source", exc.ParamName); } try { lookupDefault.LongCount(); Assert.Fail(); } catch (ArgumentException exc) { Assert.AreEqual("source", exc.ParamName); } try { lookupDefault.LongCount(x => true); Assert.Fail(); } catch (ArgumentException exc) { Assert.AreEqual("source", exc.ParamName); } } // lookupSpecific { try { lookupSpecific.Count(); Assert.Fail(); } catch (ArgumentException exc) { Assert.AreEqual("source", exc.ParamName); } try { lookupSpecific.Count(x => true); Assert.Fail(); } catch (ArgumentException exc) { Assert.AreEqual("source", exc.ParamName); } try { lookupSpecific.LongCount(); Assert.Fail(); } catch (ArgumentException exc) { Assert.AreEqual("source", exc.ParamName); } try { lookupSpecific.LongCount(x => true); Assert.Fail(); } catch (ArgumentException exc) { Assert.AreEqual("source", exc.ParamName); } } // range { try { range.Count(); Assert.Fail(); } catch (ArgumentException exc) { Assert.AreEqual("source", exc.ParamName); } try { range.Count(x => true); Assert.Fail(); } catch (ArgumentException exc) { Assert.AreEqual("source", exc.ParamName); } try { range.LongCount(); Assert.Fail(); } catch (ArgumentException exc) { Assert.AreEqual("source", exc.ParamName); } try { range.LongCount(x => true); Assert.Fail(); } catch (ArgumentException exc) { Assert.AreEqual("source", exc.ParamName); } } // repeat { try { repeat.Count(); Assert.Fail(); } catch (ArgumentException exc) { Assert.AreEqual("source", exc.ParamName); } try { repeat.Count(x => true); Assert.Fail(); } catch (ArgumentException exc) { Assert.AreEqual("source", exc.ParamName); } try { repeat.LongCount(); Assert.Fail(); } catch (ArgumentException exc) { Assert.AreEqual("source", exc.ParamName); } try { repeat.LongCount(x => true); Assert.Fail(); } catch (ArgumentException exc) { Assert.AreEqual("source", exc.ParamName); } } // reverseRange { try { reverseRange.Count(); Assert.Fail(); } catch (ArgumentException exc) { Assert.AreEqual("source", exc.ParamName); } try { reverseRange.Count(x => true); Assert.Fail(); } catch (ArgumentException exc) { Assert.AreEqual("source", exc.ParamName); } try { reverseRange.LongCount(); Assert.Fail(); } catch (ArgumentException exc) { Assert.AreEqual("source", exc.ParamName); } try { reverseRange.LongCount(x => true); Assert.Fail(); } catch (ArgumentException exc) { Assert.AreEqual("source", exc.ParamName); } } // oneItemDefault { try { oneItemDefault.Count(); Assert.Fail(); } catch (ArgumentException exc) { Assert.AreEqual("source", exc.ParamName); } try { oneItemDefault.Count(x => true); Assert.Fail(); } catch (ArgumentException exc) { Assert.AreEqual("source", exc.ParamName); } try { oneItemDefault.LongCount(); Assert.Fail(); } catch (ArgumentException exc) { Assert.AreEqual("source", exc.ParamName); } try { oneItemDefault.LongCount(x => true); Assert.Fail(); } catch (ArgumentException exc) { Assert.AreEqual("source", exc.ParamName); } } // oneItemSpecific { try { oneItemSpecific.Count(); Assert.Fail(); } catch (ArgumentException exc) { Assert.AreEqual("source", exc.ParamName); } try { oneItemSpecific.Count(x => true); Assert.Fail(); } catch (ArgumentException exc) { Assert.AreEqual("source", exc.ParamName); } try { oneItemSpecific.LongCount(); Assert.Fail(); } catch (ArgumentException exc) { Assert.AreEqual("source", exc.ParamName); } try { oneItemSpecific.LongCount(x => true); Assert.Fail(); } catch (ArgumentException exc) { Assert.AreEqual("source", exc.ParamName); } } // oneItemDefaultOrdered { try { oneItemDefaultOrdered.Count(); Assert.Fail(); } catch (ArgumentException exc) { Assert.AreEqual("source", exc.ParamName); } try { oneItemDefaultOrdered.Count(x => true); Assert.Fail(); } catch (ArgumentException exc) { Assert.AreEqual("source", exc.ParamName); } try { oneItemDefaultOrdered.LongCount(); Assert.Fail(); } catch (ArgumentException exc) { Assert.AreEqual("source", exc.ParamName); } try { oneItemDefaultOrdered.LongCount(x => true); Assert.Fail(); } catch (ArgumentException exc) { Assert.AreEqual("source", exc.ParamName); } } // oneItemSpecificOrdered { try { oneItemSpecificOrdered.Count(); Assert.Fail(); } catch (ArgumentException exc) { Assert.AreEqual("source", exc.ParamName); } try { oneItemSpecificOrdered.Count(x => true); Assert.Fail(); } catch (ArgumentException exc) { Assert.AreEqual("source", exc.ParamName); } try { oneItemSpecificOrdered.LongCount(); Assert.Fail(); } catch (ArgumentException exc) { Assert.AreEqual("source", exc.ParamName); } try { oneItemSpecificOrdered.LongCount(x => true); Assert.Fail(); } catch (ArgumentException exc) { Assert.AreEqual("source", exc.ParamName); } } }