public void CanAccessAbsolutePaths() { using (var container = new TempH5FileContainer()) { H5File hf = container.Content(); using (H5Group GRP = hf.Root.CreateGroup("foo")) { H5Group SUBGRP = GRP.SubGroup("bar", create: true); SUBGRP.Dispose(); Assert.True(H5Link.Exists(hf.ID, "/foo/")); Assert.True(H5Link.Exists(hf.ID, "/foo/bar/")); SUBGRP = hf.Root.SubGroup("/foo"); Assert.NotNull(GRP); SUBGRP.Dispose(); SUBGRP = hf.Root.SubGroup("/foo/bar"); Assert.NotNull(GRP); SUBGRP.Dispose(); SUBGRP = hf.Root.SubGroup("foo/bar"); Assert.NotNull(SUBGRP); SUBGRP.Dispose(); } } }
public void AttemptToWriteClosedFileFails() { string path = Path.GetTempFileName(); H5File FILE = H5File.Open(path, mode: "w"); // create some stuff.. H5Group GROUP = FILE.Root.SubGroup("foo", create: true); GROUP.CreateDataset("bar", 1, new long[] { 7L }, typeof(byte)); dset1d <byte> DSET = GROUP["bar"] as dset1d <byte>; Assert.NotNull(DSET); DSET[3] = 5; // close all H5Objects manually in this test-scenario: GROUP.Dispose(); DSET.Dispose(); FILE.Dispose(); // the file.ID becomes the H5F.close() return value, which is often // (but not guaranteed to be) zero / non-negative: Assert.Equal((H5Ohm.hid_t) 0, FILE.ID); Assert.Equal((H5Ohm.hid_t) 0, FILE.Root.ID); Assert.Equal((H5Ohm.hid_t) 0, DSET.ID); Assert.Equal((H5Ohm.hid_t) 0, GROUP.ID); Assert.Throws <InvalidOperationException>(() => FILE.Root["foo/bar"]); Assert.Throws <InvalidOperationException>(() => DSET[5] = 3); Assert.Throws <InvalidOperationException>(() => GROUP["bar"]); }
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")); } }