def test_right_multiply_vector_with_frame_by_one(self) -> None: a = et.Tensor_with_Frame(self.a_value, self.a_indices, 'A') self.assertEqual(a * 1, a)
def test_left_multiply_vector_with_frame_by_two(self) -> None: a = et.Tensor_with_Frame(self.a_value, self.a_indices, 'A') self.assertEqual(2 * a, a + a)
def test_tensor_with_frame_minus_itself_equals_zero_tensor(self) -> None: a = et.Tensor_with_Frame(self.a_value, self.a_indices, 'A') zero_list = [0 for x in self.a_value] zero_frame_tensor = et.Tensor_with_Frame(zero_list, self.a_indices, 'A') self.assertEqual(a - a, zero_frame_tensor)
def test_twice_tensor_with_frame_minus_itself_equals_itself(self) -> None: a = et.Tensor_with_Frame(self.a_value, self.a_indices, 'A') self.assertEqual((a + a) - a, a)
def test_repr_tensor_with_frame(self) -> None: a = et.Tensor_with_Frame(self.a_value, self.a_indices, 'A') self.assertEqual(a.__repr__(), a.__str__())
def test_neg_tensor_with_frame_plus_tensor_with_frame_equals_zero_tensor( self) -> None: zero_list = [0 for x in self.a_value] a = et.Tensor_with_Frame(self.a_value, self.a_indices, 'A') self.assertEqual(a + -a, et.Tensor_with_Frame(zero_list, self.a_indices, 'A'))
def test_that_sum_of_tensor_with_frame_and_a_tensor_without_frames_raises_exception( self): a = et.Tensor_with_Frame(self.a_value, self.a_indices, 'A') b = et.Tensor(self.a_value, self.a_indices) with self.assertRaises(TypeError): c = a + b
def test_scalars_with_different_frames_are_equal(self): a = et.Tensor_with_Frame(1, [], 'A') b = et.Tensor_with_Frame(1, [], 'B') self.assertEqual(a, b)
def test_that_sum_of_tensors_with_frames_has_same_frame(self): a = et.Tensor_with_Frame(self.a_value, self.a_indices, 'A') self.assertEqual((a + a).frame, a.frame)
def test_that_sum_of_tensors_with_different_frames_raises_exception(self): a = et.Tensor_with_Frame(self.a_value, self.a_indices, 'A') b = et.Tensor_with_Frame(self.a_value, self.a_indices, 'B') with self.assertRaises(ValueError): c = a + b
def test_scalar_tensor_and_scalar_are_not_equal_if_values_are_unequal( self): a = et.Tensor_with_Frame(1, [], 'A') b = 2 self.assertNotEqual(a, b)
def test_scalars_tensors_with_different_frames_are_not_equal_if_values_are_unequal( self): a = et.Tensor_with_Frame(1, [], 'A') b = et.Tensor_with_Frame(2, [], 'B') self.assertNotEqual(a, b)
def test_scalar_tensor_with_frame_equal_to_scalar(self): a = et.Tensor_with_Frame(1, [], 'A') self.assertEqual(a, 1)
def test_left_multiply_vector_with_frame_by_two_point_five(self) -> None: a = et.Tensor_with_Frame(self.a_value, self.a_indices, 'A') product_tensor_with_frame = et.Tensor_with_Frame( 2.5 * np.array(self.a_value), self.a_indices, 'A') self.assertEqual(2.5 * a, product_tensor_with_frame)
def test_str_tensor_with_frame(self) -> None: a = et.Tensor_with_Frame(self.a_value, self.a_indices, 'A') self.assertEqual( a.__str__(), str(a.tensor.value) + " " + str(a.tensor.indices) + " " + a.frame)
def test_product_of_two_tensors_with_frames_has_same_frame(self) -> None: a = et.Tensor_with_Frame(self.a_value, self.a_indices, 'A') b = et.Tensor_with_Frame(self.a_value, ['^nu'], 'A') self.assertEqual((a * b).frame, 'A')
def test_tensors_with_different_frames_are_not_equal(self): a = et.Tensor_with_Frame(self.a_value, self.a_indices, 'A') b = et.Tensor_with_Frame(self.a_value, self.a_indices, 'B') self.assertNotEqual(a, b)