Exemple #1
0
        public void DataTableChopTest()
        {
            string[]  array_first  = new string[] { "first", "two", "three", "four, five" };
            string[]  array_second = new string[] { "second", "two", "three", "four, five" };
            string[]  array_third  = new string[] { "third", "two", "three", "four, five" };
            DataTable dt           = new DataTable();

            dt.Columns.Add("col1");
            dt.Columns.Add("col2");
            dt.Columns.Add("col3");
            dt.Columns.Add("col4");
            dt.Columns.Add("col5");
            for (int i = 0; i < 5000; i++)
            {
                dt.Rows.Add(array_first);
            }
            for (int i = 0; i < 5000; i++)
            {
                dt.Rows.Add(array_second);
            }
            for (int i = 0; i < 5000; i++)
            {
                dt.Rows.Add(array_third);
            }

            // Save this string to a test file
            string sourcefile = Path.Combine(Path.GetTempPath(), Guid.NewGuid().ToString() + ".csv");

            CSVDataTable.WriteToFile(dt, sourcefile);

            // Create an empty test folder
            string dirname = Path.Combine(Path.GetTempPath(), Guid.NewGuid().ToString());

            Directory.CreateDirectory(dirname);

            // Chop this file into one-line chunks
            CSVReader.ChopFile(sourcefile, dirname, 5000);

            // Verify that we got three files
            string[] files = Directory.GetFiles(dirname);
            Assert.AreEqual(3, files.Length);

            // Read in each file and verify that each one has one line
            dt = CSVDataTable.FromFile(files[0]);
            Assert.AreEqual(5000, dt.Rows.Count);
            Assert.AreEqual("first", dt.Rows[0].ItemArray[0]);

            dt = CSVDataTable.FromFile(files[1]);
            Assert.AreEqual(5000, dt.Rows.Count);
            Assert.AreEqual("second", dt.Rows[0].ItemArray[0]);

            dt = CSVDataTable.FromFile(files[2]);
            Assert.AreEqual(5000, dt.Rows.Count);
            Assert.AreEqual("third", dt.Rows[0].ItemArray[0]);

            // Clean up
            Directory.Delete(dirname, true);
            File.Delete(sourcefile);
        }
        public void DataTableChoppingFiles()
        {
            const string sourceText = @"timestamp,TestString,SetComment,PropertyString,IntField,IntProperty
2012-05-01,test1,""Hi there, I said!"",Bob,57,0
2011-04-01,test2,""What's up, buttercup?"",Ralph,1,-999
1975-06-03,test3,""Bye and bye, dragonfly!"",Jimmy's The Bomb,12,13";
            var          dt         = CSVDataTable.FromString(sourceText);
            var          outfile    = Path.Combine(Path.GetTempPath(), Guid.NewGuid().ToString() + ".csv");
            var          dirname    = Path.Combine(Path.GetTempPath(), Guid.NewGuid().ToString());

            try
            {
                // Save this string to a test file
                CSVDataTable.WriteToFile(dt, outfile);

                // Create an empty test folder
                Directory.CreateDirectory(dirname);

                // Chop this file into one-line chunks
                CSVReader.ChopFile(outfile, dirname, 1);

                // Verify that we got three files
                var files = Directory.GetFiles(dirname).ToList();
                files.Sort();
                Assert.IsTrue(files[0].EndsWith("1.csv"));
                Assert.IsTrue(files[1].EndsWith("2.csv"));
                Assert.IsTrue(files[2].EndsWith("3.csv"));
                Assert.AreEqual(3, files.Count);

                // Read in each file and verify that each one has one line
                dt = CSVDataTable.FromFile(files[0]);
                Assert.AreEqual(1, dt.Rows.Count);
                Assert.AreEqual("2012-05-01", dt.Rows[0].ItemArray[0]);
                Assert.AreEqual("test1", dt.Rows[0].ItemArray[1]);

                dt = CSVDataTable.FromFile(files[1]);
                Assert.AreEqual(1, dt.Rows.Count);
                Assert.AreEqual("2011-04-01", dt.Rows[0].ItemArray[0]);
                Assert.AreEqual("test2", dt.Rows[0].ItemArray[1]);

                dt = CSVDataTable.FromFile(files[2]);
                Assert.AreEqual(1, dt.Rows.Count);
                Assert.AreEqual("1975-06-03", dt.Rows[0].ItemArray[0]);
                Assert.AreEqual("test3", dt.Rows[0].ItemArray[1]);
            }
            finally
            {
                if (Directory.Exists(dirname))
                {
                    Directory.Delete(dirname, true);
                }

                if (File.Exists(outfile))
                {
                    File.Delete(outfile);
                }
            }
        }
