def setUp(self): self._default = IInitialValueProblem() self._1d_iv = np.array([[1.0]]) self._1d_2v_iv = np.array([[1.0, 2.0]]) self._2d_1v_iv = np.array([[1.0], [2.0]]) self._2d_2v_iv = np.array([ [1.0, 2.0], [2.0, 1.0], [-1.0, -2.0], [-2.0, -1.0], [0.0, 0.0], [0.0, 0.0] ])
class IInitialValueProblemTest(NumpyAwareTestCase): def setUp(self): self._default = IInitialValueProblem() self._1d_iv = np.array([[1.0]]) self._1d_2v_iv = np.array([[1.0, 2.0]]) self._2d_1v_iv = np.array([[1.0], [2.0]]) self._2d_2v_iv = np.array([ [1.0, 2.0], [2.0, 1.0], [-1.0, -2.0], [-2.0, -1.0], [0.0, 0.0], [0.0, 0.0] ]) def test_provides_initial_value(self): self.assertIsNone(self._default.initial_value, "Initially no initial value is given.") self._default.initial_value = self._1d_iv self.assertEqual(self._default.initial_value, self._1d_iv) _test_obj = IInitialValueProblem(initial_value=self._1d_iv) self.assertEqual(_test_obj.initial_value, self._1d_iv) _test_obj = IInitialValueProblem(dim=(1, 2), initial_value=self._1d_2v_iv) self.assertNumpyArrayEqual(_test_obj.initial_value, self._1d_2v_iv) _test_obj = IInitialValueProblem(dim=(2, 1), initial_value=self._2d_1v_iv) self.assertNumpyArrayEqual(_test_obj.initial_value, self._2d_1v_iv) _test_obj = IInitialValueProblem(dim=(3, 2, 2), initial_value=self._2d_2v_iv) self.assertNumpyArrayEqual(_test_obj.initial_value, self._2d_2v_iv) def test_validates_given_initial_value(self): self.assertRaises(ValueError, self._default.initial_value, self._1d_2v_iv) self.assertRaises(ValueError, self._default.initial_value, "not a number") def test_adds_initial_value_to_debug_string(self): self._default.initial_value = self._1d_iv self.assertRegex(self._default.__str__(), "u\(0.00\)=\[\[ 1.\]\]")