def METHOD_NAME(proto_json_patch):
    # FeatureVector contains "repeated<feast.types.Value> values" proto field.
    # We want to test that feast.types.Value can take different types in JSON
    # without using additional structure (e.g. 1 instead of {int64_val: 1}).
    feature_vector_str = """{
        "values": [
            1,
            2.0,
            true,
            "foo",
            [1, 2, 3],
            [2.0, 3.0, 4.0, null],
            [true, false, true],
            ["foo", "bar", "foobar"]
        ]
    }"""
    feature_vector_proto = FeatureVector()
    Parse(feature_vector_str, feature_vector_proto)
    assertpy.assert_that(len(feature_vector_proto.values)).is_equal_to(8)
    assertpy.assert_that(feature_vector_proto.values[0].int64_val).is_equal_to(1)
    assertpy.assert_that(feature_vector_proto.values[1].double_val).is_equal_to(2.0)
    assertpy.assert_that(feature_vector_proto.values[2].bool_val).is_equal_to(True)
    assertpy.assert_that(feature_vector_proto.values[3].string_val).is_equal_to("foo")
    assertpy.assert_that(feature_vector_proto.values[4].int64_list_val.val).is_equal_to(
        [1, 2, 3]
    )
    # Can't directly check equality to [2.0, 3.0, 4.0, float("nan")], because float("nan") != float("nan")
    assertpy.assert_that(
        feature_vector_proto.values[5].double_list_val.val[:3]
    ).is_equal_to([2.0, 3.0, 4.0])
    assertpy.assert_that(feature_vector_proto.values[5].double_list_val.val[3]).is_nan()
    assertpy.assert_that(feature_vector_proto.values[6].bool_list_val.val).is_equal_to(
        [True, False, True]
    )
    assertpy.assert_that(
        feature_vector_proto.values[7].string_list_val.val
    ).is_equal_to(["foo", "bar", "foobar"])
    # Now convert protobuf back to json and check that
    feature_vector_json = MessageToDict(feature_vector_proto)
    assertpy.assert_that(len(feature_vector_json["values"])).is_equal_to(8)
    assertpy.assert_that(feature_vector_json["values"][0]).is_equal_to(1)
    assertpy.assert_that(feature_vector_json["values"][1]).is_equal_to(2.0)
    assertpy.assert_that(feature_vector_json["values"][2]).is_equal_to(True)
    assertpy.assert_that(feature_vector_json["values"][3]).is_equal_to("foo")
    assertpy.assert_that(feature_vector_json["values"][4]).is_equal_to([1, 2, 3])
    # Can't directly check equality to [2.0, 3.0, 4.0, float("nan")], because float("nan") != float("nan")
    assertpy.assert_that(feature_vector_json["values"][5][:3]).is_equal_to(
        [2.0, 3.0, 4.0]
    )
    assertpy.assert_that(feature_vector_json["values"][5][3]).is_nan()
    assertpy.assert_that(feature_vector_json["values"][6]).is_equal_to(
        [True, False, True]
    )
    assertpy.assert_that(feature_vector_json["values"][7]).is_equal_to(
        ["foo", "bar", "foobar"]
    )