def test_add_data_block(self): model = param_example.create_model() sens = SensitivityInterface(model, clone_model=False) block = sens._add_data_block() self.assertIs(sens.block.parent_block(), sens.model_instance) self.assertIs(sens.block.ctype, Block) self.assertEqual(sens.block.local_name, sens.get_default_block_name()) with self.assertRaises(RuntimeError) as ex: sens._add_data_block() # We just tried adding the same block twice. self.assertIn("Cannot add component", str(ex.exception)) # Try re-adding the same block, but this time we are prepared # for it to already exist. new_block = sens._add_data_block(existing_block=block) self.assertIsNot(block, new_block) new_block._has_replaced_expressions = True with self.assertRaises(RuntimeError) as ex: sens._add_data_block(existing_block=new_block) # Cannot remove and re-add sensitivity block if expressions # were replaced. self.assertIn("Re-using sensitivity interface", str(ex.exception))
def test_get_names(self): block_name = SensitivityInterface.get_default_block_name() self.assertEqual(block_name, "_SENSITIVITY_TOOLBOX_DATA") var_name = 'var' sens_var_name = SensitivityInterface.get_default_var_name(var_name) self.assertEqual(sens_var_name, var_name) param_name = 'param' sens_param_name = SensitivityInterface.get_default_param_name( param_name) self.assertEqual(sens_param_name, param_name)