コード例 #1
0
        public void DeleteCheckpoint()
        {
            DataStoreReaderTests.CreateTable(database);

            var writer = new DataStoreWriter(database);

            // Delete a checkpoint
            writer.DeleteCheckpoint("Saved1");

            writer.Stop();

            Assert.IsTrue(
                Utilities.CreateTable(new string[]                      { "CheckpointID", "SimulationID", "Col1", "Col2" },
                                      new List <object[]> {
                new object[] { 1, 1, new DateTime(2017, 01, 01), 1 },
                new object[] { 1, 1, new DateTime(2017, 01, 02), 2 },
                new object[] { 1, 2, new DateTime(2017, 01, 01), 21 },
                new object[] { 1, 2, new DateTime(2017, 01, 02), 22 }
            })
                .IsSame(Utilities.GetTableFromDatabase(database, "Report")));


            Assert.IsTrue(
                Utilities.CreateTable(new string[]                      { "ID", "Name", "Version", "Date", "OnGraphs" },
                                      new List <object[]> {
                new object[] { 1, "Current", Convert.DBNull, Convert.DBNull, Convert.DBNull }
            })
                .IsSame(Utilities.GetTableFromDatabase(database, "_Checkpoints")));
        }
コード例 #2
0
        public void AddCheckpoint()
        {
            DataStoreReaderTests.CreateTable(database);

            var writer = new DataStoreWriter(database);

            // Add a checkpoint
            string file = Path.Combine(Path.GetTempPath(), $"dummy-{Guid.NewGuid()}.txt");

            File.WriteAllText(file, "abcde");
            try
            {
                writer.AddCheckpoint("Saved2", new string[] { file });

                writer.Stop();

                Assert.IsTrue(
                    Utilities.CreateTable(new string[]                      { "CheckpointID", "SimulationID", "Col1", "Col2" },
                                          new List <object[]> {
                    new object[] { 1, 1, new DateTime(2017, 01, 01), 1 },
                    new object[] { 1, 1, new DateTime(2017, 01, 02), 2 },
                    new object[] { 1, 2, new DateTime(2017, 01, 01), 21 },
                    new object[] { 1, 2, new DateTime(2017, 01, 02), 22 },
                    new object[] { 2, 1, new DateTime(2017, 01, 01), 11 },
                    new object[] { 2, 1, new DateTime(2017, 01, 02), 12 },
                    new object[] { 2, 2, new DateTime(2017, 01, 01), 31 },
                    new object[] { 2, 2, new DateTime(2017, 01, 02), 32 },
                    new object[] { 3, 1, new DateTime(2017, 01, 01), 1 },
                    new object[] { 3, 1, new DateTime(2017, 01, 02), 2 },
                    new object[] { 3, 2, new DateTime(2017, 01, 01), 21 },
                    new object[] { 3, 2, new DateTime(2017, 01, 02), 22 }
                })
                    .IsSame(Utilities.GetTableFromDatabase(database, "Report")));


                Assert.IsTrue(
                    Utilities.CreateTable(new string[]                      { "ID", "Name" },
                                          new List <object[]> {
                    new object[] { 1, "Current" },
                    new object[] { 2, "Saved1" },
                    new object[] { 3, "Saved2" }
                })
                    .IsSame(Utilities.GetTableFromDatabase(database, "_Checkpoints", new string[] { "ID", "Name" })));

                Assert.IsTrue(
                    Utilities.CreateTable(new string[]                      { "CheckpointID", "FileName", "Contents" },
                                          new List <object[]> {
                    new object[] { 3, file, "System.Byte[]" }
                })
                    .IsSame(Utilities.GetTableFromDatabase(database, "_CheckpointFiles")));
            }
            finally
            {
                File.Delete(file);
            }
        }