Exemple #3
0
        public void ScenarioAnswers()
        {
            var bundle = AssetBundle.LoadFromFile(Path.Combine(Application.streamingAssetsPath, "scenario"));

            if (bundle == null)
            {
                Assert.Fail();
            }

            var csvDataTable = new CSVDataTable();

            csvDataTable.ReadFromTextAsset(bundle.LoadAsset <TextAsset>("scenario"));

            var scenarionStorage = new ScenarioStorage();

            scenarionStorage.RegisterHeader(csvDataTable.Header);
            var forTest = new List <string>();

            for (var i = 0; i < csvDataTable.RowCount; i++)
            {
                string answer;
                for (var j = 1; j < GameParams.MaxAnswerButton; j++)
                {
                    answer = csvDataTable.GetRow(i)[scenarionStorage.Header["answer_" + j + "_out"]];
                    if (answer != string.Empty && !forTest.Contains(answer))
                    {
                        forTest.Add(answer);
                    }
                }
                answer = csvDataTable.GetRow(i)[scenarionStorage.Header["next"]];
                if (answer != string.Empty && answer != "end" && !forTest.Contains(answer))
                {
                    forTest.Add(answer);
                }
            }

            foreach (var item in forTest)
            {
                var flag = false;
                for (var i = 0; i < csvDataTable.RowCount; i++)
                {
                    if (csvDataTable.GetRow(i)[scenarionStorage.Header["key"]] == item)
                    {
                        flag = true;
                    }
                }

                if (!flag)
                {
                    Assert.Fail();
                }
            }
            Assert.Pass();
        }
Exemple #4
0
        private void ParseScenario()
        {
            var csvDataTable = new CSVDataTable();

            csvDataTable.ReadFromTextAsset(GetScenario());

            _scenarionStorage = new ScenarioStorage();
            _scenarionStorage.RegisterHeader(csvDataTable.Header);
            for (var i = 0; i < csvDataTable.RowCount; i++)
            {
                _scenarionStorage.RegisterRow(csvDataTable.GetRow(i));
            }
        }
Exemple #5
0
        public void DataTableChoppingFiles()
        {
            string    source = @"timestamp,TestString,SetComment,PropertyString,IntField,IntProperty
2012-05-01,test1,""Hi there, I said!"",Bob,57,0
2011-04-01,test2,""What's up, buttercup?"",Ralph,1,-999
1975-06-03,test3,""Bye and bye, dragonfly!"",Jimmy's The Bomb,12,13";
            DataTable dt     = CSVDataTable.FromString(source);

            // Save this string to a test file
            string outfile = Path.Combine(Path.GetTempPath(), Guid.NewGuid().ToString() + ".csv");

            CSVDataTable.WriteToFile(dt, outfile);

            // Create an empty test folder
            string dirname = Path.Combine(Path.GetTempPath(), Guid.NewGuid().ToString());

            Directory.CreateDirectory(dirname);

            // Chop this file into one-line chunks
            CSVReader.ChopFile(outfile, dirname, 1);

            // Verify that we got three files
            string[] files = Directory.GetFiles(dirname);
            Assert.AreEqual(3, files.Length);

            // Read in each file and verify that each one has one line
            dt = CSVDataTable.FromFile(files[0]);
            Assert.AreEqual(1, dt.Rows.Count);
            Assert.AreEqual("2012-05-01", dt.Rows[0].ItemArray[0]);
            Assert.AreEqual("test1", dt.Rows[0].ItemArray[1]);

            dt = CSVDataTable.FromFile(files[1]);
            Assert.AreEqual(1, dt.Rows.Count);
            Assert.AreEqual("2011-04-01", dt.Rows[0].ItemArray[0]);
            Assert.AreEqual("test2", dt.Rows[0].ItemArray[1]);

            dt = CSVDataTable.FromFile(files[2]);
            Assert.AreEqual(1, dt.Rows.Count);
            Assert.AreEqual("1975-06-03", dt.Rows[0].ItemArray[0]);
            Assert.AreEqual("test3", dt.Rows[0].ItemArray[1]);

            // Clean up
            Directory.Delete(dirname, true);
            File.Delete(outfile);
        }
