def test_order(self): """ The model has to behave like an OrderedDict. This is of the utmost importance! """ x, y_1, y_2 = variables('x, y_1, y_2') a, b = parameters('a, b') model_dict = {y_2: a * x**2, y_1: 2 * x * b} model = Model(model_dict) self.assertEqual(model.dependent_vars, list(model.keys()))
def test_model_as_dict(self): x, y_1, y_2 = variables('x, y_1, y_2') a, b = parameters('a, b') model_dict = OrderedDict([(y_1, a * x**2), (y_2, 2 * x * b)]) model = Model(model_dict) self.assertEqual(id(model[y_1]), id(model_dict[y_1])) self.assertEqual(id(model[y_2]), id(model_dict[y_2])) self.assertEqual(len(model), len(model_dict)) self.assertEqual(model.items(), model_dict.items()) self.assertEqual(model.keys(), model_dict.keys()) self.assertEqual(list(model.values()), list(model_dict.values())) self.assertTrue(y_1 in model) self.assertFalse(model[y_1] in model)
def test_model_as_dict(): x, y_1, y_2 = variables('x, y_1, y_2') a, b = parameters('a, b') model_dict = OrderedDict([(y_1, a * x**2), (y_2, 2 * x * b)]) model = Model(model_dict) assert model[y_1] is model_dict[y_1] assert model[y_2] is model_dict[y_2] assert len(model) == len(model_dict) assert model.items() == model_dict.items() assert model.keys() == model_dict.keys() assert list(model.values()) == list(model_dict.values()) assert y_1 in model assert not model[y_1] in model