コード例 #3
0
        public void RevertCheckpoint()
        {
            DataStoreReaderTests.CreateTable(database);

            // Write some new current data.
            var data1 = new ReportData()
            {
                CheckpointName = "Current",
                SimulationName = "Sim1",
                TableName      = "Report",
                ColumnNames    = new string[] { "Col1", "Col2" },
                ColumnUnits    = new string[] { null, "g" }
            };

            data1.Rows.Add(new List <object>()
            {
                new DateTime(2017, 1, 3), 100.0
            });
            data1.Rows.Add(new List <object>()
            {
                new DateTime(2017, 1, 4), 200.0
            });
            var writer = new DataStoreWriter(database);

            writer.WriteTable(data1);

            // Now revert back to checkpoint1
            writer.RevertCheckpoint("Saved1");
            writer.Stop();

            Assert.IsTrue(
                Utilities.CreateTable(new string[] { "CheckpointID", "SimulationID", "Col1", "Col2" },
                                      new List <object[]> {
                new object[] { 1, 1, new DateTime(2017, 01, 01), 11 },
                new object[] { 1, 1, new DateTime(2017, 01, 02), 12 },
                new object[] { 1, 2, new DateTime(2017, 01, 01), 31 },
                new object[] { 1, 2, new DateTime(2017, 01, 02), 32 },
                new object[] { 2, 1, new DateTime(2017, 01, 01), 11 },
                new object[] { 2, 1, new DateTime(2017, 01, 02), 12 },
                new object[] { 2, 2, new DateTime(2017, 01, 01), 31 },
                new object[] { 2, 2, new DateTime(2017, 01, 02), 32 }
            })
                .IsSame(Utilities.GetTableFromDatabase(database, "Report")));


            Assert.IsTrue(
                Utilities.CreateTable(new string[]                      { "ID", "Name" },
                                      new List <object[]> {
                new object[] { 1, "Current" },
                new object[] { 2, "Saved1" }
            })
                .IsSame(Utilities.GetTableFromDatabase(database, "_Checkpoints", new string[] { "ID", "Name" })));
        }
コード例 #4
0
        public void OverwriteExistingCheckpoint()
        {
            DataStoreReaderTests.CreateTable(database);

            // Write new rows for sim2. Should get rid of old sim2 data and replace
            // with these 2 new rows.
            // Write some new current data.
            var data1 = new ReportData()
            {
                CheckpointName = "Current",
                SimulationName = "Sim2",
                TableName      = "Report",
                ColumnNames    = new string[] { "Col1", "Col2" },
                ColumnUnits    = new string[] { null, "g" }
            };

            data1.Rows.Add(new List <object>()
            {
                new DateTime(2017, 1, 1), 3.0
            });
            data1.Rows.Add(new List <object>()
            {
                new DateTime(2017, 1, 2), 4.0
            });
            var writer       = new DataStoreWriter(database);
            var cleanCommand = writer.Clean(new List <string>()
            {
                "Sim2"
            });

            cleanCommand.Run(null);
            writer.WriteTable(data1);

            // Add a checkpoint - overwrite existing one.
            writer.AddCheckpoint("Saved1");
            writer.Stop();

            Assert.IsTrue(
                Utilities.CreateTable(new string[]                      { "CheckpointID", "SimulationID", "Col1", "Col2" },
                                      new List <object[]> {
                new object[] { 1, 1, new DateTime(2017, 01, 01), 1 },
                new object[] { 1, 1, new DateTime(2017, 01, 02), 2 },
                new object[] { 1, 2, new DateTime(2017, 01, 01), 3 },
                new object[] { 1, 2, new DateTime(2017, 01, 02), 4 },
                new object[] { 2, 1, new DateTime(2017, 01, 01), 1 },
                new object[] { 2, 1, new DateTime(2017, 01, 02), 2 },
                new object[] { 2, 2, new DateTime(2017, 01, 01), 3 },
                new object[] { 2, 2, new DateTime(2017, 01, 02), 4 }
            })
                .IsSame(Utilities.GetTableFromDatabase(database, "Report")));
        }
コード例 #5
0
        public void AddCheckpoint()
        {
            DataStoreReaderTests.CreateTable(database);

            var writer = new DataStoreWriter(database);

            // Add a checkpoint
            File.WriteAllText("Dummy.txt", "abcde");
            writer.AddCheckpoint("Saved2", new string[] { "Dummy.txt" });

            writer.Stop();

            Assert.IsTrue(
                Utilities.CreateTable(new string[]                      { "CheckpointID", "SimulationID", "Col1", "Col2" },
                                      new List <object[]> {
                new object[] { 1, 1, new DateTime(2017, 01, 01), 1 },
                new object[] { 1, 1, new DateTime(2017, 01, 02), 2 },
                new object[] { 1, 2, new DateTime(2017, 01, 01), 21 },
                new object[] { 1, 2, new DateTime(2017, 01, 02), 22 },
                new object[] { 2, 1, new DateTime(2017, 01, 01), 11 },
                new object[] { 2, 1, new DateTime(2017, 01, 02), 12 },
                new object[] { 2, 2, new DateTime(2017, 01, 01), 31 },
                new object[] { 2, 2, new DateTime(2017, 01, 02), 32 },
                new object[] { 3, 1, new DateTime(2017, 01, 01), 1 },
                new object[] { 3, 1, new DateTime(2017, 01, 02), 2 },
                new object[] { 3, 2, new DateTime(2017, 01, 01), 21 },
                new object[] { 3, 2, new DateTime(2017, 01, 02), 22 }
            })
                .IsSame(Utilities.GetTableFromDatabase(database, "Report")));


            Assert.IsTrue(
                Utilities.CreateTable(new string[]                      { "ID", "Name" },
                                      new List <object[]> {
                new object[] { 1, "Current" },
                new object[] { 2, "Saved1" },
                new object[] { 3, "Saved2" }
            })
                .IsSame(Utilities.GetTableFromDatabase(database, "_Checkpoints", new string[] { "ID", "Name" })));

            Assert.IsTrue(
                Utilities.CreateTable(new string[]                      { "CheckpointID", "FileName", "Contents" },
                                      new List <object[]> {
                new object[] { 3, "Dummy.txt", "System.Byte[]" }
            })
                .IsSame(Utilities.GetTableFromDatabase(database, "_CheckpointFiles")));
        }
