Skip to content

Commit 78c0e3a

Browse files
committed
add tests
1 parent 8d64385 commit 78c0e3a

5 files changed

Lines changed: 86 additions & 48 deletions

File tree

src/test/java/dev/zarr/zarrjava/store/HttpStoreTest.java

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,4 +22,16 @@ public void testHttpStore() throws IOException, ZarrException {
2222
Assertions.assertArrayEquals(new long[]{5, 1552, 2080}, array.metadata().shape);
2323
}
2424

25+
@Override
26+
@Test
27+
public void testStoreGetSize() {
28+
// size is not defined in BR00109990_C2.zarr
29+
long size = storeHandleWithData().getSize();
30+
Assertions.assertEquals(-1, size);
31+
}
32+
33+
@Override
34+
void testList() throws ZarrException, IOException {
35+
// listing is not supported in HttpStore
36+
}
2537
}

src/test/java/dev/zarr/zarrjava/store/MemoryStoreTest.java

Lines changed: 0 additions & 47 deletions
Original file line numberDiff line numberDiff line change
@@ -14,54 +14,7 @@
1414

1515
public class MemoryStoreTest extends WritableStoreTest {
1616

17-
@ParameterizedTest
18-
@CsvSource({"false", "true",})
19-
public void testMemoryStoreV3(boolean useParallel) throws ZarrException, IOException {
20-
int[] testData = testDataInt();
2117

22-
dev.zarr.zarrjava.v3.Group group = dev.zarr.zarrjava.v3.Group.create(new MemoryStore().resolve());
23-
Array array = group.createArray("array", b -> b
24-
.withShape(1024, 1024)
25-
.withDataType(dev.zarr.zarrjava.v3.DataType.UINT32)
26-
.withChunkShape(64, 64)
27-
);
28-
array.write(ucar.ma2.Array.factory(ucar.ma2.DataType.UINT, new int[]{1024, 1024}, testData), useParallel);
29-
group.createGroup("subgroup");
30-
group.setAttributes(new Attributes(b -> b.set("some", "value")));
31-
Stream<Node> nodes = group.list();
32-
Assertions.assertEquals(2, nodes.count());
33-
34-
ucar.ma2.Array result = array.read(useParallel);
35-
Assertions.assertArrayEquals(testData, (int[]) result.get1DJavaArray(ucar.ma2.DataType.UINT));
36-
Attributes attrs = group.metadata().attributes;
37-
Assertions.assertNotNull(attrs);
38-
Assertions.assertEquals("value", attrs.getString("some"));
39-
}
40-
41-
@ParameterizedTest
42-
@CsvSource({"false", "true",})
43-
public void testMemoryStoreV2(boolean useParallel) throws ZarrException, IOException {
44-
int[] testData = testDataInt();
45-
46-
dev.zarr.zarrjava.v2.Group group = dev.zarr.zarrjava.v2.Group.create(new MemoryStore().resolve());
47-
dev.zarr.zarrjava.v2.Array array = group.createArray("array", b -> b
48-
.withShape(1024, 1024)
49-
.withDataType(dev.zarr.zarrjava.v2.DataType.UINT32)
50-
.withChunks(512, 512)
51-
);
52-
array.write(ucar.ma2.Array.factory(ucar.ma2.DataType.UINT, new int[]{1024, 1024}, testData), useParallel);
53-
group.createGroup("subgroup");
54-
Stream<dev.zarr.zarrjava.core.Node> nodes = group.list();
55-
group.setAttributes(new Attributes().set("description", "test group"));
56-
Assertions.assertEquals(2, nodes.count());
57-
58-
ucar.ma2.Array result = array.read(useParallel);
59-
Assertions.assertArrayEquals(testData, (int[]) result.get1DJavaArray(ucar.ma2.DataType.UINT));
60-
Attributes attrs = group.metadata().attributes;
61-
Assertions.assertNotNull(attrs);
62-
Assertions.assertEquals("test group", attrs.getString("description"));
63-
64-
}
6518

6619
@Override
6720
Store writableStore() {

src/test/java/dev/zarr/zarrjava/store/OnlineS3StoreTest.java

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -62,6 +62,12 @@ public void testGet() {
6262
StoreHandle storeHandleWithData() {
6363
return storeHandle.resolve("zarr.json");
6464
}
65+
66+
@Override
67+
@Test
68+
void testList() {
69+
Assertions.assertTrue(storeHandle.list().count() > 1);
70+
}
6571
}
6672

6773

src/test/java/dev/zarr/zarrjava/store/StoreTest.java

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -123,4 +123,7 @@ void assertIsTestGroupV2(Group group, boolean useParallel) throws ZarrException,
123123
Assertions.assertNotNull(attrs);
124124
Assertions.assertEquals("value", attrs.getString("some"));
125125
}
126+
127+
@Test
128+
abstract void testList() throws ZarrException, IOException;
126129
}

src/test/java/dev/zarr/zarrjava/store/WritableStoreTest.java

Lines changed: 65 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,21 +1,28 @@
11
package dev.zarr.zarrjava.store;
22

