Ejemplo n.º 1
0
        public void ReflectWhereSelectIterator()
        {
            IUnityContainer   container = GetContainer();
            IEnumerable <int> it = new List <int> {
                1, 2, 3
            }.Where(i => i == 2).Select(i => i);

            ReflectorConfiguration.NoValidate = true;

            var rc = new ReflectorConfiguration(new[] { it.GetType().GetGenericTypeDefinition(), typeof(Object) }, new Type[] {}, new string[] {});

            rc.SupportedSystemTypes.Clear();

            container.RegisterInstance <IReflectorConfiguration>(rc);

            var reflector = container.Resolve <IReflector>();

            reflector.Reflect();
            var specs = reflector.AllObjectSpecImmutables;

            Assert.AreEqual(2, specs.Length);

            AbstractReflectorTest.AssertSpec(typeof(object), specs[0]);
            AbstractReflectorTest.AssertSpec(it.GetType().GetGenericTypeDefinition(), specs[1]);
        }
Ejemplo n.º 2
0
        public void ReflectQueryableTypes()
        {
            IUnityContainer     container = GetContainer();
            IQueryable <object> qo        = new List <object>().AsQueryable();
            IQueryable <int>    qi        = new List <int>().AsQueryable();

            ReflectorConfiguration.NoValidate = true;

            var rc = new ReflectorConfiguration(new[] { qo.GetType(), qi.GetType(), typeof(int), typeof(object) }, new Type[] {}, new string[] {});

            rc.SupportedSystemTypes.Clear();

            container.RegisterInstance <IReflectorConfiguration>(rc);

            var reflector = container.Resolve <IReflector>();

            reflector.Reflect();
            var specs = reflector.AllObjectSpecImmutables;

            Assert.AreEqual(3, specs.Length);

            AbstractReflectorTest.AssertSpec(typeof(int), specs[0]);
            AbstractReflectorTest.AssertSpec(typeof(object), specs[1]);
            AbstractReflectorTest.AssertSpec(typeof(EnumerableQuery <>), specs[2]);
        }
Ejemplo n.º 3
0
        public void ReflectByteArray()
        {
            IUnityContainer container = GetContainer();

            ReflectorConfiguration.NoValidate = true;

            var rc = new ReflectorConfiguration(new[] { typeof(TestObjectWithByteArray) }, new Type[] {}, new[] { "System" });

            rc.SupportedSystemTypes.Clear();

            container.RegisterInstance <IReflectorConfiguration>(rc);

            var reflector = container.Resolve <IReflector>();

            reflector.Reflect();
            var specs = reflector.AllObjectSpecImmutables;

            Assert.AreEqual(31, specs.Length);

            AbstractReflectorTest.AssertSpec(typeof(System.Collections.IList), specs[0]);
            AbstractReflectorTest.AssertSpec(typeof(IEquatable <long>), specs[1]);
            AbstractReflectorTest.AssertSpec(typeof(IEquatable <int>), specs[2]);
            AbstractReflectorTest.AssertSpec(typeof(int), specs[3]);
            AbstractReflectorTest.AssertSpec(typeof(IComparable <byte>), specs[4]);
            AbstractReflectorTest.AssertSpec(typeof(IConvertible), specs[5]);
            AbstractReflectorTest.AssertSpec(typeof(IEquatable <byte>), specs[6]);
            AbstractReflectorTest.AssertSpec(typeof(object), specs[7]);
            AbstractReflectorTest.AssertSpec(typeof(IComparable <bool>), specs[8]);
            AbstractReflectorTest.AssertSpec(typeof(IEquatable <bool>), specs[9]);
            AbstractReflectorTest.AssertSpec(typeof(byte[]), specs[10]);
            AbstractReflectorTest.AssertSpec(typeof(Array), specs[11]);
            AbstractReflectorTest.AssertSpec(typeof(ValueType), specs[12]);
            AbstractReflectorTest.AssertSpec(typeof(IComparable <long>), specs[13]);
            AbstractReflectorTest.AssertSpec(typeof(long), specs[14]);
            AbstractReflectorTest.AssertSpec(typeof(IStructuralComparable), specs[15]);
            AbstractReflectorTest.AssertSpec(typeof(IComparable), specs[16]);
            AbstractReflectorTest.AssertSpec(typeof(ICollection), specs[17]);
            AbstractReflectorTest.AssertSpec(typeof(bool), specs[18]);
            AbstractReflectorTest.AssertSpec(typeof(ICloneable), specs[19]);
            AbstractReflectorTest.AssertSpec(typeof(IList <>), specs[20]);
            AbstractReflectorTest.AssertSpec(typeof(byte), specs[21]);
            AbstractReflectorTest.AssertSpec(typeof(IFormattable), specs[22]);
            AbstractReflectorTest.AssertSpec(typeof(IComparable <int>), specs[23]);
            AbstractReflectorTest.AssertSpec(typeof(IReadOnlyList <>), specs[24]);
            AbstractReflectorTest.AssertSpec(typeof(IReadOnlyCollection <>), specs[25]);
            AbstractReflectorTest.AssertSpec(typeof(IStructuralEquatable), specs[26]);
            AbstractReflectorTest.AssertSpec(typeof(ICollection <>), specs[27]);
            AbstractReflectorTest.AssertSpec(typeof(TestObjectWithByteArray), specs[28]);
            AbstractReflectorTest.AssertSpec(typeof(IEnumerable <>), specs[29]);
            AbstractReflectorTest.AssertSpec(typeof(IEnumerable), specs[30]);
        }
