Skip to content

Commit e25f93d

Browse files
committed
v2 array tests: handle different hexdigests from zlib-ng (zarr-developers#1678)
As explained in the issue, zlib-ng produces different hex digests from original zlib. This adjusts the tests slightly to allow for this. Signed-off-by: Adam Williamson <[email protected]>
1 parent f648b61 commit e25f93d

File tree

1 file changed

+174
-107
lines changed

1 file changed

+174
-107
lines changed

tests/v2/test_core.py

Lines changed: 174 additions & 107 deletions
Original file line numberDiff line numberDiff line change
@@ -584,13 +584,24 @@ def test_setitem_data_not_shared(self):
584584
z.store.close()
585585

586586
def expected(self):
587-
return [
588-
"063b02ff8d9d3bab6da932ad5828b506ef0a6578",
589-
"f97b84dc9ffac807415f750100108764e837bb82",
590-
"c7190ad2bea1e9d2e73eaa2d3ca9187be1ead261",
591-
"14470724dca6c1837edddedc490571b6a7f270bc",
592-
"2a1046dd99b914459b3e86be9dde05027a07d209",
593-
]
587+
return (
588+
# zlib
589+
[
590+
"063b02ff8d9d3bab6da932ad5828b506ef0a6578",
591+
"f97b84dc9ffac807415f750100108764e837bb82",
592+
"c7190ad2bea1e9d2e73eaa2d3ca9187be1ead261",
593+
"14470724dca6c1837edddedc490571b6a7f270bc",
594+
"2a1046dd99b914459b3e86be9dde05027a07d209",
595+
],
596+
# zlib-ng
597+
[
598+
"063b02ff8d9d3bab6da932ad5828b506ef0a6578",
599+
"f97b84dc9ffac807415f750100108764e837bb82",
600+
"c7190ad2bea1e9d2e73eaa2d3ca9187be1ead261",
601+
"f3f04f0e30844739d34ef8a9eee6c949a47840b8",
602+
"2a1046dd99b914459b3e86be9dde05027a07d209",
603+
],
604+
)
594605

595606
def test_hexdigest(self):
596607
found = []
@@ -629,7 +640,7 @@ def test_hexdigest(self):
629640
found.append(z.hexdigest())
630641
z.store.close()
631642

632-
assert self.expected() == found
643+
assert found in self.expected()
633644

634645
def test_resize_1d(self):
635646
z = self.create_array(shape=105, chunks=10, dtype="i4", fill_value=0)
@@ -1572,13 +1583,15 @@ def test_nchunks_initialized(self):
15721583
pass
15731584

15741585
def expected(self):
1575-
return [
1576-
"f710da18d45d38d4aaf2afd7fb822fdd73d02957",
1577-
"1437428e69754b1e1a38bd7fc9e43669577620db",
1578-
"6c530b6b9d73e108cc5ee7b6be3d552cc994bdbe",
1579-
"4c0a76fb1222498e09dcd92f7f9221d6cea8b40e",
1580-
"05b0663ffe1785f38d3a459dec17e57a18f254af",
1581-
]
1586+
return (
1587+
[
1588+
"f710da18d45d38d4aaf2afd7fb822fdd73d02957",
1589+
"1437428e69754b1e1a38bd7fc9e43669577620db",
1590+
"6c530b6b9d73e108cc5ee7b6be3d552cc994bdbe",
1591+
"4c0a76fb1222498e09dcd92f7f9221d6cea8b40e",
1592+
"05b0663ffe1785f38d3a459dec17e57a18f254af",
1593+
],
1594+
)
15821595

15831596
def test_nbytes_stored(self):
15841597
# MemoryStore as store
@@ -1605,13 +1618,15 @@ def create_chunk_store(self):
16051618
return KVStore(dict())
16061619

16071620
def expected(self):
1608-
return [
1609-
"f710da18d45d38d4aaf2afd7fb822fdd73d02957",
1610-
"1437428e69754b1e1a38bd7fc9e43669577620db",
1611-
"6c530b6b9d73e108cc5ee7b6be3d552cc994bdbe",
1612-
"4c0a76fb1222498e09dcd92f7f9221d6cea8b40e",
1613-
"05b0663ffe1785f38d3a459dec17e57a18f254af",
1614-
]
1621+
return (
1622+
[
1623+
"f710da18d45d38d4aaf2afd7fb822fdd73d02957",
1624+
"1437428e69754b1e1a38bd7fc9e43669577620db",
1625+
"6c530b6b9d73e108cc5ee7b6be3d552cc994bdbe",
1626+
"4c0a76fb1222498e09dcd92f7f9221d6cea8b40e",
1627+
"05b0663ffe1785f38d3a459dec17e57a18f254af",
1628+
],
1629+
)
16151630

16161631
def test_nbytes_stored(self):
16171632
z = self.create_array(shape=1000, chunks=100)
@@ -1681,13 +1696,24 @@ def create_store(self):
16811696
return store
16821697

16831698
def expected(self):
1684-
return [
1685-
"d174aa384e660eb51c6061fc8d20850c1159141f",
1686-
"125f00eea40032f16016b292f6767aa3928c00a7",
1687-
"1b52ead0ed889a781ebd4db077a29e35d513c1f3",
1688-
"719a88b34e362ff65df30e8f8810c1146ab72bc1",
1689-
"6e0abf30daf45de51593c227fb907759ca725551",
1690-
]
1699+
return (
1700+
# zlib
1701+
[
1702+
"d174aa384e660eb51c6061fc8d20850c1159141f",
1703+
"125f00eea40032f16016b292f6767aa3928c00a7",
1704+
"1b52ead0ed889a781ebd4db077a29e35d513c1f3",
1705+
"719a88b34e362ff65df30e8f8810c1146ab72bc1",
1706+
"6e0abf30daf45de51593c227fb907759ca725551",
1707+
],
1708+
# zlib-ng
1709+
[
1710+
"d174aa384e660eb51c6061fc8d20850c1159141f",
1711+
"125f00eea40032f16016b292f6767aa3928c00a7",
1712+
"1b52ead0ed889a781ebd4db077a29e35d513c1f3",
1713+
"42d9c96e60ed22346c4671bc5bec32a2078ce25c",
1714+
"6e0abf30daf45de51593c227fb907759ca725551",
1715+
],
1716+
)
16911717

16921718

16931719
class TestArrayWithN5Store(TestArrayWithDirectoryStore):
@@ -1967,13 +1993,24 @@ def test_compressors(self):
19671993
assert np.all(a2[:] == 1)
19681994

19691995
def expected(self):
1970-
return [
1971-
"8811a77d54caaa1901d5cc4452d946ae433c8d90",
1972-
"d880b007d9779db5f2cdbe13274eb1cbac4a425a",
1973-
"d80eb66d5521744f051e816ab368d8ccfc2e3edf",
1974-
"568f9f837e4b682a3819cb122988e2eebeb6572b",
1975-
"4fdf4475d786d6694110db5619acd30c80dfc372",
1976-
]
1996+
return (
1997+
# zlib
1998+
[
1999+
"8811a77d54caaa1901d5cc4452d946ae433c8d90",
2000+
"d880b007d9779db5f2cdbe13274eb1cbac4a425a",
2001+
"d80eb66d5521744f051e816ab368d8ccfc2e3edf",
2002+
"568f9f837e4b682a3819cb122988e2eebeb6572b",
2003+
"4fdf4475d786d6694110db5619acd30c80dfc372",
2004+
],
2005+
# zlib-ng
2006+
[
2007+
"8811a77d54caaa1901d5cc4452d946ae433c8d90",
2008+
"d880b007d9779db5f2cdbe13274eb1cbac4a425a",
2009+
"d80eb66d5521744f051e816ab368d8ccfc2e3edf",
2010+
"ea7d9e80211679291141840b111775b088e51480",
2011+
"4fdf4475d786d6694110db5619acd30c80dfc372",
2012+
],
2013+
)
19772014

19782015

19792016
@pytest.mark.skipif(have_fsspec is False, reason="needs fsspec")
@@ -2052,39 +2089,45 @@ class TestArrayWithNoCompressor(TestArray):
20522089
compressor = None
20532090

20542091
def expected(self):
2055-
return [
2056-
"d3da3d485de4a5fcc6d91f9dfc6a7cba9720c561",
2057-
"443b8dee512e42946cb63ff01d28e9bee8105a5f",
2058-
"b75eb90f68aa8ee1e29f2c542e851d3945066c54",
2059-
"42b6ae0d50ec361628736ab7e68fe5fefca22136",
2060-
"a0535f31c130f5e5ac66ba0713d1c1ceaebd089b",
2061-
]
2092+
return (
2093+
[
2094+
"d3da3d485de4a5fcc6d91f9dfc6a7cba9720c561",
2095+
"443b8dee512e42946cb63ff01d28e9bee8105a5f",
2096+
"b75eb90f68aa8ee1e29f2c542e851d3945066c54",
2097+
"42b6ae0d50ec361628736ab7e68fe5fefca22136",
2098+
"a0535f31c130f5e5ac66ba0713d1c1ceaebd089b",
2099+
],
2100+
)
20622101

20632102

20642103
class TestArrayWithBZ2Compressor(TestArray):
20652104
compressor = BZ2(level=1)
20662105

20672106
def expected(self):
2068-
return [
2069-
"33141032439fb1df5e24ad9891a7d845b6c668c8",
2070-
"44d719da065c88a412d609a5500ff41e07b331d6",
2071-
"37c7c46e5730bba37da5e518c9d75f0d774c5098",
2072-
"1e1bcaac63e4ef3c4a68f11672537131c627f168",
2073-
"86d7b9bf22dccbeaa22f340f38be506b55e76ff2",
2074-
]
2107+
return (
2108+
[
2109+
"33141032439fb1df5e24ad9891a7d845b6c668c8",
2110+
"44d719da065c88a412d609a5500ff41e07b331d6",
2111+
"37c7c46e5730bba37da5e518c9d75f0d774c5098",
2112+
"1e1bcaac63e4ef3c4a68f11672537131c627f168",
2113+
"86d7b9bf22dccbeaa22f340f38be506b55e76ff2",
2114+
],
2115+
)
20752116

20762117

20772118
class TestArrayWithBloscCompressor(TestArray):
20782119
compressor = Blosc(cname="zstd", clevel=1, shuffle=1)
20792120

20802121
def expected(self):
2081-
return [
2082-
"7ff2ae8511eac915fad311647c168ccfe943e788",
2083-
"962705c861863495e9ccb7be7735907aa15e85b5",
2084-
"74ed339cfe84d544ac023d085ea0cd6a63f56c4b",
2085-
"90e30bdab745a9641cd0eb605356f531bc8ec1c3",
2086-
"95d40c391f167db8b1290e3c39d9bf741edacdf6",
2087-
]
2122+
return (
2123+
[
2124+
"7ff2ae8511eac915fad311647c168ccfe943e788",
2125+
"962705c861863495e9ccb7be7735907aa15e85b5",
2126+
"74ed339cfe84d544ac023d085ea0cd6a63f56c4b",
2127+
"90e30bdab745a9641cd0eb605356f531bc8ec1c3",
2128+
"95d40c391f167db8b1290e3c39d9bf741edacdf6",
2129+
],
2130+
)
20882131

20892132

20902133
try:
@@ -2098,13 +2141,15 @@ class TestArrayWithLZMACompressor(TestArray):
20982141
compressor = LZMA(preset=1)
20992142

21002143
def expected(self):
2101-
return [
2102-
"93ecaa530a1162a9d48a3c1dcee4586ccfc59bae",
2103-
"04a9755a0cd638683531b7816c7fa4fbb6f577f2",
2104-
"9de97b5c49b38e68583ed701d7e8f4c94b6a8406",
2105-
"cde499f3dc945b4e97197ff8e3cf8188a1262c35",
2106-
"e2cf3afbf66ad0e28a2b6b68b1b07817c69aaee2",
2107-
]
2144+
return (
2145+
[
2146+
"93ecaa530a1162a9d48a3c1dcee4586ccfc59bae",
2147+
"04a9755a0cd638683531b7816c7fa4fbb6f577f2",
2148+
"9de97b5c49b38e68583ed701d7e8f4c94b6a8406",
2149+
"cde499f3dc945b4e97197ff8e3cf8188a1262c35",
2150+
"e2cf3afbf66ad0e28a2b6b68b1b07817c69aaee2",
2151+
],
2152+
)
21082153

21092154

21102155
class TestArrayWithFilters(TestArray):
@@ -2117,13 +2162,24 @@ def create_filters(self, dtype: Optional[str]) -> Tuple[Any, ...]:
21172162
)
21182163

