r = require("rename4")

function part1()
  local xyz = r.XYZInt()
  local notxyz = r.NotXYZInt()
  xyz:opIntPtrA()
  xyz:opIntPtrB()
  xyz:opAnother2()
  xyz:opT2()
  xyz:tMethod2(0)
  xyz:tMethodNotXYZ2(notxyz)
  xyz:opNotXYZ2()
end

function part2()
  local xyz = r.XYZDouble()
  local notxyz = r.NotXYZDouble()
  xyz:opIntPtrA()
  xyz:opIntPtrB()
  xyz:opAnother1()
  xyz:opT1()
  xyz:tMethod1(0)
  xyz:tMethodNotXYZ1(notxyz)
  xyz:opNotXYZ1()
end

function part3()
  local xyz = r.XYZKlass()
  local notxyz = r.NotXYZKlass()
  xyz:opIntPtrA()
  xyz:opIntPtrB()
  xyz:opAnother3()
  xyz:opT3()
  xyz:tMethod3(r.Klass())
  xyz:tMethodNotXYZ3(notxyz)
  xyz:opNotXYZ3()
end

function part4()
  local xyz = r.XYZEnu()
  local notxyz = r.NotXYZEnu()
  xyz:opIntPtrA()
  xyz:opIntPtrB()
  xyz:opAnother4()
  xyz:opT4()
  xyz:tMethod4(r.En1)
  xyz:tMethodNotXYZ4(notxyz)
  xyz:opNotXYZ4()
end

function part5()
  local abc = r.ABC()
  abc:methodABC(abc)
  local k = r.Klass()
  abc:methodKlass(k)
  local a = abc:opABC()
  k = abc:opKlass()
end

part1()
part2()
part3()
part4()
part5()
