import numpy as np
X=np.array([[10,100],[20,200],[30,300]],dtype=np.float64)
assert (X.shape,X.ndim,X.size)==((3,2),2,6)
print('metadata',X.shape,X.ndim,X.size,str(X.dtype),X.nbytes)
grid=np.linspace(0,1,5)
assert np.allclose(grid,[0,.25,.5,.75,1])
print('grid',grid.tolist())
missing=np.array([1.,np.nan,np.inf])
assert np.isfinite(missing).tolist()==[True,False,False]
print('finite',np.isfinite(missing).tolist())
limits=np.iinfo(np.int8)
assert (limits.min,limits.max)==(-128,127)
print('int8 range',limits.min,limits.max)
empty=np.empty((0,2),dtype=float)
assert empty.size==0 and empty.shape==(0,2)
print('empty shape',empty.shape)
assert np.array([1,'2']).dtype.kind=='U'
