blob: 4ed3097bc92066af7930f726e2293f3bedc1d70b [file] [log] [blame]
/*
* Copyright (C) 2011 The Android Open Source Project
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package com.android.rs.test;
import android.content.Context;
import android.renderscript.Byte2;
import android.renderscript.Byte3;
import android.renderscript.Byte4;
import android.renderscript.Double2;
import android.renderscript.Double3;
import android.renderscript.Double4;
import android.renderscript.Float2;
import android.renderscript.Float3;
import android.renderscript.Float4;
import android.renderscript.Int2;
import android.renderscript.Int3;
import android.renderscript.Int4;
import android.renderscript.Long2;
import android.renderscript.Long3;
import android.renderscript.Long4;
import android.renderscript.RenderScript;
import android.renderscript.Short2;
import android.renderscript.Short3;
import android.renderscript.Short4;
public class UT_vector extends UnitTest {
protected UT_vector(RSTestCore rstc, Context ctx) {
super(rstc, "Vector", ctx);
}
private boolean initializeGlobals(ScriptC_vector s) {
Float2 F2 = s.get_f2();
if (F2.x != 1.0f || F2.y != 2.0f) {
return false;
}
F2.x = 2.99f;
F2.y = 3.99f;
s.set_f2(F2);
Float3 F3 = s.get_f3();
if (F3.x != 1.0f || F3.y != 2.0f || F3.z != 3.0f) {
return false;
}
F3.x = 2.99f;
F3.y = 3.99f;
F3.z = 4.99f;
s.set_f3(F3);
Float4 F4 = s.get_f4();
if (F4.x != 1.0f || F4.y != 2.0f || F4.z != 3.0f || F4.w != 4.0f) {
return false;
}
F4.x = 2.99f;
F4.y = 3.99f;
F4.z = 4.99f;
F4.w = 5.99f;
s.set_f4(F4);
Double2 D2 = s.get_d2();
if (D2.x != 1.0 || D2.y != 2.0) {
return false;
}
D2.x = 2.99;
D2.y = 3.99;
s.set_d2(D2);
Double3 D3 = s.get_d3();
if (D3.x != 1.0 || D3.y != 2.0 || D3.z != 3.0) {
return false;
}
D3.x = 2.99;
D3.y = 3.99;
D3.z = 4.99;
s.set_d3(D3);
Double4 D4 = s.get_d4();
if (D4.x != 1.0 || D4.y != 2.0 || D4.z != 3.0 || D4.w != 4.0) {
return false;
}
D4.x = 2.99;
D4.y = 3.99;
D4.z = 4.99;
D4.w = 5.99;
s.set_d4(D4);
Byte2 B2 = s.get_i8_2();
if (B2.x != 1 || B2.y != 2) {
return false;
}
B2.x = 2;
B2.y = 3;
s.set_i8_2(B2);
Byte3 B3 = s.get_i8_3();
if (B3.x != 1 || B3.y != 2 || B3.z != 3) {
return false;
}
B3.x = 2;
B3.y = 3;
B3.z = 4;
s.set_i8_3(B3);
Byte4 B4 = s.get_i8_4();
if (B4.x != 1 || B4.y != 2 || B4.z != 3 || B4.w != 4) {
return false;
}
B4.x = 2;
B4.y = 3;
B4.z = 4;
B4.w = 5;
s.set_i8_4(B4);
Short2 S2 = s.get_u8_2();
if (S2.x != 1 || S2.y != 2) {
return false;
}
S2.x = 2;
S2.y = 3;
s.set_u8_2(S2);
Short3 S3 = s.get_u8_3();
if (S3.x != 1 || S3.y != 2 || S3.z != 3) {
return false;
}
S3.x = 2;
S3.y = 3;
S3.z = 4;
s.set_u8_3(S3);
Short4 S4 = s.get_u8_4();
if (S4.x != 1 || S4.y != 2 || S4.z != 3 || S4.w != 4) {
return false;
}
S4.x = 2;
S4.y = 3;
S4.z = 4;
S4.w = 5;
s.set_u8_4(S4);
S2 = s.get_i16_2();
if (S2.x != 1 || S2.y != 2) {
return false;
}
S2.x = 2;
S2.y = 3;
s.set_i16_2(S2);
S3 = s.get_i16_3();
if (S3.x != 1 || S3.y != 2 || S3.z != 3) {
return false;
}
S3.x = 2;
S3.y = 3;
S3.z = 4;
s.set_i16_3(S3);
S4 = s.get_i16_4();
if (S4.x != 1 || S4.y != 2 || S4.z != 3 || S4.w != 4) {
return false;
}
S4.x = 2;
S4.y = 3;
S4.z = 4;
S4.w = 5;
s.set_i16_4(S4);
Int2 I2 = s.get_u16_2();
if (I2.x != 1 || I2.y != 2) {
return false;
}
I2.x = 2;
I2.y = 3;
s.set_u16_2(I2);
Int3 I3 = s.get_u16_3();
if (I3.x != 1 || I3.y != 2 || I3.z != 3) {
return false;
}
I3.x = 2;
I3.y = 3;
I3.z = 4;
s.set_u16_3(I3);
Int4 I4 = s.get_u16_4();
if (I4.x != 1 || I4.y != 2 || I4.z != 3 || I4.w != 4) {
return false;
}
I4.x = 2;
I4.y = 3;
I4.z = 4;
I4.w = 5;
s.set_u16_4(I4);
I2 = s.get_i32_2();
if (I2.x != 1 || I2.y != 2) {
return false;
}
I2.x = 2;
I2.y = 3;
s.set_i32_2(I2);
I3 = s.get_i32_3();
if (I3.x != 1 || I3.y != 2 || I3.z != 3) {
return false;
}
I3.x = 2;
I3.y = 3;
I3.z = 4;
s.set_i32_3(I3);
I4 = s.get_i32_4();
if (I4.x != 1 || I4.y != 2 || I4.z != 3 || I4.w != 4) {
return false;
}
I4.x = 2;
I4.y = 3;
I4.z = 4;
I4.w = 5;
s.set_i32_4(I4);
Long2 L2 = s.get_u32_2();
if (L2.x != 1 || L2.y != 2) {
return false;
}
L2.x = 2;
L2.y = 3;
s.set_u32_2(L2);
Long3 L3 = s.get_u32_3();
if (L3.x != 1 || L3.y != 2 || L3.z != 3) {
return false;
}
L3.x = 2;
L3.y = 3;
L3.z = 4;
s.set_u32_3(L3);
Long4 L4 = s.get_u32_4();
if (L4.x != 1 || L4.y != 2 || L4.z != 3 || L4.w != 4) {
return false;
}
L4.x = 2;
L4.y = 3;
L4.z = 4;
L4.w = 5;
s.set_u32_4(L4);
L2 = s.get_i64_2();
if (L2.x != 1 || L2.y != 2) {
return false;
}
L2.x = 2;
L2.y = 3;
s.set_i64_2(L2);
L3 = s.get_i64_3();
if (L3.x != 1 || L3.y != 2 || L3.z != 3) {
return false;
}
L3.x = 2;
L3.y = 3;
L3.z = 4;
s.set_i64_3(L3);
L4 = s.get_i64_4();
if (L4.x != 1 || L4.y != 2 || L4.z != 3 || L4.w != 4) {
return false;
}
L4.x = 2;
L4.y = 3;
L4.z = 4;
L4.w = 5;
s.set_i64_4(L4);
L2 = s.get_u64_2();
if (L2.x != 1 || L2.y != 2) {
return false;
}
L2.x = 2;
L2.y = 3;
s.set_u64_2(L2);
L3 = s.get_u64_3();
if (L3.x != 1 || L3.y != 2 || L3.z != 3) {
return false;
}
L3.x = 2;
L3.y = 3;
L3.z = 4;
s.set_u64_3(L3);
L4 = s.get_u64_4();
if (L4.x != 1 || L4.y != 2 || L4.z != 3 || L4.w != 4) {
return false;
}
L4.x = 2;
L4.y = 3;
L4.z = 4;
L4.w = 5;
s.set_u64_4(L4);
return true;
}
public void run() {
RenderScript pRS = RenderScript.create(mCtx);
ScriptC_vector s = new ScriptC_vector(pRS);
pRS.setMessageHandler(mRsMessage);
if (!initializeGlobals(s)) {
failTest();
} else {
s.invoke_vector_test();
pRS.finish();
waitForMessage();
}
s.destroy();
pRS.destroy();
}
}