@@ -23,7 +23,7 @@ public void TestDenseArray()
23
23
var array = new Array ( context , tmpArrayPath ) ;
24
24
Assert . IsNotNull ( array ) ;
25
25
26
- var array_schema = BuildDenseArraySchema ( context ) ;
26
+ var array_schema = ArrayTest . BuildDenseArraySchema ( context ) ;
27
27
Assert . IsNotNull ( array_schema ) ;
28
28
29
29
array . Create ( array_schema ) ;
@@ -75,7 +75,7 @@ public void TestSparseArray()
75
75
var array = new Array ( context , tmpArrayPath ) ;
76
76
Assert . IsNotNull ( array ) ;
77
77
78
- var array_schema = BuildSparseArraySchema ( context ) ;
78
+ var array_schema = ArrayTest . BuildSparseArraySchema ( context ) ;
79
79
Assert . IsNotNull ( array_schema ) ;
80
80
81
81
array . Create ( array_schema ) ;
@@ -133,7 +133,7 @@ public void TestConsolidateFragments()
133
133
134
134
using var uri = new TemporaryDirectory ( "array_consolidate_fragments" ) ;
135
135
136
- using ( var schema = BuildDenseArraySchema ( context ) )
136
+ using ( var schema = ArrayTest . BuildDenseArraySchema ( context ) )
137
137
using ( var array = new Array ( context , uri ) )
138
138
{
139
139
array . Create ( schema ) ;
@@ -170,7 +170,102 @@ public void TestConsolidateFragments()
170
170
Assert . AreEqual ( FragmentCount , fragmentInfo . FragmentToVacuumCount ) ;
171
171
}
172
172
173
- private ArraySchema BuildDenseArraySchema ( Context context )
173
+ [ TestMethod ]
174
+ public void TestDelete ( )
175
+ {
176
+ var context = Context . GetDefault ( ) ;
177
+
178
+ using var uri = new TemporaryDirectory ( "array_delete" ) ;
179
+
180
+ using ( var schema = BuildDenseArraySchema ( context ) )
181
+ {
182
+ Array . Create ( context , uri , schema ) ;
183
+ }
184
+
185
+ Assert . AreEqual ( ObjectType . Array , context . GetObjectType ( uri ) ) ;
186
+
187
+ Array . Delete ( context , uri ) ;
188
+
189
+ Assert . AreEqual ( ObjectType . Invalid , context . GetObjectType ( uri ) ) ;
190
+ }
191
+
192
+ /// <summary>
193
+ /// Base-64 encoded zip file of an array with an old format version.
194
+ /// </summary>
195
+ /// <remarks>
196
+ /// The array was taken from <see href="https://github.com/TileDB-Inc/TileDB-Py/blob/3ea00dbc2eabce972bea8af1ea8a4dc420e00a72/tiledb/tests/test_libtiledb.py#L311-L341"/>
197
+ /// and repackaged to a zip file, because <c>System.Formats.Tar</c> is available only in .NET 7+.
198
+ /// </remarks>
199
+ const string OldVersionArrayZip = """
200
+ UEsDBBQAAAAAAAQHtFIAAAAAAAAAAAAAAABDAAAAX18xNjIxNDYxMzY3OTcyXzE2MjE0NjEzNjc5
201
+ NzJfMWJlOWNlMDM3NDI1NGMyNGI2NjBlZDE3OGU3OWQ1ZTdfNS5va1BLAwQUAAAACAAEB7RSkZnF
202
+ iBEAAAAsAAAARQAAAF9fMTYyMTQ2MTM2Nzk3Ml8xNjIxNDYxMzY3OTcyXzFiZTljZTAzNzQyNTRj
203
+ MjRiNjYwZWQxNzhlNzlkNWU3XzUvLnRkYmNkgAAJKAYBRijNBKVZoTQAUEsDBBQAAAAIAAQHtFIu
204
+ OY4+jQAAAI0EAABYAAAAX18xNjIxNDYxMzY3OTcyXzE2MjE0NjEzNjc5NzJfMWJlOWNlMDM3NDI1
205
+ NGMyNGI2NjBlZDE3OGU3OWQ1ZTdfNS9fX2ZyYWdtZW50X21ldGFkYXRhLnRkYmNlYGCwYIAABSjN
206
+ wghlMAiBSUYGkAAjK4gAs5DUiwCxAJTPiCRWwfg4KSEhoSVJgZXdJ0CMgXEJAz/IAH2oWpgeYu0C
207
+ qedmQLULJlbBmJziwAqym2nUCphxMH2jVoxaAbECAZiQFIMAM5TWYUAFDgzEgRwofR5KG0ENngql
208
+ f0DpaKjF+6C0ItTiFqgDAFBLAwQUAAAACAAEB7RSiHDSEyYAAABAAAAARgAAAF9fMTYyMTQ2MTM2
209
+ Nzk3Ml8xNjIxNDYxMzY3OTcyXzFiZTljZTAzNzQyNTRjMjRiNjYwZWQxNzhlNzlkNWU3XzUvZC50
210
+ ZGJjZIAACSCWAWIBKJ8RSUxjq/5fBYm5DAwRQHEmqAImBu1IHgZuAFBLAwQUAAAAAACkCbRSAAAA
211
+ AAAAAAAAAAAAQwAAAF9fMTYyMTQ2MjM4Nzg5N18xNjIxNDYyMzg3ODk3Xzk5ZWQxNDgxMzc5ZTQ0
212
+ ZTk4N2U0NTM1YWIyYWExYjBjXzUub2tQSwMEFAAAAAgApAm0UpGZxYgRAAAALAAAAEUAAABfXzE2
213
+ MjE0NjIzODc4OTdfMTYyMTQ2MjM4Nzg5N185OWVkMTQ4MTM3OWU0NGU5ODdlNDUzNWFiMmFhMWIw
214
+ Y181Ly50ZGJjZIAACSgGAUYozQSlWaE0AFBLAwQUAAAACACkCbRSLjmOPo0AAACNBAAAWAAAAF9f
215
+ MTYyMTQ2MjM4Nzg5N18xNjIxNDYyMzg3ODk3Xzk5ZWQxNDgxMzc5ZTQ0ZTk4N2U0NTM1YWIyYWEx
216
+ YjBjXzUvX19mcmFnbWVudF9tZXRhZGF0YS50ZGJjZWBgsGCAAAUozcIIZTAIgUlGBpAAIyuIALOQ
217
+ 1IsAsQCUz4gkVsH4OCkhIaElSYGV3SdAjIFxCQM/yAB9qFqYHmLtAqnnZkC1CyZWwZic4sAKsptp
218
+ 1AqYcTB9o1aMWgGxAgGYkBSDADOU1mFABQ4MxIEcKH0eShtBDZ4KpX9A6WioxfugtCLU4haoAwBQ
219
+ SwMEFAAAAAgApAm0Uohw0hMmAAAAQAAAAEYAAABfXzE2MjE0NjIzODc4OTdfMTYyMTQ2MjM4Nzg5
220
+ N185OWVkMTQ4MTM3OWU0NGU5ODdlNDUzNWFiMmFhMWIwY181L2QudGRiY2SAAAkglgFiASifEUlM
221
+ Y6v+XwWJuQwMEUBxJqgCJgbtSB4GbgBQSwMEFAAAAAgAAwe0UsP6HbxgAAAAkAAAABIAAABfX2Fy
222
+ cmF5X3NjaGVtYS50ZGJjZWBgiGGAgAYozcIIZTAIgUlGBpAAIyuIALOQ1FsAsQCUz4gkVsGYnMrA
223
+ 5MbGxlgqwMwi4RjDphYm8FGew8DV4ZPCnEOsSoo5CzgTzJoSmgwTeTqSFhSlxDIwsnNcAwBQSwME
224
+ FAAAAAAAAwe0UgAAAAAAAAAAAAAAAAoAAABfX2xvY2sudGRiUEsBAhQAFAAAAAAABAe0UgAAAAAA
225
+ AAAAAAAAAEMAAAAAAAAAAAAgAAAAAAAAAF9fMTYyMTQ2MTM2Nzk3Ml8xNjIxNDYxMzY3OTcyXzFi
226
+ ZTljZTAzNzQyNTRjMjRiNjYwZWQxNzhlNzlkNWU3XzUub2tQSwECFAAUAAAACAAEB7RSkZnFiBEA
227
+ AAAsAAAARQAAAAAAAAAAACAAAABhAAAAX18xNjIxNDYxMzY3OTcyXzE2MjE0NjEzNjc5NzJfMWJl
228
+ OWNlMDM3NDI1NGMyNGI2NjBlZDE3OGU3OWQ1ZTdfNS8udGRiUEsBAhQAFAAAAAgABAe0Ui45jj6N
229
+ AAAAjQQAAFgAAAAAAAAAAAAgAAAA1QAAAF9fMTYyMTQ2MTM2Nzk3Ml8xNjIxNDYxMzY3OTcyXzFi
230
+ ZTljZTAzNzQyNTRjMjRiNjYwZWQxNzhlNzlkNWU3XzUvX19mcmFnbWVudF9tZXRhZGF0YS50ZGJQ
231
+ SwECFAAUAAAACAAEB7RSiHDSEyYAAABAAAAARgAAAAAAAAAAACAAAADYAQAAX18xNjIxNDYxMzY3
232
+ OTcyXzE2MjE0NjEzNjc5NzJfMWJlOWNlMDM3NDI1NGMyNGI2NjBlZDE3OGU3OWQ1ZTdfNS9kLnRk
233
+ YlBLAQIUABQAAAAAAKQJtFIAAAAAAAAAAAAAAABDAAAAAAAAAAAAIAAAAGICAABfXzE2MjE0NjIz
234
+ ODc4OTdfMTYyMTQ2MjM4Nzg5N185OWVkMTQ4MTM3OWU0NGU5ODdlNDUzNWFiMmFhMWIwY181Lm9r
235
+ UEsBAhQAFAAAAAgApAm0UpGZxYgRAAAALAAAAEUAAAAAAAAAAAAgAAAAwwIAAF9fMTYyMTQ2MjM4
236
+ Nzg5N18xNjIxNDYyMzg3ODk3Xzk5ZWQxNDgxMzc5ZTQ0ZTk4N2U0NTM1YWIyYWExYjBjXzUvLnRk
237
+ YlBLAQIUABQAAAAIAKQJtFIuOY4+jQAAAI0EAABYAAAAAAAAAAAAIAAAADcDAABfXzE2MjE0NjIz
238
+ ODc4OTdfMTYyMTQ2MjM4Nzg5N185OWVkMTQ4MTM3OWU0NGU5ODdlNDUzNWFiMmFhMWIwY181L19f
239
+ ZnJhZ21lbnRfbWV0YWRhdGEudGRiUEsBAhQAFAAAAAgApAm0Uohw0hMmAAAAQAAAAEYAAAAAAAAA
240
+ AAAgAAAAOgQAAF9fMTYyMTQ2MjM4Nzg5N18xNjIxNDYyMzg3ODk3Xzk5ZWQxNDgxMzc5ZTQ0ZTk4
241
+ N2U0NTM1YWIyYWExYjBjXzUvZC50ZGJQSwECFAAUAAAACAADB7RSw/odvGAAAACQAAAAEgAAAAAA
242
+ AAAAACAAAADEBAAAX19hcnJheV9zY2hlbWEudGRiUEsBAhQAFAAAAAAAAwe0UgAAAAAAAAAAAAAA
243
+ AAoAAAAAAAAAAAAgAAAAVAUAAF9fbG9jay50ZGJQSwUGAAAAAAoACgA0BAAAfAUAAAAA
244
+ """ ;
245
+
246
+ [ TestMethod ]
247
+ public void TestUpgradeVersion ( )
248
+ {
249
+ var context = Context . GetDefault ( ) ;
250
+
251
+ using var uri = new TemporaryDirectory ( "array_upgrade_version" ) ;
252
+
253
+ TestUtil . UnzipBase64String ( uri , OldVersionArrayZip ) ;
254
+
255
+ using ( var schema = Array . LoadArraySchema ( context , uri ) )
256
+ {
257
+ Assert . AreEqual ( 5u , schema . FormatVersion ( ) ) ;
258
+ }
259
+
260
+ Array . UpgradeVersion ( context , uri ) ;
261
+
262
+ using ( var schema = Array . LoadArraySchema ( context , uri ) )
263
+ {
264
+ Assert . IsTrue ( schema . FormatVersion ( ) >= 15u , "Array was not upgraded." ) ;
265
+ }
266
+ }
267
+
268
+ private static ArraySchema BuildDenseArraySchema ( Context context )
174
269
{
175
270
var dimension = Dimension . Create < short > ( context , "dim1" , 1 , 10 , 5 ) ;
176
271
Assert . IsNotNull ( dimension ) ;
@@ -199,7 +294,7 @@ private ArraySchema BuildDenseArraySchema(Context context)
199
294
return array_schema ;
200
295
}
201
296
202
- private ArraySchema BuildSparseArraySchema ( Context context )
297
+ private static ArraySchema BuildSparseArraySchema ( Context context )
203
298
{
204
299
var dim1 = Dimension . Create < short > ( context , "dim1" , 1 , 10 , 5 ) ;
205
300
Assert . IsNotNull ( dim1 ) ;
0 commit comments