1/* 2 * Copyright (C) 2017 The Android Open Source Project 3 * 4 * Licensed under the Apache License, Version 2.0 (the "License"); 5 * you may not use this file except in compliance with the License. 6 * You may obtain a copy of the License at 7 * 8 * http://www.apache.org/licenses/LICENSE-2.0 9 * 10 * Unless required by applicable law or agreed to in writing, software 11 * distributed under the License is distributed on an "AS IS" BASIS, 12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 * See the License for the specific language governing permissions and 14 * limitations under the License. 15 */ 16 17package com.android.rs.unittest; 18 19import android.content.Context; 20import android.renderscript.Byte2; 21import android.renderscript.Byte3; 22import android.renderscript.Byte4; 23import android.renderscript.Double2; 24import android.renderscript.Double3; 25import android.renderscript.Double4; 26import android.renderscript.Float2; 27import android.renderscript.Float3; 28import android.renderscript.Float4; 29import android.renderscript.Int2; 30import android.renderscript.Int3; 31import android.renderscript.Int4; 32import android.renderscript.Long2; 33import android.renderscript.Long3; 34import android.renderscript.Long4; 35import android.renderscript.RenderScript; 36import android.renderscript.Short2; 37import android.renderscript.Short3; 38import android.renderscript.Short4; 39 40public class UT_vector extends UnitTest { 41 42 public UT_vector(Context ctx) { 43 super("Vector", ctx); 44 } 45 46 private boolean initializeGlobals(ScriptC_vector s) { 47 Float2 F2 = s.get_f2(); 48 if (F2.x != 1.0f || F2.y != 2.0f) { 49 return false; 50 } 51 F2.x = 2.99f; 52 F2.y = 3.99f; 53 s.set_f2(F2); 54 55 Float3 F3 = s.get_f3(); 56 if (F3.x != 1.0f || F3.y != 2.0f || F3.z != 3.0f) { 57 return false; 58 } 59 F3.x = 2.99f; 60 F3.y = 3.99f; 61 F3.z = 4.99f; 62 s.set_f3(F3); 63 64 Float4 F4 = s.get_f4(); 65 if (F4.x != 1.0f || F4.y != 2.0f || F4.z != 3.0f || F4.w != 4.0f) { 66 return false; 67 } 68 F4.x = 2.99f; 69 F4.y = 3.99f; 70 F4.z = 4.99f; 71 F4.w = 5.99f; 72 s.set_f4(F4); 73 74 Double2 D2 = s.get_d2(); 75 if (D2.x != 1.0 || D2.y != 2.0) { 76 return false; 77 } 78 D2.x = 2.99; 79 D2.y = 3.99; 80 s.set_d2(D2); 81 82 Double3 D3 = s.get_d3(); 83 if (D3.x != 1.0 || D3.y != 2.0 || D3.z != 3.0) { 84 return false; 85 } 86 D3.x = 2.99; 87 D3.y = 3.99; 88 D3.z = 4.99; 89 s.set_d3(D3); 90 91 Double4 D4 = s.get_d4(); 92 if (D4.x != 1.0 || D4.y != 2.0 || D4.z != 3.0 || D4.w != 4.0) { 93 return false; 94 } 95 D4.x = 2.99; 96 D4.y = 3.99; 97 D4.z = 4.99; 98 D4.w = 5.99; 99 s.set_d4(D4); 100 101 Byte2 B2 = s.get_i8_2(); 102 if (B2.x != 1 || B2.y != 2) { 103 return false; 104 } 105 B2.x = 2; 106 B2.y = 3; 107 s.set_i8_2(B2); 108 109 Byte3 B3 = s.get_i8_3(); 110 if (B3.x != 1 || B3.y != 2 || B3.z != 3) { 111 return false; 112 } 113 B3.x = 2; 114 B3.y = 3; 115 B3.z = 4; 116 s.set_i8_3(B3); 117 118 Byte4 B4 = s.get_i8_4(); 119 if (B4.x != 1 || B4.y != 2 || B4.z != 3 || B4.w != 4) { 120 return false; 121 } 122 B4.x = 2; 123 B4.y = 3; 124 B4.z = 4; 125 B4.w = 5; 126 s.set_i8_4(B4); 127 128 Short2 S2 = s.get_u8_2(); 129 if (S2.x != 1 || S2.y != 2) { 130 return false; 131 } 132 S2.x = 2; 133 S2.y = 3; 134 s.set_u8_2(S2); 135 136 Short3 S3 = s.get_u8_3(); 137 if (S3.x != 1 || S3.y != 2 || S3.z != 3) { 138 return false; 139 } 140 S3.x = 2; 141 S3.y = 3; 142 S3.z = 4; 143 s.set_u8_3(S3); 144 145 Short4 S4 = s.get_u8_4(); 146 if (S4.x != 1 || S4.y != 2 || S4.z != 3 || S4.w != 4) { 147 return false; 148 } 149 S4.x = 2; 150 S4.y = 3; 151 S4.z = 4; 152 S4.w = 5; 153 s.set_u8_4(S4); 154 155 S2 = s.get_i16_2(); 156 if (S2.x != 1 || S2.y != 2) { 157 return false; 158 } 159 S2.x = 2; 160 S2.y = 3; 161 s.set_i16_2(S2); 162 163 S3 = s.get_i16_3(); 164 if (S3.x != 1 || S3.y != 2 || S3.z != 3) { 165 return false; 166 } 167 S3.x = 2; 168 S3.y = 3; 169 S3.z = 4; 170 s.set_i16_3(S3); 171 172 S4 = s.get_i16_4(); 173 if (S4.x != 1 || S4.y != 2 || S4.z != 3 || S4.w != 4) { 174 return false; 175 } 176 S4.x = 2; 177 S4.y = 3; 178 S4.z = 4; 179 S4.w = 5; 180 s.set_i16_4(S4); 181 182 Int2 I2 = s.get_u16_2(); 183 if (I2.x != 1 || I2.y != 2) { 184 return false; 185 } 186 I2.x = 2; 187 I2.y = 3; 188 s.set_u16_2(I2); 189 190 Int3 I3 = s.get_u16_3(); 191 if (I3.x != 1 || I3.y != 2 || I3.z != 3) { 192 return false; 193 } 194 I3.x = 2; 195 I3.y = 3; 196 I3.z = 4; 197 s.set_u16_3(I3); 198 199 Int4 I4 = s.get_u16_4(); 200 if (I4.x != 1 || I4.y != 2 || I4.z != 3 || I4.w != 4) { 201 return false; 202 } 203 I4.x = 2; 204 I4.y = 3; 205 I4.z = 4; 206 I4.w = 5; 207 s.set_u16_4(I4); 208 209 I2 = s.get_i32_2(); 210 if (I2.x != 1 || I2.y != 2) { 211 return false; 212 } 213 I2.x = 2; 214 I2.y = 3; 215 s.set_i32_2(I2); 216 217 I3 = s.get_i32_3(); 218 if (I3.x != 1 || I3.y != 2 || I3.z != 3) { 219 return false; 220 } 221 I3.x = 2; 222 I3.y = 3; 223 I3.z = 4; 224 s.set_i32_3(I3); 225 226 I4 = s.get_i32_4(); 227 if (I4.x != 1 || I4.y != 2 || I4.z != 3 || I4.w != 4) { 228 return false; 229 } 230 I4.x = 2; 231 I4.y = 3; 232 I4.z = 4; 233 I4.w = 5; 234 s.set_i32_4(I4); 235 236 Long2 L2 = s.get_u32_2(); 237 if (L2.x != 1 || L2.y != 2) { 238 return false; 239 } 240 L2.x = 2; 241 L2.y = 3; 242 s.set_u32_2(L2); 243 244 Long3 L3 = s.get_u32_3(); 245 if (L3.x != 1 || L3.y != 2 || L3.z != 3) { 246 return false; 247 } 248 L3.x = 2; 249 L3.y = 3; 250 L3.z = 4; 251 s.set_u32_3(L3); 252 253 Long4 L4 = s.get_u32_4(); 254 if (L4.x != 1 || L4.y != 2 || L4.z != 3 || L4.w != 4) { 255 return false; 256 } 257 L4.x = 2; 258 L4.y = 3; 259 L4.z = 4; 260 L4.w = 5; 261 s.set_u32_4(L4); 262 263 L2 = s.get_i64_2(); 264 if (L2.x != 1 || L2.y != 2) { 265 return false; 266 } 267 L2.x = 2; 268 L2.y = 3; 269 s.set_i64_2(L2); 270 271 L3 = s.get_i64_3(); 272 if (L3.x != 1 || L3.y != 2 || L3.z != 3) { 273 return false; 274 } 275 L3.x = 2; 276 L3.y = 3; 277 L3.z = 4; 278 s.set_i64_3(L3); 279 280 L4 = s.get_i64_4(); 281 if (L4.x != 1 || L4.y != 2 || L4.z != 3 || L4.w != 4) { 282 return false; 283 } 284 L4.x = 2; 285 L4.y = 3; 286 L4.z = 4; 287 L4.w = 5; 288 s.set_i64_4(L4); 289 290 L2 = s.get_u64_2(); 291 if (L2.x != 1 || L2.y != 2) { 292 return false; 293 } 294 L2.x = 2; 295 L2.y = 3; 296 s.set_u64_2(L2); 297 298 L3 = s.get_u64_3(); 299 if (L3.x != 1 || L3.y != 2 || L3.z != 3) { 300 return false; 301 } 302 L3.x = 2; 303 L3.y = 3; 304 L3.z = 4; 305 s.set_u64_3(L3); 306 307 L4 = s.get_u64_4(); 308 if (L4.x != 1 || L4.y != 2 || L4.z != 3 || L4.w != 4) { 309 return false; 310 } 311 L4.x = 2; 312 L4.y = 3; 313 L4.z = 4; 314 L4.w = 5; 315 s.set_u64_4(L4); 316 317 return true; 318 } 319 320 public void run() { 321 RenderScript pRS = createRenderScript(true); 322 ScriptC_vector s = new ScriptC_vector(pRS); 323 if (!initializeGlobals(s)) { 324 failTest(); 325 } else { 326 s.invoke_vector_test(); 327 pRS.finish(); 328 } 329 s.destroy(); 330 pRS.destroy(); 331 } 332} 333