Ejemplo n.º 4
0
        public void ReflectByteArray()
        {
            ReflectorConfiguration.NoValidate = true;

            var rc = new ReflectorConfiguration(new[] { typeof(TestObjectWithByteArray) }, new Type[] { }, new[] { "System" });

            rc.SupportedSystemTypes.Clear();

            var container = GetContainer(rc);

            var reflector = container.GetService <IReflector>();

            reflector.Reflect();
            var specs = reflector.AllObjectSpecImmutables;

            Assert.AreEqual(31, specs.Length);

            AbstractReflectorTest.AssertSpec(typeof(IList), specs);
            AbstractReflectorTest.AssertSpec(typeof(IEquatable <long>), specs);
            AbstractReflectorTest.AssertSpec(typeof(IEquatable <int>), specs);
            AbstractReflectorTest.AssertSpec(typeof(int), specs);
            AbstractReflectorTest.AssertSpec(typeof(IComparable <byte>), specs);
            AbstractReflectorTest.AssertSpec(typeof(IConvertible), specs);
            AbstractReflectorTest.AssertSpec(typeof(IEquatable <byte>), specs);
            AbstractReflectorTest.AssertSpec(typeof(object), specs);
            AbstractReflectorTest.AssertSpec(typeof(IComparable <bool>), specs);
            AbstractReflectorTest.AssertSpec(typeof(IEquatable <bool>), specs);
            AbstractReflectorTest.AssertSpec(typeof(byte[]), specs);
            AbstractReflectorTest.AssertSpec(typeof(Array), specs);
            AbstractReflectorTest.AssertSpec(typeof(ValueType), specs);
            AbstractReflectorTest.AssertSpec(typeof(IComparable <long>), specs);
            AbstractReflectorTest.AssertSpec(typeof(long), specs);
            AbstractReflectorTest.AssertSpec(typeof(IStructuralComparable), specs);
            AbstractReflectorTest.AssertSpec(typeof(IComparable), specs);
            AbstractReflectorTest.AssertSpec(typeof(ICollection), specs);
            AbstractReflectorTest.AssertSpec(typeof(bool), specs);
            AbstractReflectorTest.AssertSpec(typeof(ICloneable), specs);
            AbstractReflectorTest.AssertSpec(typeof(IList <>), specs);
            AbstractReflectorTest.AssertSpec(typeof(byte), specs);
            AbstractReflectorTest.AssertSpec(typeof(IFormattable), specs);
            AbstractReflectorTest.AssertSpec(typeof(IComparable <int>), specs);
            AbstractReflectorTest.AssertSpec(typeof(IReadOnlyList <>), specs);
            AbstractReflectorTest.AssertSpec(typeof(IReadOnlyCollection <>), specs);
            AbstractReflectorTest.AssertSpec(typeof(IStructuralEquatable), specs);
            AbstractReflectorTest.AssertSpec(typeof(ICollection <>), specs);
            AbstractReflectorTest.AssertSpec(typeof(TestObjectWithByteArray), specs);
            AbstractReflectorTest.AssertSpec(typeof(IEnumerable <>), specs);
            AbstractReflectorTest.AssertSpec(typeof(IEnumerable), specs);
        }
