mirror of
https://github.com/dart-lang/sdk
synced 2024-09-05 16:41:07 +00:00
![Leaf Petersen](/assets/img/avatar_default.png)
Change-Id: Ib33169c3e0ffc870915c189404074a1dea472546 Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/196548 Reviewed-by: Bob Nystrom <rnystrom@google.com> Commit-Queue: Leaf Petersen <leafp@google.com>
86 lines
2.9 KiB
Dart
86 lines
2.9 KiB
Dart
// Copyright (c) 2013, 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.
|
|
//
|
|
// Dart test program for testing typed data.
|
|
|
|
// @dart = 2.9
|
|
|
|
// Library tag to be able to run in html test framework.
|
|
library TypedDataTest;
|
|
|
|
import "package:expect/expect.dart";
|
|
import 'dart:typed_data';
|
|
|
|
validate(List list, num expected) {
|
|
for (int i = 0; i < list.length; i++) {
|
|
Expect.equals(expected, list[i]);
|
|
}
|
|
}
|
|
|
|
testView() {
|
|
var list = new Int8List(128);
|
|
for (var i = 0; i < list.length; i++) {
|
|
list[i] = 42;
|
|
}
|
|
var ba = list.buffer;
|
|
|
|
var slist = new Int16List.view(ba, 0, 32);
|
|
validate(slist, 10794);
|
|
var uslist = new Uint16List.view(ba, 0, 32);
|
|
validate(uslist, 10794);
|
|
|
|
var ilist = new Int32List.view(ba, 0, 16);
|
|
validate(ilist, 707406378);
|
|
var uilist = new Uint32List.view(ba, 0, 16);
|
|
validate(uilist, 707406378);
|
|
|
|
var llist = new Int64List.view(ba, 0, 8);
|
|
validate(llist, 3038287259199220266);
|
|
var ullist = new Uint64List.view(ba, 0, 8);
|
|
validate(ullist, 3038287259199220266);
|
|
|
|
var flist = new Float32List.view(ba, 0, 16);
|
|
validate(flist, 1.511366173271439e-13);
|
|
var dlist = new Float64List.view(ba, 0, 8);
|
|
validate(dlist, 1.4260258159703532e-105);
|
|
}
|
|
|
|
testSetters() {
|
|
var blist = new ByteData(128);
|
|
blist.setInt8(0, 0xffff);
|
|
Expect.equals(-1, blist.getInt8(0));
|
|
blist.setUint8(0, 0xffff);
|
|
Expect.equals(0xff, blist.getUint8(0));
|
|
blist.setInt16(0, 0xffffffff);
|
|
Expect.equals(-1, blist.getInt16(0, Endian.little));
|
|
blist.setUint16(0, 0xffffffff, Endian.little);
|
|
Expect.equals(0xffff, blist.getUint16(0, Endian.little));
|
|
blist.setInt32(0, 0xffffffffffff, Endian.little);
|
|
Expect.equals(-1, blist.getInt32(0, Endian.little));
|
|
blist.setUint32(0, 0xffffffffffff, Endian.little);
|
|
Expect.equals(0xffffffff, blist.getUint32(0, Endian.little));
|
|
blist.setInt64(0, 0xffffffffffffffff, Endian.little);
|
|
Expect.equals(-1, blist.getInt64(0, Endian.little));
|
|
blist.setUint64(0, 0xffffffffffffffff, Endian.little);
|
|
Expect.equals(0xffffffffffffffff, blist.getUint64(0, Endian.little));
|
|
blist.setInt32(0, 0xaabbccddfffffffe, Endian.little);
|
|
Expect.equals(-2, blist.getInt32(0, Endian.little));
|
|
blist.setUint32(0, 0xaabbccddfffffffe, Endian.little);
|
|
Expect.equals(0xfffffffe, blist.getUint32(0, Endian.little));
|
|
blist.setInt64(0, 0xfffffffffffffffe, Endian.little);
|
|
Expect.equals(-2, blist.getInt64(0, Endian.little));
|
|
blist.setUint64(0, 0xfffffffffffffffe, Endian.little);
|
|
Expect.equals(0xfffffffffffffffe, blist.getUint64(0, Endian.little));
|
|
|
|
blist.setFloat32(0, 18446744073709551614.0, Endian.little);
|
|
Expect.equals(18446744073709551614.0, blist.getFloat32(0, Endian.little));
|
|
blist.setFloat64(0, 18446744073709551614.0, Endian.little);
|
|
Expect.equals(18446744073709551614.0, blist.getFloat64(0, Endian.little));
|
|
}
|
|
|
|
main() {
|
|
testView();
|
|
testSetters();
|
|
}
|