コード例 #6
0
ファイル: DataStoreWriterTests.cs プロジェクト: her123/ApsimX
        public void RevertCheckpoint()
        {
            DataStoreReaderTests.CreateTable(database);

            // Write some new current data.
            var data1 = new ReportData()
            {
                CheckpointName = "Current",
                SimulationName = "Sim1",
                TableName      = "Report",
                ColumnNames    = new string[] { "Col1", "Col2" },
                ColumnUnits    = new string[] { null, "g" }
            };

            data1.Rows.Add(new List <object>()
            {
                new DateTime(2017, 1, 3), 100.0
            });
            data1.Rows.Add(new List <object>()
            {
                new DateTime(2017, 1, 4), 200.0
            });
            var writer = new DataStoreWriter(database);

            writer.WriteTable(data1);

            // Now revert back to checkpoint1
            writer.RevertCheckpoint("Saved1");
            writer.Stop();

            Assert.AreEqual(Utilities.TableToString(database, "Report"),
                            $"CheckpointID,SimulationID,      Col1,  Col2{Environment.NewLine}" +
                            $"           1,           1,2017-01-01,11.000{Environment.NewLine}" +
                            $"           1,           1,2017-01-02,12.000{Environment.NewLine}" +
                            $"           1,           2,2017-01-01,31.000{Environment.NewLine}" +
                            $"           1,           2,2017-01-02,32.000{Environment.NewLine}" +
                            $"           2,           1,2017-01-01,11.000{Environment.NewLine}" +
                            $"           2,           1,2017-01-02,12.000{Environment.NewLine}" +
                            $"           2,           2,2017-01-01,31.000{Environment.NewLine}" +
                            $"           2,           2,2017-01-02,32.000{Environment.NewLine}");

            Assert.AreEqual(Utilities.TableToString(database, "_Checkpoints", new string[] { "ID", "Name" }),
                            $"ID,   Name{Environment.NewLine}" +
                            $" 1,Current{Environment.NewLine}" +
                            $" 2, Saved1{Environment.NewLine}");
        }
コード例 #7
0
ファイル: DataStoreWriterTests.cs プロジェクト: her123/ApsimX
        public void OverwriteExistingCheckpoint()
        {
            DataStoreReaderTests.CreateTable(database);

            // Write new rows for sim2. Should get rid of old sim2 data and replace
            // with these 2 new rows.
            // Write some new current data.
            var data1 = new ReportData()
            {
                CheckpointName = "Current",
                SimulationName = "Sim2",
                TableName      = "Report",
                ColumnNames    = new string[] { "Col1", "Col2" },
                ColumnUnits    = new string[] { null, "g" }
            };

            data1.Rows.Add(new List <object>()
            {
                new DateTime(2017, 1, 1), 3.0
            });
            data1.Rows.Add(new List <object>()
            {
                new DateTime(2017, 1, 2), 4.0
            });
            var writer = new DataStoreWriter(database);

            writer.WriteTable(data1);

            // Add a checkpoint - overwrite existing one.
            writer.AddCheckpoint("Saved1");
            writer.Stop();

            Assert.AreEqual(Utilities.TableToString(database, "Report"),
                            $"CheckpointID,SimulationID,      Col1, Col2{Environment.NewLine}" +
                            $"           1,           1,2017-01-01,1.000{Environment.NewLine}" +
                            $"           1,           1,2017-01-02,2.000{Environment.NewLine}" +
                            $"           1,           2,2017-01-01,3.000{Environment.NewLine}" +
                            $"           1,           2,2017-01-02,4.000{Environment.NewLine}" +
                            $"           2,           1,2017-01-01,1.000{Environment.NewLine}" +
                            $"           2,           1,2017-01-02,2.000{Environment.NewLine}" +
                            $"           2,           2,2017-01-01,3.000{Environment.NewLine}" +
                            $"           2,           2,2017-01-02,4.000{Environment.NewLine}");
        }
