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); }