@@ -149,4 +149,64 @@ void readHumanOrganAtlasOverview() throws Exception {
149149 assertEquals ("anatomical" , entry .coordinateSystems .get (1 ).name );
150150 assertEquals ("sequence" , entry .datasets .get (0 ).coordinateTransformations .get (0 ).type );
151151 }
152+
153+ @ Test
154+ void readV06WithOmeroMetadata () throws Exception {
155+ java .nio .file .Path out = TESTOUTPUT .resolve ("ome_v06_with_omero" );
156+ StoreHandle outHandle = storeHandle (out );
157+ java .util .List <dev .zarr .zarrjava .ome .metadata .Axis > axes = Arrays .asList (
158+ new dev .zarr .zarrjava .ome .metadata .Axis ("y" , "space" , "micrometer" ),
159+ new dev .zarr .zarrjava .ome .metadata .Axis ("x" , "space" , "micrometer" ));
160+ java .util .List <dev .zarr .zarrjava .ome .v0_6 .metadata .Dataset > datasets =
161+ java .util .Collections .singletonList (new dev .zarr .zarrjava .ome .v0_6 .metadata .Dataset (
162+ "s0" ,
163+ java .util .Collections .singletonList (
164+ dev .zarr .zarrjava .ome .v0_6 .metadata .CoordinateTransformation .scale (
165+ Arrays .asList (1.0 , 1.0 ), "s0" , "physical" ))));
166+ dev .zarr .zarrjava .ome .v0_6 .metadata .MultiscalesEntry ms =
167+ new dev .zarr .zarrjava .ome .v0_6 .metadata .MultiscalesEntry (
168+ null ,
169+ datasets ,
170+ null ,
171+ java .util .Collections .singletonList (new CoordinateSystem ("physical" , axes )),
172+ "multiscales" ,
173+ null ,
174+ null );
175+
176+ java .util .Map <String , Object > ch = new java .util .HashMap <>();
177+ ch .put ("label" , "LaminB1" );
178+ ch .put ("color" , "0000FF" );
179+ java .util .Map <String , Object > win = new java .util .HashMap <>();
180+ win .put ("min" , 0 );
181+ win .put ("max" , 65535 );
182+ win .put ("start" , 0 );
183+ win .put ("end" , 1500 );
184+ ch .put ("window" , win );
185+ dev .zarr .zarrjava .ome .metadata .OmeroMetadata omero =
186+ new dev .zarr .zarrjava .ome .metadata .OmeroMetadata (
187+ 1 ,
188+ "0.5" ,
189+ "example.tif" ,
190+ java .util .Collections .singletonList (ch ),
191+ java .util .Collections .singletonMap ("model" , "color" ));
192+
193+ dev .zarr .zarrjava .ome .v0_6 .metadata .OmeMetadata ome =
194+ new dev .zarr .zarrjava .ome .v0_6 .metadata .OmeMetadata ("0.6" , java .util .Collections .singletonList (ms ), omero );
195+ dev .zarr .zarrjava .v3 .Group .create (outHandle , dev .zarr .zarrjava .ome .OmeV3Group .omeAttributes (ome ));
196+ dev .zarr .zarrjava .v3 .Array .create (
197+ outHandle .resolve ("s0" ),
198+ dev .zarr .zarrjava .v3 .Array .metadataBuilder ()
199+ .withShape (16 , 16 )
200+ .withChunkShape (8 , 8 )
201+ .withDataType (dev .zarr .zarrjava .v3 .DataType .UINT16 )
202+ .build ());
203+
204+ dev .zarr .zarrjava .ome .v0_6 .MultiscaleImage read =
205+ (dev .zarr .zarrjava .ome .v0_6 .MultiscaleImage ) MultiscaleImage .open (outHandle );
206+ assertNotNull (read .getOmeroMetadata ());
207+ assertEquals (Integer .valueOf (1 ), read .getOmeroMetadata ().id );
208+ assertEquals ("0.5" , read .getOmeroMetadata ().version );
209+ assertEquals ("example.tif" , read .getOmeroMetadata ().name );
210+ assertEquals ("LaminB1" , read .getOmeroMetadata ().channels .get (0 ).get ("label" ));
211+ }
152212}
0 commit comments