Ejemplo n.º 5
0
        public void ReflectObjectType()
        {
            ReflectorConfiguration.NoValidate = true;

            var rc = new ReflectorConfiguration(new[] { typeof(object) }, new Type[] { }, new string[] { });

            rc.SupportedSystemTypes.Clear();

            var container = GetContainer(rc);

            var reflector = container.GetService <IReflector>();

            reflector.Reflect();
            Assert.AreEqual(1, reflector.AllObjectSpecImmutables.Length);

            AbstractReflectorTest.AssertSpec(typeof(object), reflector.AllObjectSpecImmutables.First());
        }
Ejemplo n.º 6
0
        public void ReflectObjectType()
        {
            IUnityContainer container = GetContainer();

            ReflectorConfiguration.NoValidate = true;

            var rc = new ReflectorConfiguration(new[] { typeof(object) }, new Type[] {}, new string[] {});

            rc.SupportedSystemTypes.Clear();

            container.RegisterInstance <IReflectorConfiguration>(rc);

            var reflector = container.Resolve <IReflector>();

            reflector.Reflect();
            Assert.AreEqual(1, reflector.AllObjectSpecImmutables.Count());

            AbstractReflectorTest.AssertSpec(typeof(object), reflector.AllObjectSpecImmutables.First());
        }
Ejemplo n.º 7
0
        public void ReflectStringArray()
        {
            ReflectorConfiguration.NoValidate = true;

            var rc = new ReflectorConfiguration(new[] { typeof(TestObjectWithStringArray), typeof(string) }, new Type[] { }, new string[] { });

            rc.SupportedSystemTypes.Clear();

            var container = GetContainer(rc);

            var reflector = container.GetService <IReflector>();

            reflector.Reflect();
            var specs = reflector.AllObjectSpecImmutables;

            Assert.AreEqual(2, specs.Length);

            AbstractReflectorTest.AssertSpec(typeof(TestObjectWithStringArray), specs);
            AbstractReflectorTest.AssertSpec(typeof(string), specs);
        }
Ejemplo n.º 8
0
        public void ReflectSetTypes()
        {
            IUnityContainer container = GetContainer();

            ReflectorConfiguration.NoValidate = true;

            var rc = new ReflectorConfiguration(new[] { typeof(SetWrapper <>), typeof(object) }, new Type[] {}, new string[] {});

            rc.SupportedSystemTypes.Clear();

            container.RegisterInstance <IReflectorConfiguration>(rc);

            var reflector = container.Resolve <IReflector>();

            reflector.Reflect();
            var specs = reflector.AllObjectSpecImmutables;

            Assert.AreEqual(2, specs.Length);

            AbstractReflectorTest.AssertSpec(typeof(object), specs[0]);
            AbstractReflectorTest.AssertSpec(typeof(SetWrapper <>), specs[1]);
        }
