[InlineData(100000)] //should run in ~ 900ms
        public async Task MappingPerformanceFunctions(int rows)
        {
            var data             = Helpers.CreateLargeTable(rows);
            var transformMapping = new TransformMapping();
            var columnMappings   = new List <TransformFunction>();

            for (var i = 0; i < data.FieldCount; i++)
            {
                var newTransformFunction = new TransformFunction(
                    new Func <object, object>((value) => value),
                    new TableColumn[] { new TableColumn(data.GetName(i)) },
                    new TableColumn(data.GetName(i)),
                    null);
                columnMappings.Add(newTransformFunction);
            }

            transformMapping.PassThroughColumns = false;
            transformMapping.Functions          = columnMappings;
            transformMapping.SetInTransform(data);

            var count = 0;

            while (await transformMapping.ReadAsync())
            {
                count++;
            }

            Assert.Equal(rows, count);

            output.WriteLine(transformMapping.PerformanceSummary());
        }
        [InlineData(100000)] //should run in ~ 250ms
        public async Task MappingPerformanceColumnPairs(int rows)
        {
            var data             = Helpers.CreateLargeTable(rows);
            var transformMapping = new TransformMapping();
            var columnMappings   = new List <ColumnPair>();

            for (var i = 0; i < data.FieldCount; i++)
            {
                columnMappings.Add(new ColumnPair(new TableColumn(data.GetName(i))));
            }

            transformMapping.PassThroughColumns = false;
            transformMapping.MapFields          = columnMappings;
            transformMapping.SetInTransform(data);

            var count = 0;

            while (await transformMapping.ReadAsync())
            {
                count++;
            }

            Assert.Equal(rows, count);

            output.WriteLine(transformMapping.PerformanceSummary());
        }
        [InlineData(100000)] //should run in ~ 250ms
        public async Task MappingPerformancePassthrough(int rows)
        {
            var data             = Helpers.CreateLargeTable(rows);
            var transformMapping = new TransformMapping
            {
                PassThroughColumns = true
            };

            transformMapping.SetInTransform(data);

            var count = 0;

            while (await transformMapping.ReadAsync())
            {
                count++;
            }

            Assert.Equal(rows, count);

            output.WriteLine(transformMapping.PerformanceSummary());
        }