public void CopyIncludingItemsTest()
        {
            var dataSet = new RecordsDataSet
            {
                Headers = new List <string>
                {
                    "test1",
                    "test2",
                    "test3",
                    "test4",
                    "test5"
                },
                Records = new List <DynamicRecord>
                {
                    new DynamicRecord(),
                    new DynamicRecord(),
                    new DynamicRecord(),
                    new DynamicRecord(),
                    new DynamicRecord(),
                }
            };

            Assert.AreEqual(dataSet.Headers.Count, dataSet.Records.Count);

            var newColumns = new List <string>
            {
                "test2",
                "test3",
                "test4"
            };
            var newDataSet = dataSet.CopyIncludingItems(newColumns);

            Assert.AreEqual(newDataSet.Headers.Count, newColumns.Count);
            Assert.AreEqual(newDataSet.Records.Count, newColumns.Count);

            Assert.AreNotEqual(newDataSet.Headers.Count, dataSet.Headers.Count);
            Assert.AreNotEqual(newDataSet.Records.Count, dataSet.Records.Count);
        }