public void EnumsListEnumListTTRequiresEnum()
        {
            // arrange / act
            var result = Assert.Throws <ArgumentException>(() => Enums.EnumList <int, int>());

            // assert
            Assert.That(result.Message, Is.EqualTo("T must be an enumerated type"));
        }
        public void EnumsListByteEnumIntListError()
        {
            // arrange / act
            var result = Assert.Throws <NotSupportedException>(() => Enums.EnumList <ByteEnum, int>());

            // assert
            Assert.That(result.Message, Is.EqualTo("DeuceGear.UnitTests.EnumExtensions.ByteEnum can not be converted to a list of type System.Int32"));
        }
Пример #3
0
        public void EnumsListLongEnumTypeList()
        {
            // arrange / act
            var result = Enums.EnumList <LongEnum, long>();

            // assert
            Assert.That(result.Length, Is.EqualTo(4));
            Assert.That(result[0], Is.EqualTo(0));
            Assert.That(result[1], Is.EqualTo(1));
            Assert.That(result[2], Is.EqualTo(2));
            Assert.That(result[3], Is.EqualTo(3));
        }
Пример #4
0
        public void EnumsListLongEnumGenericList()
        {
            // arrange / act
            var result = Enums.EnumList <LongEnum>().ToList();

            // assert
            Assert.That(result.Count, Is.EqualTo(4));
            Assert.That(result[0], Is.EqualTo(LongEnum.Empty));
            Assert.That(result[1], Is.EqualTo(LongEnum.Single1));
            Assert.That(result[2], Is.EqualTo(LongEnum.Single2));
            Assert.That(result[3], Is.EqualTo(LongEnum.List));
        }
        private void EnumsListEnumPerformanceTestExcludingTheFirstCall <Tenum, TdataType>(int testLength)
            where Tenum : struct, IConvertible
        {
            lock (_performanceLock)
            {
                // arrange
                var stopwatch = new Stopwatch();

                // act - 1 - Enum.GetValues
                var values1 = (TdataType[])Enum.GetValues(typeof(Tenum));
                stopwatch.Start();
                for (int i = 0; i < testLength; i++)
                {
                    var values = (TdataType[])Enum.GetValues(typeof(Tenum));
                }
                stopwatch.Stop();
                var enumGetValues = stopwatch.ElapsedTicks;

                // act - 2 - typeof().GetEnumValues
                var values2 = (TdataType[])typeof(Tenum).GetEnumValues();
                stopwatch.Restart();
                for (int i = 0; i < testLength; i++)
                {
                    var values = (TdataType[])typeof(Tenum).GetEnumValues();
                }
                stopwatch.Stop();
                var typeofGetValues = stopwatch.ElapsedTicks;

                // act - 3 - deucegear
                var values3 = Enums.EnumList <Tenum, TdataType>();
                stopwatch.Restart();
                for (int i = 0; i < testLength; i++)
                {
                    var values = Enums.EnumList <Tenum, TdataType>();
                }
                stopwatch.Stop();
                var deucegear = stopwatch.ElapsedTicks;

                // assert
                Console.WriteLine("Enum.GetValues: " + enumGetValues);
                Console.WriteLine("Typeof.GetEnumValues: " + typeofGetValues);
                Console.WriteLine("Deucegear: " + deucegear);
                Assert.That(deucegear, Is.LessThanOrEqualTo(enumGetValues));
                Assert.That(deucegear, Is.LessThanOrEqualTo(typeofGetValues));
            }
        }