 }
 
 TEST(Transform, GPUBinary) {
-  using namespace paddle::platform;
-  using namespace paddle::memory;
   int buf[4] = {1, 2, 3, 4};
   CUDAPlace gpu0(0);
   CUDADeviceContext ctx(gpu0);
   int* gpu_buf = static_cast<int*>(Alloc(gpu0, sizeof(buf)));
   Copy(gpu0, gpu_buf, CPUPlace(), buf, sizeof(buf), ctx.stream());
-  Transform<paddle::platform::CUDADeviceContext> trans;
+  Transform<CUDADeviceContext> trans;
   trans(ctx, gpu_buf, gpu_buf + 4, gpu_buf, gpu_buf, Multiply<int>());
   ctx.Wait();
   Copy(CPUPlace(), buf, gpu0, gpu_buf, sizeof(buf), ctx.stream());

#include "paddle/fluid/platform/hostdevice.h"
#include "paddle/fluid/platform/transform.h"

template <typename T>
class Scale {
 public:
  explicit Scale(const T& scale) : scale_(scale) {}

  HOSTDEVICE T operator()(const T& a) const { return a * scale_; }

 private:

  HOSTDEVICE T operator()(const T& a, const T& b) const { return a * b; }
};

}  // namespace

using paddle::memory::Alloc;
using paddle::memory::Free;
using paddle::memory::Copy;

using paddle::platform::CPUPlace;
using paddle::platform::CUDAPlace;
using paddle::platform::CPUDeviceContext;
using paddle::platform::CUDADeviceContext;

using paddle::platform::Transform;

TEST(Transform, CPUUnary) {
  CPUDeviceContext ctx;
  float buf[4] = {0.1, 0.2, 0.3, 0.4};
  Transform<CPUDeviceContext> trans;
  trans(ctx, buf, buf + 4, buf, Scale<float>(10));
  for (int i = 0; i < 4; ++i) {
    ASSERT_NEAR(buf[i], static_cast<float>(i + 1), 1e-5);
