def test_ge(self): result = ht.uint8([[False, True], [True, True]]) commutated_result = ht.array([[True, True], [False, False]]) self.assertTrue( ht.equal(ht.ge(self.a_scalar, self.a_scalar), ht.array(True))) self.assertTrue(ht.equal(ht.ge(self.a_tensor, self.a_scalar), result)) self.assertTrue( ht.equal(ht.ge(self.a_scalar, self.a_tensor), commutated_result)) self.assertTrue( ht.equal(ht.ge(self.a_tensor, self.another_tensor), result)) self.assertTrue(ht.equal(ht.ge(self.a_tensor, self.a_vector), result)) self.assertTrue( ht.equal(ht.ge(self.a_tensor, self.an_int_scalar), result)) self.assertTrue( ht.equal(ht.ge(self.a_split_tensor, self.a_tensor), commutated_result)) self.assertEqual( ht.ge(self.a_split_tensor, self.a_tensor).dtype, ht.bool) with self.assertRaises(ValueError): ht.ge(self.a_tensor, self.another_vector) with self.assertRaises(TypeError): ht.ge(self.a_tensor, self.errorneous_type) with self.assertRaises(TypeError): ht.ge("self.a_tensor", "s")
def test_ne(self): T_r = ht.uint8([[1, 0], [1, 1]]) self.assertTrue(ht.equal(ht.ne(s, s), ht.uint8([0]))) self.assertTrue(ht.equal(ht.ne(T, s), T_r)) self.assertTrue(ht.equal(ht.ne(s, T), T_r)) self.assertTrue(ht.equal(ht.ne(T, T1), T_r)) self.assertTrue(ht.equal(ht.ne(T, v), T_r)) self.assertTrue(ht.equal(ht.ne(T, s_int), T_r)) self.assertTrue(ht.equal(ht.ne(T_s, T), T_r)) with self.assertRaises(ValueError): ht.ne(T, v2) with self.assertRaises(NotImplementedError): ht.ne(T, Ts) with self.assertRaises(TypeError): ht.ne(T, otherType) with self.assertRaises(TypeError): ht.ne('T', 's')
def test_eq(self): result = ht.uint8([[0, 1], [0, 0]], device=ht_device) self.assertTrue( ht.equal(ht.eq(self.a_scalar, self.a_scalar), ht.uint8([1]))) self.assertTrue(ht.equal(ht.eq(self.a_tensor, self.a_scalar), result)) self.assertTrue(ht.equal(ht.eq(self.a_scalar, self.a_tensor), result)) self.assertTrue( ht.equal(ht.eq(self.a_tensor, self.another_tensor), result)) self.assertTrue(ht.equal(ht.eq(self.a_tensor, self.a_vector), result)) self.assertTrue( ht.equal(ht.eq(self.a_tensor, self.an_int_scalar), result)) self.assertTrue( ht.equal(ht.eq(self.a_split_tensor, self.a_tensor), result)) with self.assertRaises(ValueError): ht.eq(self.a_tensor, self.another_vector) with self.assertRaises(TypeError): ht.eq(self.a_tensor, self.errorneous_type) with self.assertRaises(TypeError): ht.eq("self.a_tensor", "s")
def test_any(self): # float values, minor axis x = ht.float32([[2.7, 0, 0], [0, 0, 0], [0, 0.3, 0]], device=ht_device) any_tensor = x.any(axis=1) res = ht.uint8([1, 0, 1], device=ht_device) self.assertIsInstance(any_tensor, ht.DNDarray) self.assertEqual(any_tensor.shape, (3, )) self.assertEqual(any_tensor.dtype, ht.bool) self.assertTrue(ht.equal(any_tensor, res)) # integer values, major axis, output tensor any_tensor = ht.zeros((2, ), device=ht_device) x = ht.int32([[0, 0], [0, 0], [0, 1]], device=ht_device) ht.any(x, axis=0, out=any_tensor) res = ht.uint8([0, 1], device=ht_device) self.assertIsInstance(any_tensor, ht.DNDarray) self.assertEqual(any_tensor.shape, (2, )) self.assertEqual(any_tensor.dtype, ht.bool) self.assertTrue(ht.equal(any_tensor, res)) # float values, no axis x = ht.float64([[0, 0, 0], [0, 0, 0]], device=ht_device) res = ht.zeros(1, dtype=ht.uint8, device=ht_device) any_tensor = ht.any(x) self.assertIsInstance(any_tensor, ht.DNDarray) self.assertEqual(any_tensor.shape, (1, )) self.assertEqual(any_tensor.dtype, ht.bool) self.assertTrue(ht.equal(any_tensor, res)) # split tensor, along axis x = ht.arange(10, split=0, device=ht_device) any_tensor = ht.any(x, axis=0) res = ht.uint8([1], device=ht_device) self.assertIsInstance(any_tensor, ht.DNDarray) self.assertEqual(any_tensor.shape, (1, )) self.assertEqual(any_tensor.dtype, ht.bool) self.assertTrue(ht.equal(any_tensor, res))
def test_gt(self): result = ht.uint8([[0, 0], [1, 1]]) commutated_result = ht.uint8([[1, 0], [0, 0]]) self.assertTrue( ht.equal(ht.gt(self.a_scalar, self.a_scalar), ht.uint8([0]))) self.assertTrue(ht.equal(ht.gt(self.a_tensor, self.a_scalar), result)) self.assertTrue( ht.equal(ht.gt(self.a_scalar, self.a_tensor), commutated_result)) self.assertTrue( ht.equal(ht.gt(self.a_tensor, self.another_tensor), result)) self.assertTrue(ht.equal(ht.gt(self.a_tensor, self.a_vector), result)) self.assertTrue( ht.equal(ht.gt(self.a_tensor, self.an_int_scalar), result)) self.assertTrue( ht.equal(ht.gt(self.a_split_tensor, self.a_tensor), commutated_result)) with self.assertRaises(ValueError): ht.gt(self.a_tensor, self.another_vector) with self.assertRaises(TypeError): ht.gt(self.a_tensor, self.errorneous_type) with self.assertRaises(TypeError): ht.gt("self.a_tensor", "s")
def test_ne(self): result = ht.uint8([[1, 0], [1, 1]]) # self.assertTrue(ht.equal(ht.ne(self.a_scalar, self.a_scalar), ht.uint8([0]))) # self.assertTrue(ht.equal(ht.ne(self.a_tensor, self.a_scalar), result)) # self.assertTrue(ht.equal(ht.ne(self.a_scalar, self.a_tensor), result)) # self.assertTrue(ht.equal(ht.ne(self.a_tensor, self.another_tensor), result)) # self.assertTrue(ht.equal(ht.ne(self.a_tensor, self.a_vector), result)) # self.assertTrue(ht.equal(ht.ne(self.a_tensor, self.an_int_scalar), result)) self.assertTrue( ht.equal(ht.ne(self.a_split_tensor, self.a_tensor), result)) self.assertTrue(ht.equal(self.a_split_tensor != self.a_tensor, result)) with self.assertRaises(ValueError): ht.ne(self.a_tensor, self.another_vector) with self.assertRaises(TypeError): ht.ne(self.a_tensor, self.errorneous_type) with self.assertRaises(TypeError): ht.ne("self.a_tensor", "s")