33
import dev.zarr.zarrjava.ZarrException;
4+
import dev.zarr.zarrjava.core.Array;
5+
import dev.zarr.zarrjava.core.Attributes;
46
import dev.zarr.zarrjava.core.Group;
7+
import dev.zarr.zarrjava.core.Node;
58
import org.junit.jupiter.api.Assertions;
69
import org.junit.jupiter.api.Test;
710
import org.junit.jupiter.api.TestInstance;
11+
import org.junit.jupiter.params.ParameterizedTest;
12+
import org.junit.jupiter.params.provider.CsvSource;
813

914
import java.io.IOException;
1015
import java.util.Arrays;
16+
import java.util.List;
1117
import java.util.stream.Collectors;
18+
import java.util.stream.Stream;
1219

1320
@TestInstance(TestInstance.Lifecycle.PER_CLASS)
1421
public abstract class WritableStoreTest extends StoreTest {
1522
abstract Store writableStore();
1623

1724
@Test
18-
public void testList() throws ZarrException, IOException {
25+
public void testList() throws IOException, ZarrException {
1926
StoreHandle storeHandle = writableStore().resolve("testList");
2027
boolean useParallel = true;
2128
writeTestGroupV3(storeHandle, useParallel);
@@ -36,6 +43,11 @@ public void testList() throws ZarrException, IOException {
3643
.map(node -> String.join("/", node))
3744
.collect(Collectors.toSet());
3845
Assertions.assertEquals(expectedSubgroupKeys, actualKeys);
46+
47+
List<String> allKeys = storeHandle.list()
48+
.map(node -> String.join("/", node))
49+
.collect(Collectors.toList());
50+
Assertions.assertEquals(21, allKeys.size(), "Total number of keys in store should be 21 but was: " + allKeys);
3951
}
4052

4153
@Test
@@ -46,4 +58,56 @@ public void testWriteRead() throws IOException, ZarrException {
4658
assertIsTestGroupV3(group, useParallel);
4759
}
4860

61+
@ParameterizedTest
62+
@CsvSource({"false", "true",})
63+
public void testWriteReadV3(boolean useParallel) throws ZarrException, IOException {
64+
int[] testData = testDataInt();
65+
Store store = writableStore();
66+
StoreHandle storeHandle = store.resolve("testWriteReadV3").resolve(store.getClass().getSimpleName());
67+
68+
dev.zarr.zarrjava.v3.Group group = dev.zarr.zarrjava.v3.Group.create(storeHandle);
69+
Array array = group.createArray("array", b -> b
70+
.withShape(1024, 1024)
71+
.withDataType(dev.zarr.zarrjava.v3.DataType.UINT32)
72+
.withChunkShape(64, 64)
73+
);
74+
array.write(ucar.ma2.Array.factory(ucar.ma2.DataType.UINT, new int[]{1024, 1024}, testData), useParallel);
75+
group.createGroup("subgroup");
76+
group.setAttributes(new Attributes(b -> b.set("some", "value")));
77+
Stream<Node> nodes = group.list();
78+
Assertions.assertEquals(2, nodes.count());
79+
80+
ucar.ma2.Array result = array.read(useParallel);
81+
Assertions.assertArrayEquals(testData, (int[]) result.get1DJavaArray(ucar.ma2.DataType.UINT));
82+
Attributes attrs = group.metadata().attributes;
83+
Assertions.assertNotNull(attrs);
84+
Assertions.assertEquals("value", attrs.getString("some"));
85+
}
86+
87+
@ParameterizedTest
88+
@CsvSource({"false", "true",})
89+
public void testMemoryStoreV2(boolean useParallel) throws ZarrException, IOException {
90+
int[] testData = testDataInt();
91+
Store store = writableStore();
92+
StoreHandle storeHandle = store.resolve("testMemoryStoreV2").resolve(store.getClass().getSimpleName());
93+
94+
dev.zarr.zarrjava.v2.Group group = dev.zarr.zarrjava.v2.Group.create(storeHandle);
95+
dev.zarr.zarrjava.v2.Array array = group.createArray("array", b -> b
96+
.withShape(1024, 1024)
97+
.withDataType(dev.zarr.zarrjava.v2.DataType.UINT32)
98+
.withChunks(512, 512)
99+
);
100+
array.write(ucar.ma2.Array.factory(ucar.ma2.DataType.UINT, new int[]{1024, 1024}, testData), useParallel);
101+
group.createGroup("subgroup");
102+
Stream<dev.zarr.zarrjava.core.Node> nodes = group.list();
103+
group.setAttributes(new Attributes().set("description", "test group"));
104+
Assertions.assertEquals(2, nodes.count());
105+
106+
ucar.ma2.Array result = array.read(useParallel);
107+
Assertions.assertArrayEquals(testData, (int[]) result.get1DJavaArray(ucar.ma2.DataType.UINT));
108+
Attributes attrs = group.metadata().attributes;
109+
Assertions.assertNotNull(attrs);
110+
Assertions.assertEquals("test group", attrs.getString("description"));
111+
}
112+
49113
}

0 commit comments

Comments
 (0)