Ejemplo n.º 9
0
        public void ReflectSimpleDomainObject()
        {
            IUnityContainer container = GetContainer();

            ReflectorConfiguration.NoValidate = true;

            var rc = new ReflectorConfiguration(new[] { typeof(SimpleDomainObject) }, new Type[] {}, new[] { "System" });

            rc.SupportedSystemTypes.Clear();
            container.RegisterInstance <IReflectorConfiguration>(rc);

            var reflector = container.Resolve <IReflector>();

            reflector.Reflect();
            var specs = reflector.AllObjectSpecImmutables;

            Assert.AreEqual(19, specs.Length);

            AbstractReflectorTest.AssertSpec(typeof(IComparable <string>), specs[0]);
            AbstractReflectorTest.AssertSpec(typeof(IEquatable <int>), specs[1]);
            AbstractReflectorTest.AssertSpec(typeof(int), specs[2]);
            AbstractReflectorTest.AssertSpec(typeof(IConvertible), specs[3]);
            AbstractReflectorTest.AssertSpec(typeof(object), specs[4]);
            AbstractReflectorTest.AssertSpec(typeof(IComparable <char>), specs[5]);
            AbstractReflectorTest.AssertSpec(typeof(char), specs[6]);
            AbstractReflectorTest.AssertSpec(typeof(ValueType), specs[7]);
            AbstractReflectorTest.AssertSpec(typeof(IComparable), specs[8]);
            AbstractReflectorTest.AssertSpec(typeof(ICloneable), specs[9]);
            AbstractReflectorTest.AssertSpec(typeof(IEquatable <string>), specs[10]);
            AbstractReflectorTest.AssertSpec(typeof(IEquatable <char>), specs[11]);
            AbstractReflectorTest.AssertSpec(typeof(void), specs[12]);
            AbstractReflectorTest.AssertSpec(typeof(IFormattable), specs[13]);
            AbstractReflectorTest.AssertSpec(typeof(IComparable <int>), specs[14]);
            AbstractReflectorTest.AssertSpec(typeof(SimpleDomainObject), specs[15]);
            AbstractReflectorTest.AssertSpec(typeof(string), specs[16]);
            AbstractReflectorTest.AssertSpec(typeof(IEnumerable <>), specs[17]);
            AbstractReflectorTest.AssertSpec(typeof(IEnumerable), specs[18]);
        }
Ejemplo n.º 10
0
        public void ReflectSimpleDomainObject()
        {
            ReflectorConfiguration.NoValidate = true;

            var rc = new ReflectorConfiguration(new[] { typeof(SimpleDomainObject) }, new Type[] { }, new[] { "System" });

            rc.SupportedSystemTypes.Clear();
            var container = GetContainer(rc);

            var reflector = container.GetService <IReflector>();

            reflector.Reflect();
            var specs = reflector.AllObjectSpecImmutables;

            Assert.AreEqual(19, specs.Length);

            AbstractReflectorTest.AssertSpec(typeof(IComparable <string>), specs);
            AbstractReflectorTest.AssertSpec(typeof(IEquatable <int>), specs);
            AbstractReflectorTest.AssertSpec(typeof(int), specs);
            AbstractReflectorTest.AssertSpec(typeof(IConvertible), specs);
            AbstractReflectorTest.AssertSpec(typeof(object), specs);
            AbstractReflectorTest.AssertSpec(typeof(IComparable <char>), specs);
            AbstractReflectorTest.AssertSpec(typeof(char), specs);
            AbstractReflectorTest.AssertSpec(typeof(ValueType), specs);
            AbstractReflectorTest.AssertSpec(typeof(IComparable), specs);
            AbstractReflectorTest.AssertSpec(typeof(ICloneable), specs);
            AbstractReflectorTest.AssertSpec(typeof(IEquatable <string>), specs);
            AbstractReflectorTest.AssertSpec(typeof(IEquatable <char>), specs);
            AbstractReflectorTest.AssertSpec(typeof(void), specs);
            AbstractReflectorTest.AssertSpec(typeof(IFormattable), specs);
            AbstractReflectorTest.AssertSpec(typeof(IComparable <int>), specs);
            AbstractReflectorTest.AssertSpec(typeof(SimpleDomainObject), specs);
            AbstractReflectorTest.AssertSpec(typeof(string), specs);
            AbstractReflectorTest.AssertSpec(typeof(IEnumerable <>), specs);
            AbstractReflectorTest.AssertSpec(typeof(IEnumerable), specs);
        }
