| // Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file |
| // for details. All rights reserved. Use of this source code is governed by a |
| // BSD-style license that can be found in the LICENSE file. |
| |
| import 'dart:html'; |
| import 'dart:typed_data'; |
| |
| import 'package:expect/minitest.dart'; |
| |
| main() { |
| // Only perform tests if ArrayBuffer is supported. |
| if (!Platform.supportsTypedData) { |
| return; |
| } |
| |
| test('viewTest_dynamic', () { |
| var a1 = new Uint8List(1024); |
| for (int i = 0; i < a1.length; i++) { |
| a1[i] = i; // 0,1,2,...,254,255,0,1,2,... |
| } |
| |
| var a2 = new Uint32List.view(a1.buffer); |
| expect(1024 ~/ 4, a2.length); |
| expect(a2[0], 0x03020100); |
| expect(a2[1], 0x07060504); |
| expect(a2[2], 0x0B0A0908); |
| expect(a2[50], 0xCBCAC9C8); |
| expect(a2[51], 0xCFCECDCC); |
| expect(a2[64], 0x03020100); |
| |
| a2 = new Uint32List.view(a1.buffer, 200); |
| expect(a2.length, (1024 - 200) ~/ 4); |
| expect(a2[0], 0xCBCAC9C8); |
| expect(a2[1], 0xCFCECDCC); |
| expect(a2[14], 0x03020100); |
| |
| a2 = new Uint32List.view(a1.buffer, 456, 20); |
| expect(a2.length, 20); |
| expect(a2[0], 0xCBCAC9C8); |
| expect(a2[1], 0xCFCECDCC); |
| expect(a2[14], 0x03020100); |
| |
| // OPTIONALS a2 = new Uint32List.view(a1.buffer, length: 30, byteOffset: 456); |
| a2 = new Uint32List.view(a1.buffer, 456, 30); |
| expect(a2.length, 30); |
| expect(a2[0], 0xCBCAC9C8); |
| expect(a2[1], 0xCFCECDCC); |
| expect(a2[14], 0x03020100); |
| }); |
| |
| test('viewTest_typed', () { |
| Uint8List a1 = new Uint8List(1024); |
| for (int i = 0; i < a1.length; i++) { |
| a1[i] = i; |
| } |
| |
| Uint32List a2 = new Uint32List.view(a1.buffer); |
| expect(a2.length, 1024 ~/ 4); |
| expect(a2[0], 0x03020100); |
| expect(a2[50], 0xCBCAC9C8); |
| expect(a2[51], 0xCFCECDCC); |
| expect(a2[64], 0x03020100); |
| |
| a2 = new Uint32List.view(a1.buffer, 200); |
| expect(a2.length, (1024 - 200) ~/ 4); |
| expect(a2[0], 0xCBCAC9C8); |
| expect(a2[1], 0xCFCECDCC); |
| expect(a2[14], 0x03020100); |
| |
| a2 = new Uint32List.view(a1.buffer, 456, 20); |
| expect(20, a2.length); |
| expect(a2[0], 0xCBCAC9C8); |
| expect(a2[1], 0xCFCECDCC); |
| expect(a2[14], 0x03020100); |
| |
| // OPTIONALS a2 = new Uint32List.view(a1.buffer, length: 30, byteOffset: 456); |
| a2 = new Uint32List.view(a1.buffer, 456, 30); |
| expect(a2.length, 30); |
| expect(a2[0], 0xCBCAC9C8); |
| expect(a2[1], 0xCFCECDCC); |
| expect(a2[14], 0x03020100); |
| }); |
| } |