@@ -22,12 +22,16 @@ function setup_file(tc)
2222A3 = A2(: ,1 : 3 ,1 );
2323A3(: ,: ,2 ) = 2 * A3 ;
2424A4(: ,: ,: ,5 ) = A3 ;
25+ utf = ' Hello There 😄' ;
26+ utf2 = [utf ; " ☎" ];
2527
2628tc.TestData.A0 = A0 ;
2729tc.TestData.A1 = A1 ;
2830tc.TestData.A2 = A2 ;
2931tc.TestData.A3 = A3 ;
3032tc.TestData.A4 = A4 ;
33+ tc.TestData.utf = utf ;
34+ tc.TestData.utf2 = utf2 ;
3135
3236basic = tempname + " .nc" ;
3337tc.TestData.basic = basic ;
@@ -38,6 +42,8 @@ function setup_file(tc)
3842ncsave(basic , ' A2' , A2 , " dims" , {' x2' , size(A2 ,1 ), ' y2' , size(A2 ,2 )})
3943ncsave(basic , ' A3' , A3 , " dims" , {' x3' , size(A3 ,1 ), ' y3' , size(A3 ,2 ), ' z3' , size(A3 ,3 )})
4044ncsave(basic , ' A4' , A4 , " dims" , {' x4' , size(A4 ,1 ), ' y4' , size(A4 ,2 ), ' z4' , size(A4 ,3 ), ' w4' , size(A4 ,4 )})
45+ ncsave(basic , " utf" , utf )
46+ ncsave(basic , " utf2" , utf2 )
4147
4248tc .assumeThat(basic , IsFile )
4349end
@@ -56,7 +62,7 @@ function test_get_variables(tc)
5662import stdlib .hdf5nc .ncvariables
5763basic = tc .TestData .basic ;
5864
59- tc .verifyEqual(sort(ncvariables(basic )), [" A0" , " A1" , " A2" , " A3" , " A4" ])
65+ tc .verifyEqual(sort(ncvariables(basic )), [" A0" , " A1" , " A2" , " A3" , " A4" , " utf " , " utf2 " ])
6066end
6167
6268
@@ -112,6 +118,16 @@ function test_size(tc)
112118tc .verifyEqual(s , [4 ,3 ,2 ,5 ])
113119tc .verifyEqual(r , 4 )
114120
121+ r = ncndims(basic , ' utf' );
122+ s = ncsize(basic , ' utf' );
123+ tc .verifyEmpty(s )
124+ tc .verifyEqual(r , 0 )
125+
126+ r = ncndims(basic , ' utf2' );
127+ s = ncsize(basic , ' utf2' );
128+ tc .verifyEqual(s , 2 )
129+ tc .verifyEqual(r , 1 )
130+
115131end
116132
117133
@@ -138,6 +154,14 @@ function test_read(tc)
138154s = ncread(basic , ' /A4' );
139155tc .verifyEqual(ndims(s ), 4 )
140156tc .verifyEqual(s , tc .TestData .A4 )
157+
158+ s = ncread(basic , ' /utf' );
159+ tc .verifyTrue(isstring(s ))
160+ tc .verifyEqual(s , string(tc .TestData .utf ))
161+
162+ s = ncread(basic , ' /utf2' );
163+ tc .verifyTrue(isstring(s ))
164+ tc .verifyEqual(s , tc .TestData .utf2 )
141165end
142166
143167
@@ -177,12 +201,6 @@ function test_name_only(tc)
177201delete(name )
178202end
179203
180- function test_no_char_string(tc )
181- import stdlib .hdf5nc .ncsave
182- tc .verifyError(@() ncsave(tc .TestData .basic , " /a_string" , " hello" ), ' MATLAB:validators:mustBeNumeric' )
183-
184- end
185-
186204
187205function test_real_only(tc )
188206import stdlib .hdf5nc .ncsave
0 commit comments