Ejemplo n.º 11
0
        public void ReflectWhereIterator()
        {
            var it = new List <int> {
                1, 2, 3
            }.Where(i => i == 2);

            ReflectorConfiguration.NoValidate = true;

            var rc = new ReflectorConfiguration(new[] { it.GetType().GetGenericTypeDefinition(), typeof(object) }, new Type[] { }, new string[] { });

            rc.SupportedSystemTypes.Clear();

            var container = GetContainer(rc);

            var reflector = container.GetService <IReflector>();

            reflector.Reflect();
            var specs = reflector.AllObjectSpecImmutables;

            Assert.AreEqual(2, specs.Length);

            AbstractReflectorTest.AssertSpec(typeof(object), specs);
            AbstractReflectorTest.AssertSpec(it.GetType().GetGenericTypeDefinition(), specs);
        }
Ejemplo n.º 12
0
        public void ReflectWithScalars()
        {
            IUnityContainer container = GetContainer();

            ReflectorConfiguration.NoValidate = true;

            var rc = new ReflectorConfiguration(new[] { typeof(WithScalars) }, new Type[] {}, new[] { "System" });

            rc.SupportedSystemTypes.Clear();
            container.RegisterInstance <IReflectorConfiguration>(rc);

            var reflector = container.Resolve <IReflector>();

            reflector.Reflect();
            var specs = reflector.AllObjectSpecImmutables;

            Assert.AreEqual(74, specs.Length);

            AbstractReflectorTest.AssertSpec(typeof(System.IComparable <System.Decimal>), specs[0]);
            AbstractReflectorTest.AssertSpec(typeof(System.Int16), specs[1]);
            AbstractReflectorTest.AssertSpec(typeof(System.Collections.IList), specs[2]);
            AbstractReflectorTest.AssertSpec(typeof(System.UInt32), specs[3]);
            AbstractReflectorTest.AssertSpec(typeof(System.IComparable <System.String>), specs[4]);
            AbstractReflectorTest.AssertSpec(typeof(System.IEquatable <System.Int64>), specs[5]);
            AbstractReflectorTest.AssertSpec(typeof(System.IEquatable <System.Int32>), specs[6]);
            AbstractReflectorTest.AssertSpec(typeof(System.Decimal), specs[7]);
            AbstractReflectorTest.AssertSpec(typeof(System.Int32), specs[8]);
            AbstractReflectorTest.AssertSpec(typeof(System.IComparable <System.Byte>), specs[9]);
            AbstractReflectorTest.AssertSpec(typeof(System.IConvertible), specs[10]);
            AbstractReflectorTest.AssertSpec(typeof(System.IEquatable <System.Byte>), specs[11]);
            AbstractReflectorTest.AssertSpec(typeof(System.Object), specs[12]);
            AbstractReflectorTest.AssertSpec(typeof(System.IEquatable <System.DateTime>), specs[13]);
            AbstractReflectorTest.AssertSpec(typeof(System.IEquatable <System.Single>), specs[14]);
            AbstractReflectorTest.AssertSpec(typeof(System.IComparable <System.Boolean>), specs[15]);
            AbstractReflectorTest.AssertSpec(typeof(System.IComparable <System.Char>), specs[16]);
            AbstractReflectorTest.AssertSpec(typeof(System.IComparable <System.Single>), specs[17]);
            AbstractReflectorTest.AssertSpec(typeof(System.IEquatable <System.Boolean>), specs[18]);
            AbstractReflectorTest.AssertSpec(typeof(System.Byte[]), specs[19]);
            AbstractReflectorTest.AssertSpec(typeof(System.DateTimeKind), specs[20]);
            AbstractReflectorTest.AssertSpec(typeof(System.Array), specs[21]);
            AbstractReflectorTest.AssertSpec(typeof(System.Char), specs[22]);
            AbstractReflectorTest.AssertSpec(typeof(System.ValueType), specs[23]);
            AbstractReflectorTest.AssertSpec(typeof(System.IComparable <System.TimeSpan>), specs[24]);
            AbstractReflectorTest.AssertSpec(typeof(System.DayOfWeek), specs[25]);
            AbstractReflectorTest.AssertSpec(typeof(System.IEquatable <System.UInt16>), specs[26]);
            AbstractReflectorTest.AssertSpec(typeof(System.IComparable <System.Int64>), specs[27]);
            AbstractReflectorTest.AssertSpec(typeof(System.Int64), specs[28]);
            AbstractReflectorTest.AssertSpec(typeof(System.DateTime), specs[29]);
            AbstractReflectorTest.AssertSpec(typeof(System.Collections.IStructuralComparable), specs[30]);
            AbstractReflectorTest.AssertSpec(typeof(System.IComparable <System.DateTime>), specs[31]);
            AbstractReflectorTest.AssertSpec(typeof(System.UInt64), specs[32]);
            AbstractReflectorTest.AssertSpec(typeof(System.Enum), specs[33]);
            AbstractReflectorTest.AssertSpec(typeof(System.SByte[]), specs[34]);
            AbstractReflectorTest.AssertSpec(typeof(System.IComparable <System.SByte>), specs[35]);
            AbstractReflectorTest.AssertSpec(typeof(NakedObjects.Reflect.Test.ReflectorTest.WithScalars), specs[36]);
            AbstractReflectorTest.AssertSpec(typeof(System.IComparable), specs[37]);
            AbstractReflectorTest.AssertSpec(typeof(System.Collections.ICollection), specs[38]);
            AbstractReflectorTest.AssertSpec(typeof(System.Boolean), specs[39]);
            AbstractReflectorTest.AssertSpec(typeof(System.IComparable <System.Double>), specs[40]);
            AbstractReflectorTest.AssertSpec(typeof(System.IEquatable <System.Decimal>), specs[41]);
            AbstractReflectorTest.AssertSpec(typeof(System.IComparable <System.UInt16>), specs[42]);
            AbstractReflectorTest.AssertSpec(typeof(System.IEquatable <System.UInt32>), specs[43]);
            AbstractReflectorTest.AssertSpec(typeof(System.ICloneable), specs[45]);
            AbstractReflectorTest.AssertSpec(typeof(System.IEquatable <System.Int16>), specs[46]);
            AbstractReflectorTest.AssertSpec(typeof(System.TimeSpan), specs[47]);
            AbstractReflectorTest.AssertSpec(typeof(System.IEquatable <System.String>), specs[48]);
            AbstractReflectorTest.AssertSpec(typeof(System.Collections.Generic.IList <>), specs[49]);
            AbstractReflectorTest.AssertSpec(typeof(System.Byte), specs[50]);
            AbstractReflectorTest.AssertSpec(typeof(System.IEquatable <System.Char>), specs[51]);
            AbstractReflectorTest.AssertSpec(typeof(System.Char[]), specs[52]);
            AbstractReflectorTest.AssertSpec(typeof(System.IComparable <System.UInt32>), specs[53]);
            AbstractReflectorTest.AssertSpec(typeof(System.Single), specs[54]);
            AbstractReflectorTest.AssertSpec(typeof(System.IFormattable), specs[55]);
            AbstractReflectorTest.AssertSpec(typeof(System.Runtime.Serialization.ISerializable), specs[56]);
            AbstractReflectorTest.AssertSpec(typeof(System.IComparable <System.Int32>), specs[57]);
            AbstractReflectorTest.AssertSpec(typeof(System.SByte), specs[58]);
            AbstractReflectorTest.AssertSpec(typeof(System.IEquatable <System.SByte>), specs[59]);
            AbstractReflectorTest.AssertSpec(typeof(System.String), specs[60]);
            AbstractReflectorTest.AssertSpec(typeof(System.Collections.Generic.IReadOnlyList <>), specs[61]);
            AbstractReflectorTest.AssertSpec(typeof(System.Collections.Generic.IReadOnlyCollection <>), specs[62]);
            AbstractReflectorTest.AssertSpec(typeof(System.Collections.IStructuralEquatable), specs[63]);
            AbstractReflectorTest.AssertSpec(typeof(System.Collections.Generic.ICollection <>), specs[64]);
            AbstractReflectorTest.AssertSpec(typeof(System.IComparable <System.UInt64>), specs[65]);
            AbstractReflectorTest.AssertSpec(typeof(System.IEquatable <System.TimeSpan>), specs[66]);
            AbstractReflectorTest.AssertSpec(typeof(System.UInt16), specs[67]);
            AbstractReflectorTest.AssertSpec(typeof(System.IEquatable <System.UInt64>), specs[68]);
            AbstractReflectorTest.AssertSpec(typeof(System.Collections.Generic.IEnumerable <>), specs[69]);
            AbstractReflectorTest.AssertSpec(typeof(System.IComparable <System.Int16>), specs[70]);
            AbstractReflectorTest.AssertSpec(typeof(System.Runtime.Serialization.IDeserializationCallback), specs[71]);
            AbstractReflectorTest.AssertSpec(typeof(System.Collections.IEnumerable), specs[72]);
            AbstractReflectorTest.AssertSpec(typeof(System.IEquatable <System.Double>), specs[73]);
        }
