Mercurial > forge
view main/netcdf/src/test_netcdf_package.m @ 11796:472856b658d9 octave-forge
initial import
author | abarth93 |
---|---|
date | Sat, 15 Jun 2013 12:52:22 +0000 |
parents | |
children | cc1f3c89df09 |
line wrap: on
line source
import_netcdf disp(netcdf.inqLibVers()); ncid = netcdf.create('foo.nc','NC_CLOBBER'); assert(strcmp(netcdf.inqFormat(ncid),'FORMAT_CLASSIC')); assert(netcdf.getConstant('NC_NOWRITE') == 0) assert(netcdf.getConstant('NC_WRITE') == 1) netcdf.getConstantNames(); n = 10; m = 5; dimid_lon = netcdf.defDim(ncid,'lon',m) dimid = netcdf.defDim(ncid,'time',n) varidd = netcdf.defVar(ncid,'double_var','double',[dimid_lon,dimid]); varid = netcdf.defVar(ncid,'byte_var','byte',[dimid]); varidf = netcdf.defVar(ncid,'float_var','float',[dimid]); varidi = netcdf.defVar(ncid,'int_var','int',[dimid]); varids = netcdf.defVar(ncid,'short_var','short',[dimid]); assert(varidd == netcdf.inqVarID(ncid,'double_var')) assert(netcdf.inqNVars(ncid) == 5) [varname,xtype,dimids,natts] = netcdf.inqVar(ncid,varidd); assert(strcmp(varname,'double_var')); [dimname,len] = netcdf.inqDim(ncid,dimid); assert(len == n); assert(strcmp(dimname,'time')); types = {'double','float','byte','short','int'}; for i=1:length(types) vid{i} = netcdf.defVar(ncid,[types{i} '_variable'],types{i},[dimid_lon,dimid]); end netcdf.putAtt(ncid,varidd,'toto',int8(123)); netcdf.putAtt(ncid,varidd,'toto32',int32(123)); %netcdf.putAtt(ncid,varidd,'toto64',int64(123)); % does not work in octave and matlab netcdf.putAtt(ncid,varidd,'add_offset',single(123123.123)); netcdf.putAtt(ncid,varidd,'_FillValue',double(123123.123)); netcdf.putAtt(ncid,varidd,'name','this is a name'); assert(isequal(netcdf.getAtt(ncid,varidd,'add_offset'),single(123123.123))); netcdf.endDef(ncid) z = randn(m,n); netcdf.putVar(ncid,varidd,z); varf = randn(n,1); netcdf.putVar(ncid,varidf,varf); vari = floor(randn(n,1)); netcdf.putVar(ncid,varidi,vari); netcdf.putVar(ncid,varids,[1:n]) z2 = netcdf.getVar(ncid,varidd); assert(all(all(abs(z2 - z) < 1e-5))) z2 = netcdf.getVar(ncid,varidd,[0 0]); assert(z2 == z(1,1)) z2 = netcdf.getVar(ncid,varidd,[2 2],[3 5]); assert(isequal(z2,z(3:5,3:7))) z2 = netcdf.getVar(ncid,varidd,[2 2],[3 4],[1 2]); assert(isequal(z2,z(3:5,3:2:9))) netcdf.putVar(ncid,varidd,[0 0],123.); z(1,1) = 123; z2 = netcdf.getVar(ncid,varidd); assert(isequal(z,z2)) netcdf.putVar(ncid,varidd,[2 2],[3 3],ones(3,3)); z(3:5,3:5) = 1; z2 = netcdf.getVar(ncid,varidd); assert(isequal(z,z2)) netcdf.putVar(ncid,varidd,[0 0],[3 5],[2 2],zeros(3,5)); z(1:2:5,1:2:9) = 0; z2 = netcdf.getVar(ncid,varidd); assert(isequal(z,z2)) z2 = netcdf.getVar(ncid,varidf); assert(all(z2 - varf < 1e-5)) vari2 = netcdf.getVar(ncid,varidi); assert(all(vari2 == vari)) test_netcdf_package_type('byte','int8'); test_netcdf_package_type('ubyte','uint8'); test_netcdf_package_type('short','int16'); test_netcdf_package_type('ushort','uint16'); test_netcdf_package_type('int','int32'); test_netcdf_package_type('uint','uint32'); test_netcdf_package_type('int64','int64'); test_netcdf_package_type('uint64','uint64'); test_netcdf_package_type('double','double'); test_netcdf_package_type('float','single'); test_netcdf_package_type('char','char'); %test_netcdf_hl netcdf.close(ncid);