Example #1
0
        public void RemoveOldRowsWhenWritingSimulationData()
        {
            // Write first report data.
            var data1 = new ReportData()
            {
                CheckpointName = "Current",
                SimulationName = "Sim1",
                TableName      = "Report",
                ColumnNames    = new string[] { "Col" },
                ColumnUnits    = new string[] { null }
            };

            data1.Rows.Add(new List <object>()
            {
                1
            });
            data1.Rows.Add(new List <object>()
            {
                2
            });
            DataStoreWriter writer = new DataStoreWriter(database);

            writer.WriteTable(data1);
            writer.Stop();

            // Now do it again this time writing different data for the same sim.
            var data2 = new ReportData()
            {
                CheckpointName = "Current",
                SimulationName = "Sim1",
                TableName      = "Report",
                ColumnNames    = new string[] { "Col" },
                ColumnUnits    = new string[] { null }
            };

            data2.Rows.Add(new List <object>()
            {
                3
            });
            writer = new DataStoreWriter(database);
            var cleanCommand = writer.Clean(new List <string>()
            {
                "Sim1"
            });

            cleanCommand.Run(null);
            writer.WriteTable(data2);
            writer.Stop();


            Assert.IsTrue(
                Utilities.CreateTable(new string[]                      { "CheckpointID", "SimulationID", "Col" },
                                      new List <object[]> {
                new object[] { 1, 1, 3 }
            })
                .IsSame(database.ExecuteQuery("SELECT * FROM [Report] ORDER BY [Col]")));
        }
Example #2
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")));
        }