| OLD | NEW |
| 1 // Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file | 1 // Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file |
| 2 // for details. All rights reserved. Use of this source code is governed by a | 2 // for details. All rights reserved. Use of this source code is governed by a |
| 3 // BSD-style license that can be found in the LICENSE file. | 3 // BSD-style license that can be found in the LICENSE file. |
| 4 // | 4 // |
| 5 // Dart test program for testing native float and int arrays. 64-bit int arrays | 5 // Dart test program for testing native float and int arrays. 64-bit int arrays |
| 6 // are in a separate test. | 6 // are in a separate test. |
| 7 | 7 |
| 8 // Library tag to be able to run in html test framework. | 8 // Library tag to be able to run in html test framework. |
| 9 library TypedArray; | 9 library TypedArray; |
| 10 import "package:expect/expect.dart"; | 10 import "package:expect/expect.dart"; |
| (...skipping 15 matching lines...) Expand all Loading... |
| 26 // Int8 array. | 26 // Int8 array. |
| 27 Int8List initInt8() { | 27 Int8List initInt8() { |
| 28 var int8 = new Int8List(2); | 28 var int8 = new Int8List(2); |
| 29 int8[0] = 10; | 29 int8[0] = 10; |
| 30 int8[1] = 100; | 30 int8[1] = 100; |
| 31 return int8; | 31 return int8; |
| 32 } | 32 } |
| 33 Int8List int8 = initInt8(); | 33 Int8List int8 = initInt8(); |
| 34 | 34 |
| 35 void int8_receiver() { | 35 void int8_receiver() { |
| 36 var sp = spawnFunction(int8_sender); | 36 var response = new ReceivePort(); |
| 37 sp.call(int8.length).then((a) { | 37 var remote = Isolate.spawn(int8_sender, [int8.length, response.sendPort]); |
| 38 response.first.then((a) { |
| 38 Expect.equals(int8.length, a.length); | 39 Expect.equals(int8.length, a.length); |
| 39 for (int i = 0; i < a.length; i++) { | 40 for (int i = 0; i < a.length; i++) { |
| 40 Expect.equals(int8[i], a[i]); | 41 Expect.equals(int8[i], a[i]); |
| 41 } | 42 } |
| 42 print("int8_receiver"); | 43 print("int8_receiver"); |
| 43 }); | 44 }); |
| 44 } | 45 } |
| 45 | 46 |
| 46 int8_sender() { | 47 int8_sender(message) { |
| 47 port.receive((len, r) { | 48 var len = message[0]; |
| 48 Expect.equals(int8.length, len); | 49 var r = message[1]; |
| 49 var a = new Int8List(len); | 50 Expect.equals(int8.length, len); |
| 50 for (int i = 0; i < len; i++) { | 51 var a = new Int8List(len); |
| 51 a[i] = int8[i]; | 52 for (int i = 0; i < len; i++) { |
| 52 } | 53 a[i] = int8[i]; |
| 53 r.send(a); | 54 } |
| 54 }); | 55 r.send(a); |
| 55 } | 56 } |
| 56 | 57 |
| 57 | 58 |
| 58 // Uint8 array. | 59 // Uint8 array. |
| 59 Uint8List initUint8() { | 60 Uint8List initUint8() { |
| 60 var uint8 = new Uint8List(2); | 61 var uint8 = new Uint8List(2); |
| 61 uint8[0] = 0xff; | 62 uint8[0] = 0xff; |
| 62 uint8[1] = 0x7f; | 63 uint8[1] = 0x7f; |
| 63 return uint8; | 64 return uint8; |
| 64 } | 65 } |
| 65 Uint8List uint8 = initUint8(); | 66 Uint8List uint8 = initUint8(); |
| 66 | 67 |
| 67 void uint8_receiver() { | 68 void uint8_receiver() { |
| 68 var sp = spawnFunction(uint8_sender); | 69 var response = new ReceivePort(); |
| 69 sp.call(uint8.length).then((a) { | 70 var remote = Isolate.spawn(uint8_sender, [uint8.length, response.sendPort]); |
| 71 response.first.then((a) { |
| 70 Expect.equals(uint8.length, a.length); | 72 Expect.equals(uint8.length, a.length); |
| 71 for (int i = 0; i < a.length; i++) { | 73 for (int i = 0; i < a.length; i++) { |
| 72 Expect.equals(uint8[i], a[i]); | 74 Expect.equals(uint8[i], a[i]); |
| 73 } | 75 } |
| 74 print("uint8_receiver"); | 76 print("uint8_receiver"); |
| 75 }); | 77 }); |
| 76 } | 78 } |
| 77 | 79 |
| 78 uint8_sender() { | 80 uint8_sender(message) { |
| 79 port.receive((len, r) { | 81 var len = message[0]; |
| 80 Expect.equals(uint8.length, len); | 82 var r = message[1]; |
| 81 var a = new Uint8List(len); | 83 Expect.equals(uint8.length, len); |
| 82 for (int i = 0; i < len; i++) { | 84 var a = new Uint8List(len); |
| 83 a[i] = uint8[i]; | 85 for (int i = 0; i < len; i++) { |
| 84 } | 86 a[i] = uint8[i]; |
| 85 r.send(a); | 87 } |
| 86 }); | 88 r.send(a); |
| 87 } | 89 } |
| 88 | 90 |
| 89 | 91 |
| 90 // Int16 array. | 92 // Int16 array. |
| 91 Int16List initInt16() { | 93 Int16List initInt16() { |
| 92 var int16 = new Int16List(2); | 94 var int16 = new Int16List(2); |
| 93 int16[0] = 1000; | 95 int16[0] = 1000; |
| 94 int16[1] = 10000; | 96 int16[1] = 10000; |
| 95 return int16; | 97 return int16; |
| 96 } | 98 } |
| 97 Int16List int16 = initInt16(); | 99 Int16List int16 = initInt16(); |
| 98 | 100 |
| 99 void int16_receiver() { | 101 void int16_receiver() { |
| 100 var sp = spawnFunction(int16_sender); | 102 var response = new ReceivePort(); |
| 101 sp.call(int16.length).then((a) { | 103 var remote = Isolate.spawn(int16_sender, [int16.length, response.sendPort]); |
| 104 response.first.then((a) { |
| 102 Expect.equals(int16.length, a.length); | 105 Expect.equals(int16.length, a.length); |
| 103 for (int i = 0; i < a.length; i++) { | 106 for (int i = 0; i < a.length; i++) { |
| 104 Expect.equals(int16[i], a[i]); | 107 Expect.equals(int16[i], a[i]); |
| 105 } | 108 } |
| 106 print("int16_receiver"); | 109 print("int16_receiver"); |
| 107 }); | 110 }); |
| 108 } | 111 } |
| 109 | 112 |
| 110 int16_sender() { | 113 int16_sender(message) { |
| 111 port.receive((len, r) { | 114 var len = message[0]; |
| 112 Expect.equals(int16.length, len); | 115 var r = message[1]; |
| 113 var a = new Int16List(len); | 116 Expect.equals(int16.length, len); |
| 114 for (int i = 0; i < len; i++) { | 117 var a = new Int16List(len); |
| 115 a[i] = int16[i]; | 118 for (int i = 0; i < len; i++) { |
| 116 } | 119 a[i] = int16[i]; |
| 117 r.send(a); | 120 } |
| 118 }); | 121 r.send(a); |
| 119 } | 122 } |
| 120 | 123 |
| 121 | 124 |
| 122 // Uint16 array. | 125 // Uint16 array. |
| 123 Uint16List initUint16() { | 126 Uint16List initUint16() { |
| 124 var uint16 = new Uint16List(2); | 127 var uint16 = new Uint16List(2); |
| 125 uint16[0] = 0xffff; | 128 uint16[0] = 0xffff; |
| 126 uint16[1] = 0x7fff; | 129 uint16[1] = 0x7fff; |
| 127 return uint16; | 130 return uint16; |
| 128 } | 131 } |
| 129 Uint16List uint16 = initUint16(); | 132 Uint16List uint16 = initUint16(); |
| 130 | 133 |
| 131 void uint16_receiver() { | 134 void uint16_receiver() { |
| 132 var sp = spawnFunction(uint16_sender); | 135 var response = new ReceivePort(); |
| 133 sp.call(uint16.length).then((a) { | 136 var remote = Isolate.spawn(uint16_sender, [uint16.length, response.sendPort]); |
| 137 response.first.then((a) { |
| 134 Expect.equals(uint16.length, a.length); | 138 Expect.equals(uint16.length, a.length); |
| 135 for (int i = 0; i < a.length; i++) { | 139 for (int i = 0; i < a.length; i++) { |
| 136 Expect.equals(uint16[i], a[i]); | 140 Expect.equals(uint16[i], a[i]); |
| 137 } | 141 } |
| 138 print("uint16_receiver"); | 142 print("uint16_receiver"); |
| 139 }); | 143 }); |
| 140 } | 144 } |
| 141 | 145 |
| 142 uint16_sender() { | 146 uint16_sender(message) { |
| 143 port.receive((len, r) { | 147 var len = message[0]; |
| 144 Expect.equals(uint16.length, len); | 148 var r = message[1]; |
| 145 var a = new Uint16List(len); | 149 Expect.equals(uint16.length, len); |
| 146 for (int i = 0; i < len; i++) { | 150 var a = new Uint16List(len); |
| 147 a[i] = uint16[i]; | 151 for (int i = 0; i < len; i++) { |
| 148 } | 152 a[i] = uint16[i]; |
| 149 r.send(a); | 153 } |
| 150 }); | 154 r.send(a); |
| 151 } | 155 } |
| 152 | 156 |
| 153 | 157 |
| 154 // Int32 array. | 158 // Int32 array. |
| 155 Int32List initInt32() { | 159 Int32List initInt32() { |
| 156 var int32 = new Int32List(2); | 160 var int32 = new Int32List(2); |
| 157 int32[0] = 100000; | 161 int32[0] = 100000; |
| 158 int32[1] = 1000000; | 162 int32[1] = 1000000; |
| 159 return int32; | 163 return int32; |
| 160 } | 164 } |
| 161 Int32List int32 = initInt32(); | 165 Int32List int32 = initInt32(); |
| 162 | 166 |
| 163 void int32_receiver() { | 167 void int32_receiver() { |
| 164 var sp = spawnFunction(int32_sender); | 168 var response = new ReceivePort(); |
| 165 sp.call(int32.length).then((a) { | 169 var remote = Isolate.spawn(int32_sender, [int32.length, response.sendPort]); |
| 170 response.first.then((a) { |
| 166 Expect.equals(int32.length, a.length); | 171 Expect.equals(int32.length, a.length); |
| 167 for (int i = 0; i < a.length; i++) { | 172 for (int i = 0; i < a.length; i++) { |
| 168 Expect.equals(int32[i], a[i]); | 173 Expect.equals(int32[i], a[i]); |
| 169 } | 174 } |
| 170 print("int32_receiver"); | 175 print("int32_receiver"); |
| 171 }); | 176 }); |
| 172 } | 177 } |
| 173 | 178 |
| 174 int32_sender() { | 179 int32_sender(message) { |
| 175 port.receive((len, r) { | 180 var len = message[0]; |
| 176 Expect.equals(int32.length, len); | 181 var r = message[1]; |
| 177 var a = new Int32List(len); | 182 Expect.equals(int32.length, len); |
| 178 for (int i = 0; i < len; i++) { | 183 var a = new Int32List(len); |
| 179 a[i] = int32[i]; | 184 for (int i = 0; i < len; i++) { |
| 180 } | 185 a[i] = int32[i]; |
| 181 r.send(a); | 186 } |
| 182 }); | 187 r.send(a); |
| 183 } | 188 } |
| 184 | 189 |
| 185 | 190 |
| 186 // Uint32 array. | 191 // Uint32 array. |
| 187 Uint32List initUint32() { | 192 Uint32List initUint32() { |
| 188 var uint32 = new Uint32List(2); | 193 var uint32 = new Uint32List(2); |
| 189 uint32[0] = 0xffffffff; | 194 uint32[0] = 0xffffffff; |
| 190 uint32[1] = 0x7fffffff; | 195 uint32[1] = 0x7fffffff; |
| 191 return uint32; | 196 return uint32; |
| 192 } | 197 } |
| 193 Uint32List uint32 = initUint32(); | 198 Uint32List uint32 = initUint32(); |
| 194 | 199 |
| 195 void uint32_receiver() { | 200 void uint32_receiver() { |
| 196 var sp = spawnFunction(uint32_sender); | 201 var response = new ReceivePort(); |
| 197 sp.call(uint32.length).then((a) { | 202 var remote = Isolate.spawn(uint32_sender, [uint32.length, response.sendPort]); |
| 203 response.first.then((a) { |
| 198 Expect.equals(uint32.length, a.length); | 204 Expect.equals(uint32.length, a.length); |
| 199 for (int i = 0; i < a.length; i++) { | 205 for (int i = 0; i < a.length; i++) { |
| 200 Expect.equals(uint32[i], a[i]); | 206 Expect.equals(uint32[i], a[i]); |
| 201 } | 207 } |
| 202 print("uint32_receiver"); | 208 print("uint32_receiver"); |
| 203 }); | 209 }); |
| 204 } | 210 } |
| 205 | 211 |
| 206 uint32_sender() { | 212 uint32_sender(message) { |
| 207 port.receive((len, r) { | 213 var len = message[0]; |
| 208 Expect.equals(uint32.length, len); | 214 var r = message[1]; |
| 209 var a = new Uint32List(len); | 215 Expect.equals(uint32.length, len); |
| 210 for (int i = 0; i < len; i++) { | 216 var a = new Uint32List(len); |
| 211 a[i] = uint32[i]; | 217 for (int i = 0; i < len; i++) { |
| 212 } | 218 a[i] = uint32[i]; |
| 213 r.send(a); | 219 } |
| 214 }); | 220 r.send(a); |
| 215 } | 221 } |
| 216 | 222 |
| 217 | 223 |
| 218 // Float32 Array. | 224 // Float32 Array. |
| 219 Float32List initFloat32() { | 225 Float32List initFloat32() { |
| 220 var float32 = new Float32List(2); | 226 var float32 = new Float32List(2); |
| 221 float32[0] = 1.0; | 227 float32[0] = 1.0; |
| 222 float32[1] = 2.0; | 228 float32[1] = 2.0; |
| 223 return float32; | 229 return float32; |
| 224 } | 230 } |
| 225 Float32List float32 = initFloat32(); | 231 Float32List float32 = initFloat32(); |
| 226 | 232 |
| 227 void float32_receiver() { | 233 void float32_receiver() { |
| 228 var sp = spawnFunction(float32_sender); | 234 var response = new ReceivePort(); |
| 229 sp.call(float32.length).then((a) { | 235 var remote = |
| 236 Isolate.spawn(float32_sender, [float32.length, response.sendPort]); |
| 237 response.first.then((a) { |
| 230 Expect.equals(float32.length, a.length); | 238 Expect.equals(float32.length, a.length); |
| 231 for (int i = 0; i < a.length; i++) { | 239 for (int i = 0; i < a.length; i++) { |
| 232 Expect.equals(float32[i], a[i]); | 240 Expect.equals(float32[i], a[i]); |
| 233 } | 241 } |
| 234 print("float32_receiver"); | 242 print("float32_receiver"); |
| 235 }); | 243 }); |
| 236 } | 244 } |
| 237 | 245 |
| 238 float32_sender() { | 246 float32_sender(message) { |
| 239 port.receive((len, r) { | 247 var len = message[0]; |
| 240 Expect.equals(float32.length, len); | 248 var r = message[1]; |
| 241 var a = new Float32List(len); | 249 Expect.equals(float32.length, len); |
| 242 for (int i = 0; i < len; i++) { | 250 var a = new Float32List(len); |
| 243 a[i] = float32[i]; | 251 for (int i = 0; i < len; i++) { |
| 244 } | 252 a[i] = float32[i]; |
| 245 r.send(a); | 253 } |
| 246 }); | 254 r.send(a); |
| 247 } | 255 } |
| 248 | 256 |
| 249 | 257 |
| 250 // Float64 Array. | 258 // Float64 Array. |
| 251 Float64List initFloat64() { | 259 Float64List initFloat64() { |
| 252 var float64 = new Float64List(2); | 260 var float64 = new Float64List(2); |
| 253 float64[0] = 101.234; | 261 float64[0] = 101.234; |
| 254 float64[1] = 201.765; | 262 float64[1] = 201.765; |
| 255 return float64; | 263 return float64; |
| 256 } | 264 } |
| 257 Float64List float64 = initFloat64(); | 265 Float64List float64 = initFloat64(); |
| 258 | 266 |
| 259 void float64_receiver() { | 267 void float64_receiver() { |
| 260 var sp = spawnFunction(float64_sender); | 268 var response = new ReceivePort(); |
| 261 sp.call(float64.length).then((a) { | 269 var remote = |
| 270 Isolate.spawn(float64_sender, [float64.length, response.sendPort]); |
| 271 response.first.then((a) { |
| 262 Expect.equals(float64.length, a.length); | 272 Expect.equals(float64.length, a.length); |
| 263 for (int i = 0; i < a.length; i++) { | 273 for (int i = 0; i < a.length; i++) { |
| 264 Expect.equals(float64[i], a[i]); | 274 Expect.equals(float64[i], a[i]); |
| 265 } | 275 } |
| 266 print("float64_receiver"); | 276 print("float64_receiver"); |
| 267 }); | 277 }); |
| 268 } | 278 } |
| 269 | 279 |
| 270 float64_sender() { | 280 float64_sender(message) { |
| 271 port.receive((len, r) { | 281 var len = message[0]; |
| 272 Expect.equals(float64.length, len); | 282 var r = message[1]; |
| 273 var a = new Float64List(len); | 283 Expect.equals(float64.length, len); |
| 274 for (int i = 0; i < len; i++) { | 284 var a = new Float64List(len); |
| 275 a[i] = float64[i]; | 285 for (int i = 0; i < len; i++) { |
| 276 } | 286 a[i] = float64[i]; |
| 277 r.send(a); | 287 } |
| 278 }); | 288 r.send(a); |
| 279 } | 289 } |
| OLD | NEW |