16cac172ca1fedbed3a1b2b3ddd82856aa6345393Arthur Eubanks/*
26cac172ca1fedbed3a1b2b3ddd82856aa6345393Arthur Eubanks * Copyright (C) 2017 The Android Open Source Project
36cac172ca1fedbed3a1b2b3ddd82856aa6345393Arthur Eubanks *
46cac172ca1fedbed3a1b2b3ddd82856aa6345393Arthur Eubanks * Licensed under the Apache License, Version 2.0 (the "License");
56cac172ca1fedbed3a1b2b3ddd82856aa6345393Arthur Eubanks * you may not use this file except in compliance with the License.
66cac172ca1fedbed3a1b2b3ddd82856aa6345393Arthur Eubanks * You may obtain a copy of the License at
76cac172ca1fedbed3a1b2b3ddd82856aa6345393Arthur Eubanks *
86cac172ca1fedbed3a1b2b3ddd82856aa6345393Arthur Eubanks *      http://www.apache.org/licenses/LICENSE-2.0
96cac172ca1fedbed3a1b2b3ddd82856aa6345393Arthur Eubanks *
106cac172ca1fedbed3a1b2b3ddd82856aa6345393Arthur Eubanks * Unless required by applicable law or agreed to in writing, software
116cac172ca1fedbed3a1b2b3ddd82856aa6345393Arthur Eubanks * distributed under the License is distributed on an "AS IS" BASIS,
126cac172ca1fedbed3a1b2b3ddd82856aa6345393Arthur Eubanks * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
136cac172ca1fedbed3a1b2b3ddd82856aa6345393Arthur Eubanks * See the License for the specific language governing permissions and
146cac172ca1fedbed3a1b2b3ddd82856aa6345393Arthur Eubanks * limitations under the License.
156cac172ca1fedbed3a1b2b3ddd82856aa6345393Arthur Eubanks */
166cac172ca1fedbed3a1b2b3ddd82856aa6345393Arthur Eubanks
176cac172ca1fedbed3a1b2b3ddd82856aa6345393Arthur Eubankspackage com.android.rs.unittest;
186cac172ca1fedbed3a1b2b3ddd82856aa6345393Arthur Eubanks
196cac172ca1fedbed3a1b2b3ddd82856aa6345393Arthur Eubanksimport android.content.Context;
206cac172ca1fedbed3a1b2b3ddd82856aa6345393Arthur Eubanksimport android.content.res.Resources;
216cac172ca1fedbed3a1b2b3ddd82856aa6345393Arthur Eubanksimport android.renderscript.Allocation;
226cac172ca1fedbed3a1b2b3ddd82856aa6345393Arthur Eubanksimport android.renderscript.Element;
236cac172ca1fedbed3a1b2b3ddd82856aa6345393Arthur Eubanksimport android.renderscript.RenderScript;
246cac172ca1fedbed3a1b2b3ddd82856aa6345393Arthur Eubanksimport android.renderscript.Sampler;
256cac172ca1fedbed3a1b2b3ddd82856aa6345393Arthur Eubanksimport android.renderscript.Type;
266cac172ca1fedbed3a1b2b3ddd82856aa6345393Arthur Eubanks
276cac172ca1fedbed3a1b2b3ddd82856aa6345393Arthur Eubankspublic class UT_apitest extends UnitTest {
286cac172ca1fedbed3a1b2b3ddd82856aa6345393Arthur Eubanks
296cac172ca1fedbed3a1b2b3ddd82856aa6345393Arthur Eubanks    public UT_apitest(Context ctx) {
306cac172ca1fedbed3a1b2b3ddd82856aa6345393Arthur Eubanks        super("API Test", ctx);
316cac172ca1fedbed3a1b2b3ddd82856aa6345393Arthur Eubanks    }
326cac172ca1fedbed3a1b2b3ddd82856aa6345393Arthur Eubanks
336cac172ca1fedbed3a1b2b3ddd82856aa6345393Arthur Eubanks    public void run() {
346cac172ca1fedbed3a1b2b3ddd82856aa6345393Arthur Eubanks        RenderScript pRS = createRenderScript(true);
356cac172ca1fedbed3a1b2b3ddd82856aa6345393Arthur Eubanks        ScriptC_apitest s = new ScriptC_apitest(pRS);
366cac172ca1fedbed3a1b2b3ddd82856aa6345393Arthur Eubanks        Element elem = Element.I8(pRS);
376cac172ca1fedbed3a1b2b3ddd82856aa6345393Arthur Eubanks        Type.Builder typeBuilder = new Type.Builder(pRS, elem);
386cac172ca1fedbed3a1b2b3ddd82856aa6345393Arthur Eubanks
396cac172ca1fedbed3a1b2b3ddd82856aa6345393Arthur Eubanks        int x = 5;
406cac172ca1fedbed3a1b2b3ddd82856aa6345393Arthur Eubanks        int y = 7;
416cac172ca1fedbed3a1b2b3ddd82856aa6345393Arthur Eubanks        int z = 0;  // Don't actually setZ()
426cac172ca1fedbed3a1b2b3ddd82856aa6345393Arthur Eubanks        s.set_x(x);
436cac172ca1fedbed3a1b2b3ddd82856aa6345393Arthur Eubanks        s.set_y(y);
446cac172ca1fedbed3a1b2b3ddd82856aa6345393Arthur Eubanks        s.set_z(z);
456cac172ca1fedbed3a1b2b3ddd82856aa6345393Arthur Eubanks        typeBuilder.setX(x).setY(y);
466cac172ca1fedbed3a1b2b3ddd82856aa6345393Arthur Eubanks        Type type = typeBuilder.create();
476cac172ca1fedbed3a1b2b3ddd82856aa6345393Arthur Eubanks        Allocation alloc = Allocation.createTyped(pRS, type);
486cac172ca1fedbed3a1b2b3ddd82856aa6345393Arthur Eubanks        Allocation allocDst = Allocation.createTyped(pRS, type);
496cac172ca1fedbed3a1b2b3ddd82856aa6345393Arthur Eubanks        Sampler sampler = Sampler.CLAMP_NEAREST(pRS);
506cac172ca1fedbed3a1b2b3ddd82856aa6345393Arthur Eubanks        s.set_elemNonNull(elem);
516cac172ca1fedbed3a1b2b3ddd82856aa6345393Arthur Eubanks        s.set_typeNonNull(type);
526cac172ca1fedbed3a1b2b3ddd82856aa6345393Arthur Eubanks        s.set_allocNonNull(alloc);
536cac172ca1fedbed3a1b2b3ddd82856aa6345393Arthur Eubanks        s.set_allocDst(allocDst);
546cac172ca1fedbed3a1b2b3ddd82856aa6345393Arthur Eubanks        s.set_samplerNonNull(sampler);
556cac172ca1fedbed3a1b2b3ddd82856aa6345393Arthur Eubanks        s.set_scriptNonNull(s);
566cac172ca1fedbed3a1b2b3ddd82856aa6345393Arthur Eubanks        s.bind_allocPtr(alloc);
576cac172ca1fedbed3a1b2b3ddd82856aa6345393Arthur Eubanks
586cac172ca1fedbed3a1b2b3ddd82856aa6345393Arthur Eubanks        s.invoke_api_test();
596cac172ca1fedbed3a1b2b3ddd82856aa6345393Arthur Eubanks        pRS.finish();
606cac172ca1fedbed3a1b2b3ddd82856aa6345393Arthur Eubanks        pRS.destroy();
616cac172ca1fedbed3a1b2b3ddd82856aa6345393Arthur Eubanks    }
626cac172ca1fedbed3a1b2b3ddd82856aa6345393Arthur Eubanks}
63