public void SetUInt64() { string filename = GetFilename("setuint64.h5"); Hdf5File file = Hdf5File.Create(filename); List <Hdf5DimensionProperty> properties = new List <Hdf5DimensionProperty>(); Hdf5DimensionProperty property = new Hdf5DimensionProperty { CurrentSize = 5 }; properties.Add(property); Hdf5Dataset dataset = file.Datasets.Add("dataset1", Hdf5DataTypes.UInt64, properties); Assert.IsNotNull(dataset); UInt64[] value = { UInt64.MinValue, 1, 2, 3, UInt64.MaxValue }; dataset.SetData(value); var array = dataset.GetData(); Assert.AreEqual(1, array.Rank); Assert.AreEqual(5, array.GetLength(0)); Assert.AreEqual(UInt64.MinValue, array.GetValue(0)); Assert.AreEqual(UInt64.MaxValue, array.GetValue(4)); file.Close(); }
public void SetDouble() { string filename = GetFilename("setdouble.h5"); Hdf5File file = Hdf5File.Create(filename); List <Hdf5DimensionProperty> properties = new List <Hdf5DimensionProperty>(); Hdf5DimensionProperty property = new Hdf5DimensionProperty { CurrentSize = 5 }; properties.Add(property); Hdf5Dataset dataset = file.Datasets.Add("dataset1", Hdf5DataTypes.Double, properties); Assert.IsNotNull(dataset); Double[] value = { Double.MinValue, -1.1d, 0.0d, -1.3d, Double.MaxValue }; dataset.SetData(value); var array = dataset.GetData(); Assert.AreEqual(1, array.Rank); Assert.AreEqual(5, array.GetLength(0)); Assert.AreEqual(Double.MinValue, array.GetValue(0)); Assert.AreEqual(Double.MaxValue, array.GetValue(4)); file.Close(); }
public void SetArrayDimensionMismatch1() { string filename = GetFilename("setarraydimensionmismatch1.h5"); Hdf5File file = Hdf5File.Create(filename); List <Hdf5DimensionProperty> properties = new List <Hdf5DimensionProperty>(); Hdf5DimensionProperty property = new Hdf5DimensionProperty { CurrentSize = 5 }; properties.Add(property); Hdf5Dataset dataset = file.Datasets.Add("dataset1", Hdf5DataTypes.Int32, properties); Assert.IsNotNull(dataset); try { //2 dimensions sent, only one expected Int32[,] value = { { 1, 2, 3, 4, 5 }, { 6, 7, 8, 9, 10 } }; dataset.SetData(value); Assert.Fail("Exception was expected"); } catch (Exception ex) { Assert.IsInstanceOf <Hdf5ArrayDimensionsMismatchException>(ex); } file.Close(); }
public void OpenDatasetInFile() { string filename = GetFilename("opendatasetinfile.h5"); Hdf5File file = Hdf5File.Create(filename); List <Hdf5DimensionProperty> properties = new List <Hdf5DimensionProperty>(); Hdf5DimensionProperty property = new Hdf5DimensionProperty { CurrentSize = 100 }; properties.Add(property); Hdf5Dataset dataset = file.Datasets.Add("dataset1", Hdf5DataTypes.Int8, properties); Assert.IsNotNull(dataset); Assert.AreEqual(1, file.Datasets.Count); file.Close(); file = new Hdf5File(filename); dataset = file.Datasets[0]; Assert.IsNotNull(dataset); Assert.AreEqual("dataset1", dataset.Name); Assert.AreEqual(Hdf5DataTypes.Int8, dataset.DataType.Type); file.Close(); }
public void SetDataMismatch() { string filename = GetFilename("setdatamismatch.h5"); Hdf5File file = Hdf5File.Create(filename); List <Hdf5DimensionProperty> properties = new List <Hdf5DimensionProperty>(); Hdf5DimensionProperty property = new Hdf5DimensionProperty { CurrentSize = 3 }; properties.Add(property); Hdf5Dataset dataset = file.Datasets.Add("dataset1", Hdf5DataTypes.Int8, properties); Assert.IsNotNull(dataset); try { Int32[] value = { 1, 2, 3 }; dataset.SetData(value); Assert.Fail("Exception was expected"); } catch (Exception ex) { Assert.IsInstanceOf <Hdf5TypeMismatchException>(ex); } file.Close(); }
/// <summary> /// /// </summary> /// <returns></returns> public static Hdf5Dataspace GetDataspace(Hdf5Identifier _datasetId) { var dataspaceId = H5D.get_space(_datasetId.Value).ToId(); int rank = H5S.get_simple_extent_ndims(dataspaceId.Value); ulong[] dims = new ulong[rank]; ulong[] maxDims = new ulong[rank]; H5S.get_simple_extent_dims(dataspaceId.Value, dims, maxDims); Hdf5Dataspace dataspace = new Hdf5Dataspace { Id = dataspaceId, NumberOfDimensions = rank }; for (int i = 0; i < dims.Length; i++) { Hdf5DimensionProperty property = new Hdf5DimensionProperty { CurrentSize = dims[i], //MaximumSize = maxDims[i] }; dataspace.DimensionProperties.Add(property); } H5S.close(dataspaceId.Value); return(dataspace); }
public void SetDataNull() { string filename = GetFilename("setdatatnull.h5"); Hdf5File file = Hdf5File.Create(filename); List <Hdf5DimensionProperty> properties = new List <Hdf5DimensionProperty>(); Hdf5DimensionProperty property = new Hdf5DimensionProperty { CurrentSize = 100 }; properties.Add(property); Hdf5Dataset dataset = file.Datasets.Add("dataset1", Hdf5DataTypes.Int8, properties); Assert.IsNotNull(dataset); try { sbyte[] value = null; dataset.SetData(value); Assert.Fail("Exception was expected"); } catch (Exception ex) { Assert.IsInstanceOf <ArgumentNullException>(ex); } file.Close(); }
public void CreateAttributeTwiceOnDataset() { string fileName = GetFilename("createattributetwiceondataset.h5"); Hdf5File file = Hdf5File.Create(fileName); Hdf5Group group = file.Groups.Add("test"); List <Hdf5DimensionProperty> dimensionProps = new List <Hdf5DimensionProperty>(); Hdf5DimensionProperty prop = new Hdf5DimensionProperty { CurrentSize = 1 }; dimensionProps.Add(prop); Hdf5Dataset dataset = group.Datasets.Add("dataset1", Hdf5DataTypes.Int32, dimensionProps); dataset.Attributes.Add("attribute1", "test"); try { dataset.Attributes.Add("attribute1", "test2"); Assert.Fail("Should have thrown an exception"); } catch (Exception ex) { file.Close(); Assert.IsInstanceOf <Hdf5AttributeAlreadyExistException>(ex); } }
public void UpdateStringAttributeOnDataset() { string fileName = GetFilename("updatestringattributeondataset.h5"); Hdf5File file = Hdf5File.Create(fileName); Hdf5Group group = file.Groups.Add("group"); List <Hdf5DimensionProperty> dimensionProps = new List <Hdf5DimensionProperty>(); Hdf5DimensionProperty prop = new Hdf5DimensionProperty { CurrentSize = 1 }; dimensionProps.Add(prop); Hdf5Dataset dataset = group.Datasets.Add("dataset1", Hdf5DataTypes.Int32, dimensionProps); Hdf5Attribute attribute = dataset.Attributes.Add("attribute1", "test"); attribute.Value = "test2"; dataset.Attributes.Update(attribute); file.Close(); file = new Hdf5File(fileName); group = file.Groups[0]; dataset = group.Datasets[0]; attribute = dataset.Attributes[0]; Assert.AreEqual("test2", attribute.Value); }
public void UpdateAttributeWithMismatchOnDataset() { string fileName = GetFilename("updateattributewithmistmachondataset.h5"); Hdf5File file = Hdf5File.Create(fileName); Hdf5Group group = file.Groups.Add("group"); List <Hdf5DimensionProperty> dimensionProps = new List <Hdf5DimensionProperty>(); Hdf5DimensionProperty prop = new Hdf5DimensionProperty { CurrentSize = 1 }; dimensionProps.Add(prop); Hdf5Dataset dataset = group.Datasets.Add("dataset1", Hdf5DataTypes.Int32, dimensionProps); Hdf5Attribute attribute = dataset.Attributes.Add("attribute1", "test"); try { attribute.Value = 5; dataset.Attributes.Update(attribute); Assert.Fail("Should have thrown an exception"); } catch (Exception ex) { file.Close(); Assert.IsInstanceOf <Hdf5TypeMismatchException>(ex); } }
public void DeleteAttributeOnDataset() { string fileName = GetFilename("deleteattributeondataset.h5"); Hdf5File file = Hdf5File.Create(fileName); Hdf5Group group = file.Groups.Add("group1"); List <Hdf5DimensionProperty> dimensionProps = new List <Hdf5DimensionProperty>(); Hdf5DimensionProperty prop = new Hdf5DimensionProperty { CurrentSize = 1 }; dimensionProps.Add(prop); Hdf5Dataset dataset = group.Datasets.Add("dataset1", Hdf5DataTypes.Int32, dimensionProps); dataset.Attributes.Add("attribute1", "test"); dataset.Attributes.Add("attribute2", 5); Assert.AreEqual(2, dataset.Attributes.Count); file.Close(); file = new Hdf5File(fileName); group = file.Groups[0]; dataset = group.Datasets[0]; var attibutes = dataset.Attributes; Assert.AreEqual(2, attibutes.Count); var attribute1 = attibutes[0]; Assert.AreEqual("attribute1", attribute1.Name); Assert.AreEqual("test", attribute1.Value); var attribute2 = attibutes[1]; Assert.AreEqual("attribute2", attribute2.Name); Assert.AreEqual(5, attribute2.Value); dataset.Attributes.Delete(attribute1); Assert.AreEqual(1, attibutes.Count); attribute2 = attibutes[0]; Assert.AreEqual("attribute2", attribute2.Name); Assert.AreEqual(5, attribute2.Value); file.Close(); file = new Hdf5File(fileName); group = file.Groups[0]; dataset = group.Datasets[0]; attibutes = dataset.Attributes; Assert.AreEqual(1, attibutes.Count); attribute2 = attibutes[0]; Assert.AreEqual("attribute2", attribute2.Name); Assert.AreEqual(5, attribute2.Value); }
public void Set2DuInt64() { string filename = GetFilename("set2duint64.h5"); Hdf5File file = Hdf5File.Create(filename); List <Hdf5DimensionProperty> properties = new List <Hdf5DimensionProperty>(); Hdf5DimensionProperty property1 = new Hdf5DimensionProperty { CurrentSize = 2 }; properties.Add(property1); Hdf5DimensionProperty property2 = new Hdf5DimensionProperty { CurrentSize = 3 }; properties.Add(property2); Hdf5Dataset dataset = file.Datasets.Add("dataset1", Hdf5DataTypes.UInt64, properties); Assert.IsNotNull(dataset); UInt64[,] value = { { UInt64.MinValue, 0, UInt64.MaxValue }, { UInt64.MaxValue, 0, UInt64.MinValue } }; dataset.SetData(value); var array = dataset.GetData(); Assert.AreEqual(2, array.Rank); Assert.AreEqual(2, array.GetLength(0)); Assert.AreEqual(3, array.GetLength(1)); Assert.AreEqual(UInt64.MinValue, array.GetValue(0, 0)); Assert.AreEqual(0, array.GetValue(0, 1)); Assert.AreEqual(UInt64.MaxValue, array.GetValue(0, 2)); Assert.AreEqual(UInt64.MaxValue, array.GetValue(1, 0)); Assert.AreEqual(0, array.GetValue(1, 1)); Assert.AreEqual(UInt64.MinValue, array.GetValue(1, 2)); file.Close(); }
public void CreateAttributeOnDataset() { string fileName = GetFilename("createattributeondataset.h5"); Hdf5File file = Hdf5File.Create(fileName); Hdf5Group group = file.Groups.Add("group1"); List <Hdf5DimensionProperty> dimensionProps = new List <Hdf5DimensionProperty>(); Hdf5DimensionProperty prop = new Hdf5DimensionProperty { CurrentSize = 1 }; dimensionProps.Add(prop); Hdf5Dataset dataset = group.Datasets.Add("dataset1", Hdf5DataTypes.Int32, dimensionProps); dataset.Attributes.Add("attribute1", "test"); dataset.Attributes.Add("attribute2", 5); Assert.AreEqual(2, dataset.Attributes.Count); file.Close(); }
public void CreateDatasetInGroup() { string filename = GetFilename("createdatasetingroup.h5"); Hdf5File file = Hdf5File.Create(filename); Hdf5Group group = file.Groups.Add("group1"); List <Hdf5DimensionProperty> properties = new List <Hdf5DimensionProperty>(); Hdf5DimensionProperty property = new Hdf5DimensionProperty { CurrentSize = 100 }; properties.Add(property); Hdf5Dataset dataset = group.Datasets.Add("dataset1", Hdf5DataTypes.Int8, properties); Assert.IsNotNull(dataset); Assert.AreEqual(0, file.Datasets.Count); Assert.AreEqual(1, group.Datasets.Count); file.Close(); }
static void WriteFile(string filePath) { var file = Hdf5File.Create(filePath); var group = file.Groups.Add("group"); const int DIM0 = 3; const int DIM1 = 4; var data = new int[DIM0, DIM1] { { 1, 2, 3, 4 }, { 5, 6, 7, 8 }, { 9, 10, 11, 12 } }; var dims = new Hdf5DimensionProperty[] { new Hdf5DimensionProperty { CurrentSize = DIM0, }, new Hdf5DimensionProperty { CurrentSize = DIM1, } }; var dataSet = group.Datasets.Add( "dataset", Hdf5DataTypes.Int32, dims.ToList()); dataSet.SetData(data); file.Close(); }
public void Set2DArraySizeMismatch2() { string filename = GetFilename("set2darraysizemismatch2.h5"); Hdf5File file = Hdf5File.Create(filename); List <Hdf5DimensionProperty> properties = new List <Hdf5DimensionProperty>(); Hdf5DimensionProperty property1 = new Hdf5DimensionProperty { CurrentSize = 3 }; properties.Add(property1); Hdf5DimensionProperty property2 = new Hdf5DimensionProperty { CurrentSize = 5 }; properties.Add(property2); Hdf5Dataset dataset = file.Datasets.Add("dataset1", Hdf5DataTypes.Int32, properties); Assert.IsNotNull(dataset); try { //Only 3x4 Int32[,] value = { { 1, 2, 3 }, { 4, 5, 6, }, { 7, 8, 9, }, { 10, 11, 12, } }; dataset.SetData(value); Assert.Fail("Exception was expected"); } catch (Exception ex) { Assert.IsInstanceOf <Hdf5ArraySizeMismatchException>(ex); } file.Close(); }