21192164
def expected(self):
2120-
return [
2121-
"b80367c5599d47110d42bd8886240c2f46620dba",
2122-
"95a7b2471225e73199c9716d21e8d3dd6e5f6f2a",
2123-
"7300f1eb130cff5891630038fd99c28ef23d3a01",
2124-
"c649ad229bc5720258b934ea958570c2f354c2eb",
2125-
"62fc9236d78af18a5ec26c12eea1d33bce52501e",
2126-
]
2165+
return (
2166+
# zlib
2167+
[
2168+
"b80367c5599d47110d42bd8886240c2f46620dba",
2169+
"95a7b2471225e73199c9716d21e8d3dd6e5f6f2a",
2170+
"7300f1eb130cff5891630038fd99c28ef23d3a01",
2171+
"c649ad229bc5720258b934ea958570c2f354c2eb",
2172+
"62fc9236d78af18a5ec26c12eea1d33bce52501e",
2173+
],
2174+
# zlib-ng
2175+
[
2176+
"b80367c5599d47110d42bd8886240c2f46620dba",
2177+
"95a7b2471225e73199c9716d21e8d3dd6e5f6f2a",
2178+
"7300f1eb130cff5891630038fd99c28ef23d3a01",
2179+
"1e053b6ad7dc58de7b1f5dad7fb45851f6b7b3ee",
2180+
"62fc9236d78af18a5ec26c12eea1d33bce52501e",
2181+
],
2182+
)
21272183

