Beispiel #1
0
        public void ShredTest()
        {
            DataTable dt = GetTable();

            string templateFilename = Path.GetTempFileName() + ".{0}.csv";

            Analyze.Shred(dt, "last", templateFilename);

            string file1 = string.Format(templateFilename, "Smith");
            string file2 = string.Format(templateFilename, "Jones");

            Assert.True(File.Exists(file1));
            Assert.True(File.Exists(file2));

            string content1 = File.ReadAllText(file1);
            string content2 = File.ReadAllText(file2);

            File.Delete(file1);
            File.Delete(file2);

            AnalyzeTests.AssertEquals(
                @"first,last,age
Bob,Smith,12
Ed,Smith,12
John,Smith,34
", content1);



            AnalyzeTests.AssertEquals(
                @"first,last,age
Bob,Jones,34
", content2);
        }
Beispiel #2
0
        public void ArrayToTable()
        {
            Point[] ps = new Point[] {
                new Point {
                    x = 11, y = 12
                },
                new Point {
                    x = 21, y = 22
                },
                new Point {
                    x = 31, y = 32
                }
            };

            // Tests converting an array of structs into a table
            MutableDataTable dt = DataTable.New.FromEnumerable(ps);


            StringWriter sw = new StringWriter();

            dt.SaveToStream(sw);
            AnalyzeTests.AssertEquals(
                @"x,y
11,12
21,22
31,32
", sw.ToString());
        }
        public void KeepRows()
        {
            MutableDataTable dt = GetTable();

            dt.KeepRows(row => row["last"] == "Jones");

            AnalyzeTests.AssertEquals(
                @"first,last
Fred,Jones
", dt);
        }
        public void RemoveColumns()
        {
            MutableDataTable dt = GetTable();

            dt.DeleteColumn(1);

            AnalyzeTests.AssertEquals(
                @"first
Bob
Fred
", dt);
        }
        public void KeepColumnsRemove()
        {
            MutableDataTable dt = GetTable();

            dt.KeepColumns("last");

            AnalyzeTests.AssertEquals(
                @"last
Smith
Jones
", dt);
        }
        public void DeleteColumns()
        {
            MutableDataTable dt = GetTable();

            dt.DeleteColumns("first");

            AnalyzeTests.AssertEquals(
                @"last
Smith
Jones
", dt);
        }
        public void KeepColumnsReorder()
        {
            MutableDataTable dt = GetTable();

            dt.KeepColumns("last", "first");

            AnalyzeTests.AssertEquals(
                @"last,first
Smith,Bob
Jones,Fred
", dt);
        }
        public void RenameSame()
        {
            MutableDataTable dt = GetTable();

            dt.RenameColumn("first", "first");

            AnalyzeTests.AssertEquals(
                @"first,last
Bob,Smith
Fred,Jones
", dt);
        }
        public void ApplyToColumn()
        {
            MutableDataTable dt = GetTable();

            dt.ApplyToColumn("first", value => value.ToUpper());

            AnalyzeTests.AssertEquals(
                @"first,last
BOB,Smith
FRED,Jones
", dt);
        }
        public void CreateColumn()
        {
            MutableDataTable dt = GetTable();

            dt.CreateColumn("fullname", row => row["first"] + "_" + row["last"]);

            AnalyzeTests.AssertEquals(
                @"first,last,fullname
Bob,Smith,Bob_Smith
Fred,Jones,Fred_Jones
", dt);
        }
        public void Reorder()
        {
            MutableDataTable dt = GetTable();

            dt.ReorderColumn("first", 1);

            AnalyzeTests.AssertEquals(
                @"last,first
Smith,Bob
Jones,Fred
", dt);
        }
        public void KeepColumnsDoNotThrow()
        {
            MutableDataTable dt = GetTable();

            dt.KeepColumns(false, "last", "first", "made up column name");

            AnalyzeTests.AssertEquals(
                @"last,first
Smith,Bob
Jones,Fred
", dt);
        }
        public void RenameMissing()
        {
            MutableDataTable dt = GetTable();

            dt.RenameColumn("missing", "FName", throwOnMissing: false);
            // No change

            AnalyzeTests.AssertEquals(
                @"first,last
Bob,Smith
Fred,Jones
", dt);
        }
        public void CreateColumnFromMerging()
        {
            MutableDataTable dt = GetTable();

            Column c = dt.CreateColumnFromMerging("fullname", "first", "last");

            Assert.Equal("fullname", c.Name);

            AnalyzeTests.AssertEquals(
                @"first,last,fullname
Bob,Smith,Bob Smith
Fred,Jones,Fred Jones
", dt);
        }
Beispiel #15
0
        public void TableFromLinqExpressionWithAnonymousType()
        {
            var x  = from i in Enumerable.Range(1, 5) select new { N = i, NSquared = i * i };
            var dt = DataTable.New.FromEnumerable(x);

            AnalyzeTests.AssertEquals(
                @"N,NSquared
1,1
2,4
3,9
4,16
5,25
", dt);
        }
Beispiel #16
0
        public void ToMutable()
        {
            var       x  = from i in Enumerable.Range(1, 5) select new { N = i, NSquared = i * i };
            DataTable dt = DataTable.New.FromEnumerable(x);

            MutableDataTable dt2 = DataTable.New.GetMutableCopy(dt);

            AnalyzeTests.AssertEquals(
                @"N,NSquared
1,1
2,4
3,9
4,16
5,25
", dt2);
        }
Beispiel #17
0
        private void TestDelimeter(char ch)
        {
            string content =
                @"first{0}last
Bob{0}Smith";

            content = string.Format(content, ch);

            TextReader       tr = new StringReader(content);
            MutableDataTable dt = DataTable.New.Read(tr, ch);

            AnalyzeTests.AssertEquals(
                @"first,last
Bob,Smith
", dt);
        }
        public void CreateColumn2WithNull()
        {
            MutableDataTable dt = GetTable();

            dt.CreateColumns <TestRow>(row => new
            {
                fullname = row.last + "_" + row.first,
                len      = row.first.Length
            });

            AnalyzeTests.AssertEquals(
                @"first,last,fullname,len
Bob,Smith,Smith_Bob,3
Fred,Jones,Jones_Fred,4
", dt);
        }
Beispiel #19
0
        public void SaveToCSV()
        {
            var dt = DataTable.New.FromEnumerable(new int[] { 10, 20, 30, 40, 50 });

            string temp = Path.GetTempFileName() + ".csv";

            dt.SaveCSV(temp);

            string content = File.ReadAllText(temp);

            AnalyzeTests.AssertEquals(
                @"value
10
20
30
40
50
", content);
            File.Delete(temp);
        }
Beispiel #20
0
        public void LazyEnumerable()
        {
            //var dt = DataTable.New.FromEnumerableLazy(TestEnumerable());
            var dt = DataTable.New.FromEnumerableLazy(TestEnumerable());

            // Test using the row object to lookup
            var y = from row in dt.Rows
                    let i = int.Parse(row["value"])
                            select i;

            // Just taking the first element should succeed since we read lazily.
            // If we accidentally read the whole enumeration, we'd fail.
            Assert.Equal(1, y.First());

            // Verify that we can read it a second time.
            var sample = Analyze.SampleTopN(dt, 1);

            AnalyzeTests.AssertEquals(
                @"value
1
", sample);
        }