def test_change_constants(self): volatile = frozenset('b') volatile_dict = FrozenDict(b=ExpressionScalar('b')) ds = DictScope(FrozenDict({'a': 1, 'b': 2}), volatile=volatile) changes = {'b': 3, 'c': 4} ds2 = ds.change_constants(changes) self.assertEqual({'a': 1, 'b': 2}, dict(ds)) self.assertEqual(volatile_dict, ds.get_volatile_parameters()) self.assertEqual({'a': 1, 'b': 3}, dict(ds2)) self.assertEqual(volatile_dict, ds2.get_volatile_parameters()) with self.assertWarns(NonVolatileChange): ds.change_constants({'a': 2, 'b': 3, 'c': 4})
def test_get_volatile(self): volatile = frozenset('ab') volatile_dict = FrozenDict(a=ExpressionScalar('a'), b=ExpressionScalar('b')) ds = DictScope(FrozenDict({'a': 1, 'b': 2}), volatile=volatile) self.assertEqual(volatile_dict, ds.get_volatile_parameters())