Esempio n. 1
0
        public void Empty_AddAttribute <T>(T data)
        {
            var fn = System.IO.Path.GetTempFileName();

            try
            {
                var dsuri = new Microsoft.Research.Science.Data.NetCDF4.NetCDFUri();
                dsuri.FileName = fn;
                dsuri.OpenMode = ResourceOpenMode.Create;
                var vname = "a";
                using (var ds = DataSet.Open(dsuri))
                {
                    ds.Metadata[vname] = data;
                }
                dsuri.OpenMode = ResourceOpenMode.ReadOnly;
                using (var ds = DataSet.Open(dsuri))
                {
                    Assert.IsTrue(ds.Metadata.ContainsKey(vname));
                    var v = ds.Metadata[vname];
                    if (data == null)
                    {
                        Assert.IsNull(v);
                    }
                    else
                    {
                        Assert.IsNotNull(v);
                        Assert.AreEqual(typeof(T), v.GetType());
                        if (typeof(T).IsArray)
                        {
                            var darr = data as Array;
                            var varr = v as Array;
                            for (int i = 0; i < darr.Length; i++)
                            {
                                Assert.AreEqual(darr.GetValue(i), varr.GetValue(i), String.Format("index={0}", i));
                            }
                        }
                        else
                        {
                            Assert.AreEqual(data, v);
                        }
                    }
                }
            }
            finally
            {
                System.IO.File.Delete(fn);
            }
        }
Esempio n. 2
0
        public void Empty_AddVariable <T>(T[] data)
        {
            var fn = System.IO.Path.GetTempFileName();

            try
            {
                var dsuri = new Microsoft.Research.Science.Data.NetCDF4.NetCDFUri();
                dsuri.FileName = fn;
                dsuri.OpenMode = ResourceOpenMode.Create;
                var vname = "a";
                using (var ds = DataSet.Open(dsuri))
                {
                    ds.AddVariable(typeof(T), vname, data, "a");
                    ds.Commit();
                }
                dsuri.OpenMode = ResourceOpenMode.ReadOnly;
                using (var ds = DataSet.Open(dsuri))
                {
                    Assert.IsTrue(ds.Variables.Contains(vname));
                    var v = ds[vname];
                    Assert.AreEqual(1, v.Rank);
                    Assert.AreEqual(typeof(T), v.TypeOfData);
                    var d = v.GetData() as T[];
                    Assert.IsNotNull(d);
                    Assert.AreEqual(data.Length, d.Length);
                    for (int i = 0; i < data.Length; i++)
                    {
                        Assert.AreEqual(data[i], d[i], String.Format("index={0}", i));
                    }
                }
            }
            finally
            {
                System.IO.File.Delete(fn);
            }
        }