import numcodecs import pytest import zarr from zarr.util import InfoReporter @pytest.mark.parametrize('array_size', [10, 15000]) def test_info(array_size): # setup g = zarr.group(store=dict(), chunk_store=dict(), synchronizer=zarr.ThreadSynchronizer()) g.create_group('foo') z = g.zeros('bar', shape=array_size, filters=[numcodecs.Adler32()]) # test group info items = g.info_items() keys = sorted([k for k, _ in items]) expected_keys = sorted([ 'Type', 'Read-only', 'Synchronizer type', 'Store type', 'Chunk store type', 'No. members', 'No. arrays', 'No. groups', 'Arrays', 'Groups', 'Name' ]) assert expected_keys == keys # can also get a string representation of info via the info attribute assert isinstance(g.info, InfoReporter) assert "Type" in repr(g.info) # test array info items = z.info_items() keys = sorted([k for k, _ in items]) expected_keys = sorted([ 'Type', 'Data type', 'Shape', 'Chunk shape', 'Order', 'Read-only', 'Filter [0]', 'Compressor', 'Synchronizer type', 'Store type', 'Chunk store type', 'No. bytes', 'No. bytes stored', 'Storage ratio', 'Chunks initialized', 'Name' ]) assert expected_keys == keys # can also get a string representation of info via the info attribute assert isinstance(z.info, InfoReporter) assert "Type" in repr(z.info)