Exemple #6
0
        public void TestDataTableWithEmbeddedNewlines()
        {
            DataTable dt = CSVDataTable.FromString(source_embedded_newlines);

            Assert.AreEqual(dt.Columns.Count, 3);
            Assert.AreEqual(dt.Rows.Count, 4);
            Assert.AreEqual(dt.Rows[0].ItemArray[0], "JD");
            Assert.AreEqual(dt.Rows[1].ItemArray[0], "Janitor");
            Assert.AreEqual(dt.Rows[2].ItemArray[0], "Dr. Reed, " + Environment.NewLine + "Eliot");
            Assert.AreEqual(dt.Rows[3].ItemArray[0], "Dr. Kelso");
            Assert.AreEqual(dt.Rows[0].ItemArray[1], "Doctor");
            Assert.AreEqual(dt.Rows[1].ItemArray[1], "Janitor");
            Assert.AreEqual(dt.Rows[2].ItemArray[1], "Private \"Practice\"");
            Assert.AreEqual(dt.Rows[3].ItemArray[1], "Chief of Medicine");
            Assert.AreEqual(dt.Rows[0].ItemArray[2], "x234");
            Assert.AreEqual(dt.Rows[1].ItemArray[2], "x235");
            Assert.AreEqual(dt.Rows[2].ItemArray[2], "x236");
            Assert.AreEqual(dt.Rows[3].ItemArray[2], "x100");
        }