コード例 #8
0
ファイル: DataStoreWriterTests.cs プロジェクト: her123/ApsimX
        public void DeleteCheckpoint()
        {
            DataStoreReaderTests.CreateTable(database);

            var writer = new DataStoreWriter(database);

            // Delete a checkpoint
            writer.DeleteCheckpoint("Saved1");

            writer.Stop();

            Assert.AreEqual(Utilities.TableToString(database, "Report"),
                            $"CheckpointID,SimulationID,      Col1,  Col2{Environment.NewLine}" +
                            $"           1,           1,2017-01-01, 1.000{Environment.NewLine}" +
                            $"           1,           1,2017-01-02, 2.000{Environment.NewLine}" +
                            $"           1,           2,2017-01-01,21.000{Environment.NewLine}" +
                            $"           1,           2,2017-01-02,22.000{Environment.NewLine}");
            Assert.AreEqual(Utilities.TableToString(database, "_Checkpoints"),
                            $"ID,   Name,Version,OnGraphs{Environment.NewLine}" +
                            $" 1,Current,       ,        {Environment.NewLine}");
        }
コード例 #9
0
        public void DeleteCheckpoint()
        {
            DataStoreReaderTests.CreateTable(database);

            var writer = new DataStoreWriter(database);

            // Delete a checkpoint
            writer.DeleteCheckpoint("Saved1");

            writer.Stop();

            Assert.AreEqual(Utilities.TableToString(database, "Report"),
                            "CheckpointID,SimulationID,      Col1,  Col2\r\n" +
                            "           1,           1,2017-01-01, 1.000\r\n" +
                            "           1,           1,2017-01-02, 2.000\r\n" +
                            "           1,           2,2017-01-01,21.000\r\n" +
                            "           1,           2,2017-01-02,22.000\r\n");
            Assert.AreEqual(Utilities.TableToString(database, "_Checkpoints"),
                            "ID,   Name,Version,Date\r\n" +
                            " 1,Current,       ,    \r\n");
        }
コード例 #10
0
ファイル: DataStoreWriterTests.cs プロジェクト: her123/ApsimX
        public void AddCheckpoint()
        {
            DataStoreReaderTests.CreateTable(database);

            var writer = new DataStoreWriter(database);

            // Add a checkpoint
            File.WriteAllText("Dummy.txt", "abcde");
            writer.AddCheckpoint("Saved2", new string[] { "Dummy.txt" });

            writer.Stop();

            Assert.AreEqual(Utilities.TableToString(database, "Report"),
                            $"CheckpointID,SimulationID,      Col1,  Col2{Environment.NewLine}" +
                            $"           1,           1,2017-01-01, 1.000{Environment.NewLine}" +
                            $"           1,           1,2017-01-02, 2.000{Environment.NewLine}" +
                            $"           1,           2,2017-01-01,21.000{Environment.NewLine}" +
                            $"           1,           2,2017-01-02,22.000{Environment.NewLine}" +
                            $"           2,           1,2017-01-01,11.000{Environment.NewLine}" +
                            $"           2,           1,2017-01-02,12.000{Environment.NewLine}" +
                            $"           2,           2,2017-01-01,31.000{Environment.NewLine}" +
                            $"           2,           2,2017-01-02,32.000{Environment.NewLine}" +
                            $"           3,           1,2017-01-01, 1.000{Environment.NewLine}" +
                            $"           3,           1,2017-01-02, 2.000{Environment.NewLine}" +
                            $"           3,           2,2017-01-01,21.000{Environment.NewLine}" +
                            $"           3,           2,2017-01-02,22.000{Environment.NewLine}");

            Assert.AreEqual(Utilities.TableToString(database, "_Checkpoints", new string[] { "ID", "Name" }),
                            $"ID,   Name{Environment.NewLine}" +
                            $" 1,Current{Environment.NewLine}" +
                            $" 2, Saved1{Environment.NewLine}" +
                            $" 3, Saved2{Environment.NewLine}");

            Assert.AreEqual(Utilities.TableToString(database, "_CheckpointFiles", new string[] { "CheckpointID", "FileName", "Contents" }),
                            $"CheckpointID, FileName,     Contents{Environment.NewLine}" +
                            $"           3,Dummy.txt,System.Byte[]{Environment.NewLine}");
        }