public void IsGenericType()
        {
            Assert.ThrowsExact <ArgumentNullException>(() => Assert.IsGenericType(null as object));
            Assert.ThrowsExact <ArgumentNullException>(() => Assert.IsGenericType(null as Type));

            Assert.ThrowsExact <AssertionException>(() => Assert.IsGenericType("hello"));
            Assert.ThrowsExact <AssertionException>(() => Assert.IsGenericType(1L));
            Assert.ThrowsExact <AssertionException>(() => Assert.IsGenericType(AttributeTargets.All));
            Assert.DoesNotThrow(() => Assert.IsGenericType(new List <int>()));
            Assert.ThrowsExact <AssertionException>(() => Assert.IsGenericType(new int[0]));

            Assert.ThrowsExact <AssertionException>(() => Assert.IsGenericType <string>());
            Assert.ThrowsExact <AssertionException>(() => Assert.IsGenericType <long>());
            Assert.ThrowsExact <AssertionException>(() => Assert.IsGenericType <AttributeTargets>());
            Assert.DoesNotThrow(() => Assert.IsGenericType <List <int> >());
            Assert.ThrowsExact <AssertionException>(() => Assert.IsGenericType <int[]>());
            Assert.DoesNotThrow(() => Assert.IsGenericType <IEnumerable <int> >());

            Assert.ThrowsExact <AssertionException>(() => Assert.IsGenericType(typeof(string)));
            Assert.ThrowsExact <AssertionException>(() => Assert.IsGenericType(typeof(long)));
            Assert.ThrowsExact <AssertionException>(() => Assert.IsGenericType(typeof(AttributeTargets)));
            Assert.DoesNotThrow(() => Assert.IsGenericType(typeof(List <int>)));
            Assert.ThrowsExact <AssertionException>(() => Assert.IsGenericType(typeof(int[])));
            Assert.DoesNotThrow(() => Assert.IsGenericType(typeof(IEnumerable <int>)));
        }