def METHOD_NAME(session, lib_path, tf_device):
    """test add lib with TensorFlow wrapper"""
    module = tf_op.OpModule(lib_path)
    left = tf.placeholder("float32", shape=[4])
    right = tf.placeholder("float32", shape=[4])
    feed_dict = {left: [1.0, 2.0, 3.0, 4.0], right: [5.0, 6.0, 7.0, 8.0]}
    expect = np.asarray([6.0, 8.0, 10.0, 12.0])
    add1 = module.func("vector_add", output_shape=[4], output_dtype="float")
    add2 = module.func("vector_add", output_shape=tf.shape(left), output_dtype="float")
    add3 = module.func("vector_add", output_shape=[tf.shape(left)[0]], output_dtype="float")
    with tf.device(tf_device):
        output1 = session.run(add1(left, right), feed_dict)
        np.testing.assert_equal(output1, expect)
        output2 = session.run(add2(left, right), feed_dict)
        np.testing.assert_equal(output2, expect)
        output3 = session.run(add3(left, right), feed_dict)
        np.testing.assert_equal(output3, expect)