Merge pull request #1928 from jtkrogel/nx_test_hdfreader

Nexus: tests for hdfreader module
This commit is contained in:
Mark Dewing 2019-09-20 15:58:52 -05:00 committed by GitHub
commit 145ff7538d
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 88 additions and 0 deletions

View File

@ -1732,6 +1732,12 @@ def fileio():
def hdfreader():
nunit_all()
#end def hdfreader
def nexus_imports():
import nexus
@ -3472,6 +3478,7 @@ NexusTest( developer )
NexusTest( periodic_table )
NexusTest( numerics )
NexusTest( fileio )
NexusTest( hdfreader )
NexusTest( nexus_imports )
NexusTest( settings_operation , 'settings' )
NexusTest( machines )

View File

@ -0,0 +1,81 @@
from versions import h5py_available
import testing
from testing import value_eq,object_eq
def test_import():
import hdfreader
from hdfreader import HDFreader,read_hdf
#end def test_import
if h5py_available:
def test_read():
import os
import numpy as np
import h5py
from hdfreader import read_hdf
ds = 'string value'
di = 100
df = np.pi
das = np.array(tuple('abcdefghijklmnopqrstuvwxyz'))
dai = np.arange(20,dtype=np.int64)
daf = 0.1*np.arange(20,dtype=np.float64)
path = testing.setup_unit_test_output_directory('hdfreader','test_read')
def add_datasets(g):
g.create_dataset('sdata',data=das)
g.create_dataset('idata',data=dai)
g.create_dataset('fdata',data=daf)
#end def add_datasets
def add_attrs(g):
g.attrs['sval'] = ds
g.attrs['ival'] = di
g.attrs['fval'] = df
#end def add_attrs
def add_group(g,label=''):
g = g.create_group('group'+str(label))
add_attrs(g)
add_datasets(g)
return g
#end def add_group
testfile = os.path.join(path,'test.h5')
f = h5py.File(testfile,'w')
add_datasets(f)
g1 = add_group(f,1)
g2 = add_group(f,2)
g11 = add_group(g1,1)
g12 = add_group(g1,2)
g21 = add_group(g2,1)
g22 = add_group(g2,2)
f.close()
def check_datasets(g):
assert(value_eq(g.sdata,das))
assert(value_eq(g.idata,dai))
assert(value_eq(g.fdata,daf))
#end def check_datasets
def check_groups(g):
assert('group1' in g)
assert('group2' in g)
check_datasets(g.group1)
check_datasets(g.group2)
#end def check_groups
h = read_hdf(testfile)
check_datasets(h)
check_groups(h)
check_groups(h.group1)
check_groups(h.group2)
#end def test_read
#end if