source: Roms_tools/mexcdf/snctools/tests/test_nc_cat_a.m @ 1

Last change on this file since 1 was 1, checked in by cholod, 13 years ago

import Roms_Agrif

File size: 3.7 KB
Line 
1function test_nc_cat_a ( )
2% TEST_NC_CAT_A:  tests the m-file nc_cat_a
3%
4% Test 01:  wrong number of input arguments.
5% Test 02:  concatenating empty files
6% Test 03:  First file has 5, 2nd has 10, 3rd has 15 time values.  They
7%     do not overlap.
8
9%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
10%
11% $Id$
12% $LastChangedDate$
13% $LastChangedRevision$
14% $LastChangedBy$
15%
16%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
17
18fprintf ( 1, 'NC_CAT_A: starting test suite ... \n' );
19
20test_02;
21test_01;
22test_03;
23
24return;
25
26
27
28
29
30
31
32
33
34%
35% Create a netCDF file .  The general format is
36%
37% netcdf test_01 {
38% dimensions:
39%     time = UNLIMITED ; // (0 currently)
40%     x = 10 ;
41%     y = 20 ;
42% variables:
43%     double time(time) ;
44%     double var1(time, y) ;
45%     double var2(time, y, x) ;
46% }
47%
48function create_default_test_file ( ncfile, abscissa_var );
49nc_create_empty ( ncfile );
50
51nc_add_dimension ( ncfile, 'time', 0 );
52nc_add_dimension ( ncfile, 'x', 10 );
53nc_add_dimension ( ncfile, 'y', 20 );
54
55v.Name = 'time';
56v.Dimension = { 'time' };
57nc_addvar ( ncfile, v );
58
59v.Name = 'var1';
60if getpref('SNCTOOLS','PRESERVE_FVD',false)
61    v.Dimension = { 'y', 'time' };
62    nc_addvar ( ncfile, v );
63
64    v.Name = 'var2';
65    v.Dimension = { 'x', 'y', 'time' };
66    nc_addvar ( ncfile, v );
67else
68    v.Dimension = { 'time', 'y' };
69    nc_addvar ( ncfile, v );
70
71    v.Name = 'var2';
72    v.Dimension = { 'time', 'y', 'x' };
73    nc_addvar ( ncfile, v );
74end
75
76return
77
78
79
80
81
82
83
84
85function test_01 ( );
86
87ncfile1 = 'test_01.nc';
88ncfile2 = 'test_02.nc';
89ncfile3 = 'test_03.nc';
90abscissa_var = 'time';
91
92create_default_test_file ( ncfile1, abscissa_var );
93create_default_test_file ( ncfile2, abscissa_var );
94create_default_test_file ( ncfile3, abscissa_var );
95
96try
97    nc_cat_a;
98    error ( '%s:  Succeeded when it should have failed.\n', mfilename );
99end
100
101return
102
103
104
105
106
107
108
109
110
111
112function test_02 (  )
113
114ncfile1 = 'test_01.nc';
115ncfile2 = 'test_02.nc';
116ncfile3 = 'test_03.nc';
117abscissa_var = 'time';
118
119create_default_test_file ( ncfile1, abscissa_var );
120create_default_test_file ( ncfile2, abscissa_var );
121create_default_test_file ( ncfile3, abscissa_var );
122
123ncfiles{1} = 'test_01.nc';
124ncfiles{2} = 'test_02.nc';
125ncfiles{3} = 'test_03.nc';
126output_ncfile = 'test_out.nc';
127nc_cat_a ( ncfiles, output_ncfile, 'time' );
128return
129
130
131
132
133
134
135
136
137
138
139function test_03 (  )
140
141ncfile1 = 'test_01.nc';
142ncfile2 = 'test_02.nc';
143ncfile3 = 'test_03.nc';
144abscissa_var = 'time';
145
146create_default_test_file ( ncfile1, abscissa_var );
147if getpref('SNCTOOLS','PRESERVE_FVD',false)
148    vardata.time = [1:5]';
149    vardata.var1 = ones(20,5);
150    vardata.var2 = 2*ones(10,20,5);
151    nc_addnewrecs ( ncfile1, vardata, 'time' );
152else
153    vardata.time = [1:5]';
154    vardata.var1 = ones(5,20);
155    vardata.var2 = 2*ones(5,20,10);
156    nc_addnewrecs ( ncfile1, vardata, 'time' );
157end
158
159
160
161create_default_test_file ( ncfile2, abscissa_var );
162vardata.time = [1:10]' + 10;
163if getpref('SNCTOOLS','PRESERVE_FVD',false)
164    vardata.var1 = ones(20,10);
165    vardata.var2 = 2*ones(10,20,10);
166else
167    vardata.var1 = ones(10,20);
168    vardata.var2 = 2*ones(10,20,10);
169end
170nc_addnewrecs ( ncfile2, vardata, 'time' );
171
172
173
174create_default_test_file ( ncfile3, abscissa_var );
175vardata.time = [1:15]' + 20;
176if getpref('SNCTOOLS','PRESERVE_FVD',false)
177    vardata.var1 = ones(20,15);
178    vardata.var2 = 2*ones(10,20,15);
179else
180    vardata.var1 = ones(15,20);
181    vardata.var2 = 2*ones(15,20,10);
182end
183nc_addnewrecs ( ncfile3, vardata, 'time' );
184
185
186ncfiles = { ncfile1, ncfile2, ncfile3 };
187output_ncfile = 'test_out.nc';
188nc_cat_a ( ncfiles, output_ncfile, 'time' );
189
190%
191% There should be 30 records.
192nt = nc_varsize ( output_ncfile, 'time' );
193if nt ~= 30
194    error ( '%s:  wrong number of final records.\n', mfilename );
195end
196return
197
198
199
200
201
202
203
204
205
206
Note: See TracBrowser for help on using the repository browser.