public void FindsAllSubgroups() { using (var container = new TempH5FileContainer()) { H5File hf = container.Content(); #if DEBUG int nObjectsInitially = H5Base.nObjects; #endif H5Group SUT = hf.Root; var testnames = new List <string> { "foo", "bar", "zoom", "grok", }; // create a group hierarchy.. foreach (string name in testnames) { using (var subgroup = SUT.CreateGroup(name)) { using (subgroup.CreateGroup("tarnkappenzwerg")) { // just create and dispose.. } } } // ..as well as some confusion.. using (SUT.CreateDataset("tarnkappenbomber", 1, new long[] { 7 }, typeof(float))) { } var actual = SUT.SubGroups().Select(g => g.Name); // a) check for set equality.. var testnames_sorted = new SortedSet <string>(testnames); Assert.True(testnames_sorted.SetEquals(actual)); // b) check the default behaviour of sorting the SubGroups() alphabetically.. Assert.Equal(testnames_sorted.ToList(), actual); // c) check that all allocated SubGroups() have been disposed of properly.. #if DEBUG Assert.Equal(nObjectsInitially, H5Base.nObjects); #endif } }
public void CreateNestedSubGroups() { using (var container = new TempH5FileContainer()) { H5File hf = container.Content(); Assert.False(H5Link.Exists(hf.ID, "zoom")); Assert.False(H5Link.Exists(hf.ID, "zoom/zoom")); Assert.False(H5Link.Exists(hf.ID, "zoom/zoom/zoom")); H5Group GRP = hf.Root; for (int i = 0; i < 3; i++) { GRP = GRP.CreateGroup("zoom"); } GRP.Dispose(); Assert.True(H5Link.Exists(hf.ID, "zoom/zoom/zoom")); } }