Beispiel #1
0
        public void DatasetAutoSaveAsync()
        {
            var datasetPath = Path.Join(StorePath, "autosave.pds");

            GenerateTestStore("base1", StorePath);
            GenerateTestStore("base2", StorePath);
            var dataset = new Dataset("autosave", datasetPath, autoSave: true);

            dataset.AddSessionFromPsiStore("base1", StorePath, "s1");
            dataset.AddSessionFromPsiStore("base2", StorePath, "s2");
            Assert.AreEqual(1, dataset.Sessions[0].Partitions.Count());
            Assert.AreEqual(1, dataset.Sessions[1].Partitions.Count());
            Task.Run(async() =>
            {
                await dataset.CreateDerivedPartitionAsync(
                    (_, importer, exporter) =>
                {
                    importer.OpenStream <int>("Root").Select(x => x * x).Write("RootSquared", exporter);
                },
                    "derived",
                    true,
                    "derived-store");
            }).Wait();  // wait for the async function to finish

            // open the dataset file as a different dataset and validate information
            var sameDataset = Dataset.Load(datasetPath);

            Assert.AreEqual(2, sameDataset.Sessions.Count);
            Assert.AreEqual(2, sameDataset.Sessions[0].Partitions.Count());
            Assert.AreEqual(2, sameDataset.Sessions[1].Partitions.Count());
            Assert.AreEqual("derived", sameDataset.Sessions[1].Partitions[1].Name);
            Assert.AreEqual("derived-store", sameDataset.Sessions[1].Partitions[1].StoreName);
        }