def test_cast_numpy_string(self, t): """Test that specifying a NumPy dtype via a string results in proper casting behaviour""" res = fn.cast(t, "float64") assert fn.get_interface(res) == fn.get_interface(t) if hasattr(res, "numpy"): # if tensorflow or pytorch, extract view of underlying data res = res.numpy() t = t.numpy() assert onp.issubdtype(onp.asarray(t).dtype, onp.integer) assert res.dtype.type is onp.float64
def test_T(t): """Test the simple transpose (T) function""" res = fn.T(t) if isinstance(t, (list, tuple)): t = onp.asarray(t) assert fn.get_interface(res) == fn.get_interface(t) # if tensorflow or pytorch, extract view of underlying data if hasattr(res, "numpy"): res = res.numpy() t = t.numpy() assert np.all(res.T == t.T)
def test_sequence(self, a, interface): """Test that a sequence is automatically converted into a diagonal tensor""" t = [0.1, 0.2, a] res = fn.diag(t) assert fn.get_interface(res) == interface assert fn.allclose(res, onp.diag([0.1, 0.2, 0.5]))
def test_ones_like_explicit_dtype(self, t): """Test that the ones like function creates the correct shape and type tensor.""" res = fn.ones_like(t, dtype=np.float16) if isinstance(t, (list, tuple)): t = onp.asarray(t) assert res.shape == t.shape assert fn.get_interface(res) == fn.get_interface(t) assert fn.allclose(res, np.ones(t.shape)) # if tensorflow or pytorch, extract view of underlying data if hasattr(res, "numpy"): res = res.numpy() t = t.numpy() assert onp.asarray(res).dtype.type is np.float16
def test_get_interface(t, interface): """Test that the interface of a tensor-like object is correctly returned.""" res = fn.get_interface(t) assert res == interface