Ejemplo n.º 13
0
        public void ReflectWithScalars()
        {
            ReflectorConfiguration.NoValidate = true;

            var rc = new ReflectorConfiguration(new[] { typeof(WithScalars) }, new Type[] { }, new[] { "System" });

            rc.SupportedSystemTypes.Clear();
            var container = GetContainer(rc);

            var reflector = container.GetService <IReflector>();

            reflector.Reflect();
            var specs = reflector.AllObjectSpecImmutables;

            Assert.AreEqual(74, specs.Length);

            AbstractReflectorTest.AssertSpec(typeof(IComparable <decimal>), specs);
            AbstractReflectorTest.AssertSpec(typeof(short), specs);
            AbstractReflectorTest.AssertSpec(typeof(IList), specs);
            AbstractReflectorTest.AssertSpec(typeof(uint), specs);
            AbstractReflectorTest.AssertSpec(typeof(IComparable <string>), specs);
            AbstractReflectorTest.AssertSpec(typeof(IEquatable <long>), specs);
            AbstractReflectorTest.AssertSpec(typeof(IEquatable <int>), specs);
            AbstractReflectorTest.AssertSpec(typeof(decimal), specs);
            AbstractReflectorTest.AssertSpec(typeof(int), specs);
            AbstractReflectorTest.AssertSpec(typeof(IComparable <byte>), specs);
            AbstractReflectorTest.AssertSpec(typeof(IConvertible), specs);
            AbstractReflectorTest.AssertSpec(typeof(IEquatable <byte>), specs);
            AbstractReflectorTest.AssertSpec(typeof(object), specs);
            AbstractReflectorTest.AssertSpec(typeof(IEquatable <DateTime>), specs);
            AbstractReflectorTest.AssertSpec(typeof(IEquatable <float>), specs);
            AbstractReflectorTest.AssertSpec(typeof(IComparable <bool>), specs);
            AbstractReflectorTest.AssertSpec(typeof(IComparable <char>), specs);
            AbstractReflectorTest.AssertSpec(typeof(IComparable <float>), specs);
            AbstractReflectorTest.AssertSpec(typeof(IEquatable <bool>), specs);
            AbstractReflectorTest.AssertSpec(typeof(byte[]), specs);
            AbstractReflectorTest.AssertSpec(typeof(DateTimeKind), specs);
            AbstractReflectorTest.AssertSpec(typeof(Array), specs);
            AbstractReflectorTest.AssertSpec(typeof(char), specs);
            AbstractReflectorTest.AssertSpec(typeof(ValueType), specs);
            AbstractReflectorTest.AssertSpec(typeof(IComparable <TimeSpan>), specs);
            AbstractReflectorTest.AssertSpec(typeof(DayOfWeek), specs);
            AbstractReflectorTest.AssertSpec(typeof(IEquatable <ushort>), specs);
            AbstractReflectorTest.AssertSpec(typeof(IComparable <long>), specs);
            AbstractReflectorTest.AssertSpec(typeof(long), specs);
            AbstractReflectorTest.AssertSpec(typeof(DateTime), specs);
            AbstractReflectorTest.AssertSpec(typeof(IStructuralComparable), specs);
            AbstractReflectorTest.AssertSpec(typeof(IComparable <DateTime>), specs);
            AbstractReflectorTest.AssertSpec(typeof(ulong), specs);
            AbstractReflectorTest.AssertSpec(typeof(Enum), specs);
            AbstractReflectorTest.AssertSpec(typeof(sbyte[]), specs);
            AbstractReflectorTest.AssertSpec(typeof(IComparable <sbyte>), specs);
            AbstractReflectorTest.AssertSpec(typeof(WithScalars), specs);
            AbstractReflectorTest.AssertSpec(typeof(IComparable), specs);
            AbstractReflectorTest.AssertSpec(typeof(ICollection), specs);
            AbstractReflectorTest.AssertSpec(typeof(bool), specs);
            AbstractReflectorTest.AssertSpec(typeof(IComparable <double>), specs);
            AbstractReflectorTest.AssertSpec(typeof(IEquatable <decimal>), specs);
            AbstractReflectorTest.AssertSpec(typeof(IComparable <ushort>), specs);
            AbstractReflectorTest.AssertSpec(typeof(IEquatable <uint>), specs);
            AbstractReflectorTest.AssertSpec(typeof(ICloneable), specs);
            AbstractReflectorTest.AssertSpec(typeof(IEquatable <short>), specs);
            AbstractReflectorTest.AssertSpec(typeof(TimeSpan), specs);
            AbstractReflectorTest.AssertSpec(typeof(IEquatable <string>), specs);
            AbstractReflectorTest.AssertSpec(typeof(IList <>), specs);
            AbstractReflectorTest.AssertSpec(typeof(byte), specs);
            AbstractReflectorTest.AssertSpec(typeof(IEquatable <char>), specs);
            AbstractReflectorTest.AssertSpec(typeof(char[]), specs);
            AbstractReflectorTest.AssertSpec(typeof(IComparable <uint>), specs);
            AbstractReflectorTest.AssertSpec(typeof(float), specs);
            AbstractReflectorTest.AssertSpec(typeof(IFormattable), specs);
            AbstractReflectorTest.AssertSpec(typeof(ISerializable), specs);
            AbstractReflectorTest.AssertSpec(typeof(IComparable <int>), specs);
            AbstractReflectorTest.AssertSpec(typeof(sbyte), specs);
            AbstractReflectorTest.AssertSpec(typeof(IEquatable <sbyte>), specs);
            AbstractReflectorTest.AssertSpec(typeof(string), specs);
            AbstractReflectorTest.AssertSpec(typeof(IReadOnlyList <>), specs);
            AbstractReflectorTest.AssertSpec(typeof(IReadOnlyCollection <>), specs);
            AbstractReflectorTest.AssertSpec(typeof(IStructuralEquatable), specs);
            AbstractReflectorTest.AssertSpec(typeof(ICollection <>), specs);
            AbstractReflectorTest.AssertSpec(typeof(IComparable <ulong>), specs);
            AbstractReflectorTest.AssertSpec(typeof(IEquatable <TimeSpan>), specs);
            AbstractReflectorTest.AssertSpec(typeof(ushort), specs);
            AbstractReflectorTest.AssertSpec(typeof(IEquatable <ulong>), specs);
            AbstractReflectorTest.AssertSpec(typeof(IEnumerable <>), specs);
            AbstractReflectorTest.AssertSpec(typeof(IComparable <short>), specs);
            AbstractReflectorTest.AssertSpec(typeof(IDeserializationCallback), specs);
            AbstractReflectorTest.AssertSpec(typeof(IEnumerable), specs);
            AbstractReflectorTest.AssertSpec(typeof(IEquatable <double>), specs);
        }