Exemple #7
0
        public void TestBasicDataTable()
        {
            DataTable dt = CSVDataTable.FromString(source);

            Assert.AreEqual(dt.Columns.Count, 3);
            Assert.AreEqual(dt.Rows.Count, 4);
            Assert.AreEqual(dt.Rows[0].ItemArray[0], "JD");
            Assert.AreEqual(dt.Rows[1].ItemArray[0], "Janitor");
            Assert.AreEqual(dt.Rows[2].ItemArray[0], "Dr. Reed, Eliot");
            Assert.AreEqual(dt.Rows[3].ItemArray[0], "Dr. Kelso");
            Assert.AreEqual(dt.Rows[0].ItemArray[1], "Doctor");
            Assert.AreEqual(dt.Rows[1].ItemArray[1], "Janitor");
            Assert.AreEqual(dt.Rows[2].ItemArray[1], "Private Practice");
            Assert.AreEqual(dt.Rows[3].ItemArray[1], "Chief of Medicine");
            Assert.AreEqual(dt.Rows[0].ItemArray[2], "x234");
            Assert.AreEqual(dt.Rows[1].ItemArray[2], "x235");
            Assert.AreEqual(dt.Rows[2].ItemArray[2], "x236");
            Assert.AreEqual(dt.Rows[3].ItemArray[2], "x100");
        }
        public void TestDataTableWithEmbeddedNewlines()
        {
            var dt = CSVDataTable.FromString(source_embedded_newlines);

            Assert.AreEqual(3, dt.Columns.Count);
            Assert.AreEqual(4, dt.Rows.Count);
            Assert.AreEqual("JD", dt.Rows[0].ItemArray[0]);
            Assert.AreEqual("Janitor", dt.Rows[1].ItemArray[0]);
            Assert.AreEqual("Dr. Reed, " + Environment.NewLine + "Eliot", dt.Rows[2].ItemArray[0]);
            Assert.AreEqual("Dr. Kelso", dt.Rows[3].ItemArray[0]);
            Assert.AreEqual("Doctor", dt.Rows[0].ItemArray[1]);
            Assert.AreEqual("Janitor", dt.Rows[1].ItemArray[1]);
            Assert.AreEqual("Private \"Practice\"", dt.Rows[2].ItemArray[1]);
            Assert.AreEqual("Chief of Medicine", dt.Rows[3].ItemArray[1]);
            Assert.AreEqual("x234", dt.Rows[0].ItemArray[2]);
            Assert.AreEqual("x235", dt.Rows[1].ItemArray[2]);
            Assert.AreEqual("x236", dt.Rows[2].ItemArray[2]);
            Assert.AreEqual("x100", dt.Rows[3].ItemArray[2]);
        }
        public void TestBasicDataTable()
        {
            var dt = CSVDataTable.FromString(source);

            Assert.AreEqual(3, dt.Columns.Count);
            Assert.AreEqual(4, dt.Rows.Count);
            Assert.AreEqual("JD", dt.Rows[0].ItemArray[0]);
            Assert.AreEqual("Janitor", dt.Rows[1].ItemArray[0]);
            Assert.AreEqual("Dr. Reed, Eliot", dt.Rows[2].ItemArray[0]);
            Assert.AreEqual("Dr. Kelso", dt.Rows[3].ItemArray[0]);
            Assert.AreEqual("Doctor", dt.Rows[0].ItemArray[1]);
            Assert.AreEqual("Janitor", dt.Rows[1].ItemArray[1]);
            Assert.AreEqual("Private Practice", dt.Rows[2].ItemArray[1]);
            Assert.AreEqual("Chief of Medicine", dt.Rows[3].ItemArray[1]);
            Assert.AreEqual("x234", dt.Rows[0].ItemArray[2]);
            Assert.AreEqual("x235", dt.Rows[1].ItemArray[2]);
            Assert.AreEqual("x236", dt.Rows[2].ItemArray[2]);
            Assert.AreEqual("x100", dt.Rows[3].ItemArray[2]);
        }
        public void DataTableChopTest()
        {
            object[] array_first  = { "first", "two", "three", "four, five" };
            object[] array_second = { "second", "two", "three", "four, five" };
            object[] array_third  = { "third", "two", "three", "four, five" };
            var      dt           = new DataTable();

            dt.Columns.Add("col1");
            dt.Columns.Add("col2");
            dt.Columns.Add("col3");
            dt.Columns.Add("col4");
            dt.Columns.Add("col5");
            for (var i = 0; i < 5000; i++)
            {
                dt.Rows.Add(array_first);
            }
            for (var i = 0; i < 5000; i++)
            {
                dt.Rows.Add(array_second);
            }
            for (var i = 0; i < 5000; i++)
            {
                dt.Rows.Add(array_third);
            }
            var sourceFile = Path.Combine(Path.GetTempPath(), Guid.NewGuid().ToString() + ".csv");
            var dirname    = Path.Combine(Path.GetTempPath(), Guid.NewGuid().ToString());

            try
            {
                // Save this string to a test file
                CSVDataTable.WriteToFile(dt, sourceFile);

                // Chop this file into one-line chunks in a new folder
                Directory.CreateDirectory(dirname);
                CSVReader.ChopFile(sourceFile, dirname, 5000);

                // Verify that we got three files
                var files = Directory.GetFiles(dirname).ToList();
                files.Sort();
                Assert.IsTrue(files[0].EndsWith("1.csv"));
                Assert.IsTrue(files[1].EndsWith("2.csv"));
                Assert.IsTrue(files[2].EndsWith("3.csv"));
                Assert.AreEqual(3, files.Count);

                // Read in each file and verify that each one has one line
                dt = CSVDataTable.FromFile(files[0]);
                Assert.AreEqual(5000, dt.Rows.Count);
                Assert.AreEqual("first", dt.Rows[0].ItemArray[0]);

                dt = CSVDataTable.FromFile(files[1]);
                Assert.AreEqual(5000, dt.Rows.Count);
                Assert.AreEqual("second", dt.Rows[0].ItemArray[0]);

                dt = CSVDataTable.FromFile(files[2]);
                Assert.AreEqual(5000, dt.Rows.Count);
                Assert.AreEqual("third", dt.Rows[0].ItemArray[0]);
            }
            finally
            {
                if (Directory.Exists(dirname))
                {
                    Directory.Delete(dirname, true);
                }

                if (File.Exists(sourceFile))
                {
                    File.Delete(sourceFile);
                }
            }
        }