10d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks// This file is automatically generated from
20d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks// frameworks/rs/tests/java_api/RSUnitTests/RSUnitTests.py
30d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks/*
40d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks * Copyright (C) 2017 The Android Open Source Project
50d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks *
60d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks * Licensed under the Apache License, Version 2.0 (the "License");
70d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks * you may not use this file except in compliance with the License.
80d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks * You may obtain a copy of the License at
90d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks *
100d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks *      http://www.apache.org/licenses/LICENSE-2.0
110d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks *
120d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks * Unless required by applicable law or agreed to in writing, software
130d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks * distributed under the License is distributed on an "AS IS" BASIS,
140d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
150d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks * See the License for the specific language governing permissions and
160d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks * limitations under the License.
170d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks */
180d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks
190d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubankspackage com.android.rs.unittest;
200d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks
210d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanksimport android.content.Context;
220d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanksimport android.support.v8.renderscript.RenderScript;
230d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanksimport android.support.v8.renderscript.Sampler;
240d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks
250d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubankspublic class UT_sampler extends UnitTest {
260d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks    Sampler minification;
270d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks    Sampler magnification;
280d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks    Sampler wrapS;
290d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks    Sampler wrapT;
300d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks    Sampler anisotropy;
310d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks
320d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks    public UT_sampler(Context ctx) {
330d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks        super("Sampler", ctx);
340d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks    }
350d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks
360d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks    private Sampler.Builder getDefaultBuilder(RenderScript RS) {
370d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks        Sampler.Builder b = new Sampler.Builder(RS);
380d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks        b.setMinification(Sampler.Value.NEAREST);
390d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks        b.setMagnification(Sampler.Value.NEAREST);
400d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks        b.setWrapS(Sampler.Value.CLAMP);
410d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks        b.setWrapT(Sampler.Value.CLAMP);
420d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks        b.setAnisotropy(1.0f);
430d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks        return b;
440d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks    }
450d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks
460d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks    private void initializeGlobals(RenderScript RS, ScriptC_sampler s) {
470d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks        Sampler.Builder b = getDefaultBuilder(RS);
480d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks        b.setMinification(Sampler.Value.LINEAR_MIP_LINEAR);
490d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks        minification = b.create();
500d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks
510d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks        b = getDefaultBuilder(RS);
520d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks        b.setMagnification(Sampler.Value.LINEAR);
530d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks        magnification = b.create();
540d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks
550d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks        b = getDefaultBuilder(RS);
560d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks        b.setWrapS(Sampler.Value.WRAP);
570d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks        wrapS = b.create();
580d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks
590d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks        b = getDefaultBuilder(RS);
600d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks        b.setWrapT(Sampler.Value.WRAP);
610d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks        wrapT = b.create();
620d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks
630d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks        b = getDefaultBuilder(RS);
640d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks        b.setAnisotropy(8.0f);
650d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks        anisotropy = b.create();
660d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks
670d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks        s.set_minification(minification);
680d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks        s.set_magnification(magnification);
690d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks        s.set_wrapS(wrapS);
700d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks        s.set_wrapT(wrapT);
710d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks        s.set_anisotropy(anisotropy);
720d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks    }
730d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks
740d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks    private void testScriptSide(RenderScript pRS) {
750d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks        ScriptC_sampler s = new ScriptC_sampler(pRS);
760d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks        initializeGlobals(pRS, s);
770d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks        s.invoke_sampler_test();
780d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks        pRS.finish();
790d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks        s.destroy();
800d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks    }
810d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks
820d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks    private void testJavaSide(RenderScript pRS) {
830d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks        _RS_ASSERT("minification.getMagnification() == Sampler.Value.NEAREST",
840d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks                minification.getMagnification() == Sampler.Value.NEAREST);
850d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks        _RS_ASSERT("minification.getMinification() == Sampler.Value.LINEAR_MIP_LINEAR",
860d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks                minification.getMinification() == Sampler.Value.LINEAR_MIP_LINEAR);
870d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks        _RS_ASSERT("minification.getWrapS() == Sampler.Value.CLAMP",
880d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks                minification.getWrapS() == Sampler.Value.CLAMP);
890d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks        _RS_ASSERT("minification.getWrapT() == Sampler.Value.CLAMP",
900d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks                minification.getWrapT() == Sampler.Value.CLAMP);
910d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks        _RS_ASSERT("minification.getAnisotropy() == 1.0f",
920d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks                minification.getAnisotropy() == 1.0f);
930d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks
940d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks        _RS_ASSERT("magnification.getMagnification() == Sampler.Value.LINEAR",
950d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks                magnification.getMagnification() == Sampler.Value.LINEAR);
960d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks        _RS_ASSERT("magnification.getMinification() == Sampler.Value.NEAREST",
970d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks                magnification.getMinification() == Sampler.Value.NEAREST);
980d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks        _RS_ASSERT("magnification.getWrapS() == Sampler.Value.CLAMP",
990d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks                magnification.getWrapS() == Sampler.Value.CLAMP);
1000d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks        _RS_ASSERT("magnification.getWrapT() == Sampler.Value.CLAMP",
1010d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks                magnification.getWrapT() == Sampler.Value.CLAMP);
1020d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks        _RS_ASSERT("magnification.getAnisotropy() == 1.0f",
1030d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks                magnification.getAnisotropy() == 1.0f);
1040d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks
1050d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks        _RS_ASSERT("wrapS.getMagnification() == Sampler.Value.NEAREST",
1060d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks                wrapS.getMagnification() == Sampler.Value.NEAREST);
1070d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks        _RS_ASSERT("wrapS.getMinification() == Sampler.Value.NEAREST",
1080d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks                wrapS.getMinification() == Sampler.Value.NEAREST);
1090d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks        _RS_ASSERT("wrapS.getWrapS() == Sampler.Value.WRAP",
1100d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks                wrapS.getWrapS() == Sampler.Value.WRAP);
1110d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks        _RS_ASSERT("wrapS.getWrapT() == Sampler.Value.CLAMP",
1120d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks                wrapS.getWrapT() == Sampler.Value.CLAMP);
1130d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks        _RS_ASSERT("wrapS.getAnisotropy() == 1.0f",
1140d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks                wrapS.getAnisotropy() == 1.0f);
1150d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks
1160d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks        _RS_ASSERT("wrapT.getMagnification() == Sampler.Value.NEAREST",
1170d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks                wrapT.getMagnification() == Sampler.Value.NEAREST);
1180d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks        _RS_ASSERT("wrapT.getMinification() == Sampler.Value.NEAREST",
1190d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks                wrapT.getMinification() == Sampler.Value.NEAREST);
1200d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks        _RS_ASSERT("wrapT.getWrapS() == Sampler.Value.CLAMP",
1210d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks                wrapT.getWrapS() == Sampler.Value.CLAMP);
1220d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks        _RS_ASSERT("wrapT.getWrapT() == Sampler.Value.WRAP",
1230d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks                wrapT.getWrapT() == Sampler.Value.WRAP);
1240d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks        _RS_ASSERT("wrapT.getAnisotropy() == 1.0f",
1250d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks                wrapT.getAnisotropy() == 1.0f);
1260d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks
1270d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks        _RS_ASSERT("anisotropy.getMagnification() == Sampler.Value.NEAREST",
1280d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks                anisotropy.getMagnification() == Sampler.Value.NEAREST);
1290d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks        _RS_ASSERT("anisotropy.getMinification() == Sampler.Value.NEAREST",
1300d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks                anisotropy.getMinification() == Sampler.Value.NEAREST);
1310d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks        _RS_ASSERT("anisotropy.getWrapS() == Sampler.Value.CLAMP",
1320d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks                anisotropy.getWrapS() == Sampler.Value.CLAMP);
1330d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks        _RS_ASSERT("anisotropy.getWrapT() == Sampler.Value.CLAMP",
1340d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks                anisotropy.getWrapT() == Sampler.Value.CLAMP);
1350d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks        _RS_ASSERT("anisotropy.getAnisotropy() == 1.0f",
1360d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks                anisotropy.getAnisotropy() == 8.0f);
1370d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks    }
1380d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks
1390d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks    public void run() {
1400d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks        RenderScript pRS = createRenderScript(true);
1410d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks        testScriptSide(pRS);
1420d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks        testJavaSide(pRS);
1430d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks        passTest();
1440d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks        pRS.destroy();
1450d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks    }
1460d13f3929129bf7e34bde1ed3670195c37a180ebArthur Eubanks}
147