21282184
def test_astype_no_filters(self):
21292185
shape = (100,)
@@ -2248,7 +2304,8 @@ def test_nbytes_stored(self):
22482304
z = self.create_array(shape=1000, chunks=100)
22492305
assert 245 == z.nbytes_stored
22502306
z[:] = 42
2251-
assert 515 == z.nbytes_stored
2307+
# 515 is zlib, 485 is zlib-ng
2308+
assert z.nbytes_stored in (515, 485)
22522309

22532310

22542311
class TestArrayNoCache(TestArray):
@@ -2343,13 +2400,15 @@ def create_store(self):
23432400
return store
23442401

23452402
def expected(self):
2346-
return [
2347-
"ab753fc81df0878589535ca9bad2816ba88d91bc",
2348-
"c16261446f9436b1e9f962e57ce3e8f6074abe8a",
2349-
"c2ef3b2fb2bc9dcace99cd6dad1a7b66cc1ea058",
2350-
"6e52f95ac15b164a8e96843a230fcee0e610729b",
2351-
"091fa99bc60706095c9ce30b56ce2503e0223f56",
2352-
]
2403+
return (
2404+
[
2405+
"ab753fc81df0878589535ca9bad2816ba88d91bc",
2406+
"c16261446f9436b1e9f962e57ce3e8f6074abe8a",
2407+
"c2ef3b2fb2bc9dcace99cd6dad1a7b66cc1ea058",
2408+
"6e52f95ac15b164a8e96843a230fcee0e610729b",
2409+
"091fa99bc60706095c9ce30b56ce2503e0223f56",
2410+
],
2411+
)
23532412

