def testMergeOptionsDifferentType(self): options1, options2 = _TestOptions(), _NestedTestOptions() with self.assertRaisesRegex( TypeError, r"Could not merge incompatible options of type " r"\<class \'__main__._NestedTestOptions\'\> and " r"\<class \'__main__._TestOptions\'\>."): options.merge_options(options1, options2)
def testMergeOptions(self): options1, options2 = _TestOptions(), _TestOptions() with self.assertRaises(ValueError): options.merge_options() merged_options = options.merge_options(options1, options2) self.assertEqual(merged_options.x, 42) self.assertEqual(merged_options.y, 3.14) options1.x = 0 options2.y = 0.0 merged_options = options.merge_options(options1, options2) self.assertEqual(merged_options.x, 0) self.assertEqual(merged_options.y, 0.0)
def testMergeOptions(self): options1, options2 = _TestOptions(), _TestOptions() with self.assertRaises(ValueError): options.merge_options() merged_options = options.merge_options(options1, options2) self.assertEqual(merged_options.x, 42) self.assertEqual(merged_options.y, 3.14) options1.x = 0 options2.y = 0.0 merged_options = options.merge_options(options1, options2) self.assertEqual(merged_options.x, 0) self.assertEqual(merged_options.y, 0.0)
def testMergeNestedOptions(self): options1, options2 = _NestedTestOptions(), _NestedTestOptions() merged_options = options.merge_options(options1, options2) self.assertEqual(merged_options.opts, None) options1.opts = _TestOptions() merged_options = options.merge_options(options1, options2) self.assertEqual(merged_options.opts, _TestOptions()) options2.opts = _TestOptions() merged_options = options.merge_options(options1, options2) self.assertEqual(merged_options.opts, _TestOptions()) options1.opts.x = 0 options2.opts.y = 0.0 merged_options = options.merge_options(options1, options2) self.assertEqual(merged_options.opts.x, 0) self.assertEqual(merged_options.opts.y, 0.0)
def testMergeNestedOptions(self): options1, options2 = _NestedTestOptions(), _NestedTestOptions() merged_options = options.merge_options(options1, options2) self.assertEqual(merged_options.opts, None) options1.opts = _TestOptions() merged_options = options.merge_options(options1, options2) self.assertEqual(merged_options.opts, _TestOptions()) options2.opts = _TestOptions() merged_options = options.merge_options(options1, options2) self.assertEqual(merged_options.opts, _TestOptions()) options1.opts.x = 0 options2.opts.y = 0.0 merged_options = options.merge_options(options1, options2) self.assertEqual(merged_options.opts.x, 0) self.assertEqual(merged_options.opts.y, 0.0)
def merge(self, options): """Merges itself with the given `tf.data.Options`. If this object and the `options` to merge set an option differently, a warning is generated and this object's value is updated with the `options` object's value. Args: options: The `tf.data.Options` to merge with. Returns: New `tf.data.Options` object which is the result of merging self with the input `tf.data.Options`. """ return options_lib.merge_options(self, options)
def testMergeOptionsInvalid(self): with self.assertRaises(TypeError): options.merge_options(0) options1, options2 = _TestOptions(), _NestedTestOptions() with self.assertRaises(TypeError): options.merge_options(options1, options2)
def testMergeOptionsWrongType(self): with self.assertRaisesRegex( TypeError, "All options to be merged should inherit from " r"\`OptionsBase\` but found option of type \<class \'int\'\> which " "does not."): options.merge_options(1, 2, 3)
def testMergeNoOptions(self): with self.assertRaisesRegex(ValueError, "At least one options should be provided"): options.merge_options()
def testMergeOptionsInvalid(self): with self.assertRaises(TypeError): options.merge_options(0) options1, options2 = _TestOptions(), _NestedTestOptions() with self.assertRaises(TypeError): options.merge_options(options1, options2)