public void CreateListFromVerticalArrayRangeSimpleTypes()
        {
            var dateTimeArray = new object[1, 3];

            dateTimeArray[0, 0] = DateTime.Today.Date.AddDays(1);
            dateTimeArray[0, 1] = null;
            dateTimeArray[0, 2] = DateTime.Today.Date.AddDays(2);
            List <DateTime> dateTimesList = ObjectToArrayOfPropertiesConverter.CreateListFromVerticalArrayRange <DateTime>(dateTimeArray);

            Assert.AreEqual(2, dateTimesList.Count);
            Assert.AreEqual(DateTime.Today.Date.AddDays(1), dateTimesList[0]);
            Assert.AreEqual(DateTime.Today.Date.AddDays(2), dateTimesList[1]);
            var stringArray = new object[1, 3];

            stringArray[0, 0] = "One";
            stringArray[0, 1] = null;
            stringArray[0, 2] = "Three";
            List <string> stringList = ObjectToArrayOfPropertiesConverter.CreateListFromVerticalArrayRange <string>(stringArray);

            Assert.AreEqual(2, stringList.Count);
            Assert.AreEqual("One", stringList[0]);
            Assert.AreEqual("Three", stringList[1]);
            var intArray = new object[1, 3];

            intArray[0, 0] = 1;
            intArray[0, 1] = null;
            intArray[0, 2] = 3;
            List <int> intList = ObjectToArrayOfPropertiesConverter.CreateListFromVerticalArrayRange <int>(intArray);

            Assert.AreEqual(2, intList.Count);
            Assert.AreEqual(1, intList[0]);
            Assert.AreEqual(3, intList[1]);
            var doubleArray = new object[1, 3];

            doubleArray[0, 0] = 1;
            doubleArray[0, 1] = null;
            doubleArray[0, 2] = 3;
            var doubleList = ObjectToArrayOfPropertiesConverter.CreateListFromVerticalArrayRange <double>(doubleArray);

            Assert.AreEqual(2, doubleList.Count);
            Assert.AreEqual(1, doubleList[0]);
            Assert.AreEqual(3, doubleList[1]);
            var decimalArray = new object[1, 3];

            decimalArray[0, 0] = 1.1m;
            decimalArray[0, 1] = null;
            decimalArray[0, 2] = 3.1m;
            var decimalList = ObjectToArrayOfPropertiesConverter.CreateListFromVerticalArrayRange <decimal>(decimalArray);

            Assert.AreEqual(2, decimalList.Count);
            Assert.AreEqual(1.1m, decimalList[0]);
            Assert.AreEqual(3.1m, decimalList[1]);
        }
        public void CreateListFromVerticalArrayRange()
        {
            var sourceArrayWithExtraData = new object[10, 3];

            sourceArrayWithExtraData[0, 0] = "Jonh Doe";
            sourceArrayWithExtraData[1, 0] = 100;
            sourceArrayWithExtraData[2, 0] = 40;
            sourceArrayWithExtraData[3, 0] = PersonType.One;
            sourceArrayWithExtraData[4, 0] = false;
            sourceArrayWithExtraData[5, 0] = null;
            sourceArrayWithExtraData[6, 0] = "#N/A";
            sourceArrayWithExtraData[7, 0] = null;
            sourceArrayWithExtraData[8, 0] = "#N/A";
            sourceArrayWithExtraData[9, 0] = null;
            sourceArrayWithExtraData[0, 1] = "Jonh Doe ";
            sourceArrayWithExtraData[1, 1] = 200;
            sourceArrayWithExtraData[2, 1] = 50;
            sourceArrayWithExtraData[3, 1] = PersonType.Two;
            sourceArrayWithExtraData[4, 1] = true;
            sourceArrayWithExtraData[5, 1] = null;
            sourceArrayWithExtraData[6, 1] = "#N/A";
            sourceArrayWithExtraData[7, 1] = null;
            sourceArrayWithExtraData[8, 1] = "#N/A";
            sourceArrayWithExtraData[9, 1] = null;
            // Third row is empty and should be not converted to object.
            //
            sourceArrayWithExtraData[0, 2] = null;
            sourceArrayWithExtraData[1, 2] = null;
            sourceArrayWithExtraData[2, 2] = null;
            sourceArrayWithExtraData[3, 2] = null;
            sourceArrayWithExtraData[4, 2] = null;
            sourceArrayWithExtraData[5, 2] = null;
            sourceArrayWithExtraData[6, 2] = null;
            sourceArrayWithExtraData[7, 2] = null;
            sourceArrayWithExtraData[8, 2] = null;
            sourceArrayWithExtraData[9, 2] = null;
            List <ClassWithParamData> list = ObjectToArrayOfPropertiesConverter.CreateListFromVerticalArrayRange <ClassWithParamData>(sourceArrayWithExtraData);

            Assert.AreEqual(list.Count, 2);
        }