23542413

23552414
@pytest.mark.skipif(have_fsspec is False, reason="needs fsspec")
@@ -2375,13 +2434,15 @@ def create_store(self):
23752434
return store
23762435

23772436
def expected(self):
2378-
return [
2379-
"ab753fc81df0878589535ca9bad2816ba88d91bc",
2380-
"c16261446f9436b1e9f962e57ce3e8f6074abe8a",
2381-
"c2ef3b2fb2bc9dcace99cd6dad1a7b66cc1ea058",
2382-
"6e52f95ac15b164a8e96843a230fcee0e610729b",
2383-
"091fa99bc60706095c9ce30b56ce2503e0223f56",
2384-
]
2437+
return (
2438+
[
2439+
"ab753fc81df0878589535ca9bad2816ba88d91bc",
2440+
"c16261446f9436b1e9f962e57ce3e8f6074abe8a",
2441+
"c2ef3b2fb2bc9dcace99cd6dad1a7b66cc1ea058",
2442+
"6e52f95ac15b164a8e96843a230fcee0e610729b",
2443+
"091fa99bc60706095c9ce30b56ce2503e0223f56",
2444+
],
2445+
)
23852446

23862447

23872448
@pytest.mark.skipif(have_fsspec is False, reason="needs fsspec")
@@ -2396,13 +2457,15 @@ def create_store(self):
23962457
return store
23972458

