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 library typed_arrays_dataview_test; | 5 library typed_arrays_dataview_test; |
6 import '../../pkg/unittest/lib/unittest.dart'; | 6 import '../../pkg/unittest/lib/unittest.dart'; |
7 import '../../pkg/unittest/lib/html_config.dart'; | 7 import '../../pkg/unittest/lib/html_config.dart'; |
8 import 'dart:html'; | 8 import 'dart:html'; |
9 import 'dart:typed_data'; | 9 import 'dart:typed_data'; |
10 | 10 |
11 main() { | 11 main() { |
12 useHtmlConfiguration(); | 12 useHtmlConfiguration(); |
13 | 13 |
14 // Only perform tests if ArrayBuffer is supported. | 14 // Only perform tests if ArrayBuffer is supported. |
15 if (!Platform.supportsTypedData) { | 15 if (!Platform.supportsTypedData) { |
16 return; | 16 return; |
17 } | 17 } |
18 | 18 |
| 19 test('create', () { |
| 20 var bd = new ByteData(100); |
| 21 expect(bd.lengthInBytes, 100); |
| 22 expect(bd.offsetInBytes, 0); |
| 23 |
| 24 var a1 = new Uint8List.fromList([1,2,3,4,5,6,7,8]); |
| 25 |
| 26 var bd2 = new ByteData.view(a1.buffer); |
| 27 expect(bd2.lengthInBytes, 8); |
| 28 expect(bd2.offsetInBytes, 0); |
| 29 |
| 30 var bd3 = new ByteData.view(a1.buffer, 2); |
| 31 expect(bd3.lengthInBytes, 6); |
| 32 expect(bd3.offsetInBytes, 2); |
| 33 |
| 34 var bd4 = new ByteData.view(a1.buffer, 3, 4); |
| 35 expect(bd4.lengthInBytes, 4); |
| 36 expect(bd4.offsetInBytes, 3); |
| 37 }); |
| 38 |
19 test('access8', () { | 39 test('access8', () { |
20 var a1 = new Uint8List.fromList([0,0,3,255,0,0,0,0,0,0]); | 40 var a1 = new Uint8List.fromList([0,0,3,255,0,0,0,0,0,0]); |
21 | 41 |
22 var dv = new ByteData.view(a1.buffer, 2, 6); | 42 var bd = new ByteData.view(a1.buffer, 2, 6); |
23 | 43 |
24 expect(dv.getInt8(0), equals(3)); | 44 expect(bd.getInt8(0), equals(3)); |
25 expect(dv.getInt8(1), equals(-1)); | 45 expect(bd.getInt8(1), equals(-1)); |
26 expect(dv.getUint8(0), equals(3)); | 46 expect(bd.getUint8(0), equals(3)); |
27 expect(dv.getUint8(1), equals(255)); | 47 expect(bd.getUint8(1), equals(255)); |
28 | 48 |
29 dv.setInt8(2, -56); | 49 bd.setInt8(2, -56); |
30 expect(dv.getInt8(2), equals(-56)); | 50 expect(bd.getInt8(2), equals(-56)); |
31 expect(dv.getUint8(2), equals(200)); | 51 expect(bd.getUint8(2), equals(200)); |
32 | 52 |
33 dv.setUint8(3, 200); | 53 bd.setUint8(3, 200); |
34 expect(dv.getInt8(3), equals(-56)); | 54 expect(bd.getInt8(3), equals(-56)); |
35 expect(dv.getUint8(3), equals(200)); | 55 expect(bd.getUint8(3), equals(200)); |
36 }); | 56 }); |
37 | 57 |
38 test('access16', () { | 58 test('access16', () { |
39 var a1 = new Uint8List.fromList([0,0,3,255,0,0,0,0,0,0]); | 59 var a1 = new Uint8List.fromList([0,0,3,255,0,0,0,0,0,0]); |
40 | 60 |
41 var dv = new ByteData.view(a1.buffer, 2); | 61 var bd = new ByteData.view(a1.buffer, 2); |
42 | 62 |
43 expect(dv.lengthInBytes, equals(10 - 2)); | 63 expect(bd.lengthInBytes, equals(10 - 2)); |
44 | 64 |
45 expect(dv.getInt16(0), equals(1023)); | 65 expect(bd.getInt16(0), equals(1023)); |
46 expect(dv.getInt16(0, Endianness.BIG_ENDIAN), equals(1023)); | 66 expect(bd.getInt16(0, Endianness.BIG_ENDIAN), equals(1023)); |
47 expect(dv.getInt16(0, Endianness.LITTLE_ENDIAN), equals(-253)); | 67 expect(bd.getInt16(0, Endianness.LITTLE_ENDIAN), equals(-253)); |
48 | 68 |
49 expect(dv.getUint16(0), equals(1023)); | 69 expect(bd.getUint16(0), equals(1023)); |
50 expect(dv.getUint16(0, Endianness.BIG_ENDIAN), equals(1023)); | 70 expect(bd.getUint16(0, Endianness.BIG_ENDIAN), equals(1023)); |
51 expect(dv.getUint16(0, Endianness.LITTLE_ENDIAN), equals(0xFF03)); | 71 expect(bd.getUint16(0, Endianness.LITTLE_ENDIAN), equals(0xFF03)); |
52 | 72 |
53 dv.setInt16(2, -1); | 73 bd.setInt16(2, -1); |
54 expect(dv.getInt16(2), equals(-1)); | 74 expect(bd.getInt16(2), equals(-1)); |
55 expect(dv.getUint16(2), equals(0xFFFF)); | 75 expect(bd.getUint16(2), equals(0xFFFF)); |
56 }); | 76 }); |
57 | 77 |
58 test('access32', () { | 78 test('access32', () { |
59 var a1 = new Uint8List.fromList([0,0,3,255,0,0,0,0,0,0]); | 79 var a1 = new Uint8List.fromList([0,0,3,255,0,0,0,0,0,0]); |
60 | 80 |
61 var dv = new ByteData.view(a1.buffer); | 81 var bd = new ByteData.view(a1.buffer); |
62 | 82 |
63 expect(dv.getInt32(0), equals(1023)); | 83 expect(bd.getInt32(0), equals(1023)); |
64 expect(dv.getInt32(0, Endianness.BIG_ENDIAN), equals(1023)); | 84 expect(bd.getInt32(0, Endianness.BIG_ENDIAN), equals(1023)); |
65 expect(dv.getInt32(0, Endianness.LITTLE_ENDIAN), equals(-0xFD0000)); | 85 expect(bd.getInt32(0, Endianness.LITTLE_ENDIAN), equals(-0xFD0000)); |
66 | 86 |
67 expect(dv.getUint32(0), equals(1023)); | 87 expect(bd.getUint32(0), equals(1023)); |
68 expect(dv.getUint32(0, Endianness.BIG_ENDIAN), equals(1023)); | 88 expect(bd.getUint32(0, Endianness.BIG_ENDIAN), equals(1023)); |
69 expect(dv.getUint32(0, Endianness.LITTLE_ENDIAN), equals(0xFF030000)); | 89 expect(bd.getUint32(0, Endianness.LITTLE_ENDIAN), equals(0xFF030000)); |
70 }); | 90 }); |
71 | 91 |
72 } | 92 } |
OLD | NEW |