def testUnpackMinDiffData(self):
        # Tensor.
        tensor = tf.fill([3, 4], 1.3)
        packed_inputs = input_utils.MinDiffPackedInputs(None, tensor)
        unpacked_tensor = input_utils.unpack_min_diff_data(packed_inputs)
        self.assertIs(unpacked_tensor, tensor)

        # Tuple of Tensors.
        tensors = ({
            "f1": tf.fill([1, 2], 2),
            "f2": tf.fill([4, 5], "a")
        }, None, tf.fill([4, 1], 1.0))
        packed_inputs = input_utils.MinDiffPackedInputs(None, tensors)
        unpacked_tensors = input_utils.unpack_min_diff_data(packed_inputs)
        self.assertIs(unpacked_tensors, tensors)

        # Arbitrary object.
        obj = set(["a", "b", "c"])
        packed_inputs = input_utils.MinDiffPackedInputs(None, obj)
        unpacked_obj = input_utils.unpack_min_diff_data(packed_inputs)
        self.assertIs(unpacked_obj, obj)

        # None.
        packed_inputs = input_utils.MinDiffPackedInputs(None, None)
        unpacked_obj = input_utils.unpack_min_diff_data(packed_inputs)
        self.assertIsNone(unpacked_obj)
    def testUnpackOriginal(self):
        # Tensor.
        tensor = tf.fill([3, 4], 1.3)
        packed_inputs = input_utils.MinDiffPackedInputs(tensor, None)
        unpacked_tensor = input_utils.unpack_original_inputs(packed_inputs)
        self.assertIs(unpacked_tensor, tensor)

        # Dict of Tensors.
        tensors = {"f1": tf.fill([1, 2], 2), "f2": tf.fill([4, 5], "a")}
        packed_inputs = input_utils.MinDiffPackedInputs(tensors, None)
        unpacked_tensors = input_utils.unpack_original_inputs(packed_inputs)
        self.assertIs(unpacked_tensors, tensors)

        # Arbitrary object.
        obj = set(["a", "b", "c"])
        packed_inputs = input_utils.MinDiffPackedInputs(obj, None)
        unpacked_obj = input_utils.unpack_original_inputs(packed_inputs)
        self.assertIs(unpacked_obj, obj)

        # None.
        packed_inputs = input_utils.MinDiffPackedInputs(None, None)
        unpacked_obj = input_utils.unpack_original_inputs(packed_inputs)
        self.assertIsNone(unpacked_obj)