23982459
def expected(self):
2399-
return [
2400-
"dd7577d645c38767cf6f6d1ef8fd64002883a014",
2401-
"aa0de9892cf1ed3cda529efbf3233720b84489b7",
2402-
"e6191c44cf958576c29c41cef0f55b028a4dbdff",
2403-
"88adeeabb819feecccadf50152293dbb42f9107e",
2404-
"1426e084427f9920e29c9ec81b663d1005849455",
2405-
]
2460+
return (
2461+
[
2462+
"dd7577d645c38767cf6f6d1ef8fd64002883a014",
2463+
"aa0de9892cf1ed3cda529efbf3233720b84489b7",
2464+
"e6191c44cf958576c29c41cef0f55b028a4dbdff",
2465+
"88adeeabb819feecccadf50152293dbb42f9107e",
2466+
"1426e084427f9920e29c9ec81b663d1005849455",
2467+
],
2468+
)
24062469

24072470
def test_non_cont(self):
24082471
z = self.create_array(shape=(500, 500, 500), chunks=(50, 50, 50), dtype="<i4")
@@ -2437,13 +2500,15 @@ class TestArrayWithFSStoreNested(TestArrayWithFSStore):
24372500
dimension_separator = "/"
24382501

24392502
def expected(self):
2440-
return [
2441-
"94884f29b41b9beb8fc99ad7bf9c0cbf0f2ab3c9",
2442-
"077aa3bd77b8d354f8f6c15dce5ae4f545788a72",
2443-
"22be95d83c097460adb339d80b2d7fe19c513c16",
2444-
"85131cec526fa46938fd2c4a6083a58ee11037ea",
2445-
"c3167010c162c6198cb2bf3c1da2c46b047c69a1",
2446-
]
2503+
return (
2504+
[
2505+
"94884f29b41b9beb8fc99ad7bf9c0cbf0f2ab3c9",
2506+
"077aa3bd77b8d354f8f6c15dce5ae4f545788a72",
2507+
"22be95d83c097460adb339d80b2d7fe19c513c16",
2508+
"85131cec526fa46938fd2c4a6083a58ee11037ea",
2509+
"c3167010c162c6198cb2bf3c1da2c46b047c69a1",
2510+
],
2511+
)
24472512

24482513

24492514
@pytest.mark.skipif(have_fsspec is False, reason="needs fsspec")
@@ -2453,13 +2518,15 @@ class TestArrayWithFSStoreNestedPartialRead(TestArrayWithFSStore):
24532518
partial_decompress = True
24542519

24552520
def expected(self):
2456-
return [
2457-
"94884f29b41b9beb8fc99ad7bf9c0cbf0f2ab3c9",
2458-
"077aa3bd77b8d354f8f6c15dce5ae4f545788a72",
2459-
"22be95d83c097460adb339d80b2d7fe19c513c16",
2460-
"85131cec526fa46938fd2c4a6083a58ee11037ea",
2461-
"c3167010c162c6198cb2bf3c1da2c46b047c69a1",
2462-
]
2521+
return (
2522+
[
2523+
"94884f29b41b9beb8fc99ad7bf9c0cbf0f2ab3c9",
2524+
"077aa3bd77b8d354f8f6c15dce5ae4f545788a72",
2525+
"22be95d83c097460adb339d80b2d7fe19c513c16",
2526+
"85131cec526fa46938fd2c4a6083a58ee11037ea",
2527+
"c3167010c162c6198cb2bf3c1da2c46b047c69a1",
2528+
],
2529+
)
24632530

24642531
def test_non_cont(self):
24652532
z = self.create_array(shape=(500, 500, 500), chunks=(50, 50, 50), dtype="<i4")

0 commit comments

Comments
 (0)