def METHOD_NAME():
  """Generates test cases for the MapAndFilterFusion optimization."""
  identity = lambda x: x
  increment = lambda x: x + 1
  minus_five = lambda x: x - 5
  def increment_and_square(x):
    y = x + 1
    return y * y
  take_all = lambda x: constant_op.constant(True)
  is_zero = lambda x: math_ops.equal(x, 0)
  is_odd = lambda x: math_ops.equal(x % 2, 0)
  greater = lambda x: math_ops.greater(x + 5, 0)
  functions = [identity, increment, minus_five, increment_and_square]
  filters = [take_all, is_zero, is_odd, greater]
  tests = []
  for x, fun in enumerate(functions):
    for y, predicate in enumerate(filters):
      tests.append(("Mixed{}{}".format(x, y), fun, predicate))
  # Multi output
  tests.append(("Multi1", lambda x: (x, x),
                lambda x, y: constant_op.constant(True)))
  tests.append(
      ("Multi2", lambda x: (x, 2),
       lambda x, y: math_ops.equal(x * math_ops.cast(y, dtypes.int64), 0)))
  return tuple(tests)