Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(44)

Unified Diff: tests/standalone/typed_data_test.dart

Issue 12608006: Use offsetInBytes and not index in the get/set accessors of views. (Closed) Base URL: http://dart.googlecode.com/svn/branches/bleeding_edge/dart/
Patch Set: Created 7 years, 9 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « runtime/lib/typeddata.dart ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: tests/standalone/typed_data_test.dart
===================================================================
--- tests/standalone/typed_data_test.dart (revision 20002)
+++ tests/standalone/typed_data_test.dart (working copy)
@@ -217,68 +217,66 @@
testIndexOfHelper(new Uint8ClampedList.transferable(10));
}
-void testGetAtIndex() {
- var list = new Uint8List(8);
- for (int i = 0; i < list.length; i++) {
- list[i] = 42;
- }
+void testGetAtIndex(TypedData list, num initial_value) {
var bdata = new ByteData.view(list);
- for (int i = 0; i < list.length; i++) {
+ for (int i = 0; i < bdata.lengthInBytes; i++) {
Expect.equals(42, bdata.getUint8(i));
Expect.equals(42, bdata.getInt8(i));
}
- for (int i = 0; i < list.length ~/ 2; i++) {
+ for (int i = 0; i < bdata.lengthInBytes-1; i+=2) {
Expect.equals(10794, bdata.getUint16(i));
Expect.equals(10794, bdata.getInt16(i));
}
- for (int i = 0; i < list.length ~/ 4; i++) {
+ for (int i = 0; i < bdata.lengthInBytes-3; i+=4) {
Expect.equals(707406378, bdata.getUint32(i));
Expect.equals(707406378, bdata.getInt32(i));
Expect.equals(1.511366173271439e-13, bdata.getFloat32(i));
}
- for (int i = 0; i < list.length ~/ 8; i++) {
+ for (int i = 0; i < bdata.lengthInBytes-7; i+=8) {
Expect.equals(3038287259199220266, bdata.getUint64(i));
Expect.equals(3038287259199220266, bdata.getInt64(i));
Expect.equals(1.4260258159703532e-105, bdata.getFloat64(i));
}
}
-void testSetAtIndex() {
- var list = new Uint8List(8);
- void validate() {
+void testSetAtIndex(TypedData list,
+ num initial_value, [bool use_double = false]) {
+ void validate([reinit = true]) {
for (int i = 0; i < list.length; i++) {
- Expect.equals(42, list[i]);
+ Expect.equals(initial_value, list[i]);
+ if (reinit) list[i] = use_double? 0.0 : 0;
}
}
var bdata = new ByteData.view(list);
- for (int i = 0; i < list.length; i++) bdata.setUint8(i, 42);
+ for (int i = 0; i < bdata.lengthInBytes; i++) bdata.setUint8(i, 42);
validate();
- for (int i = 0; i < list.length; i++) bdata.setInt8(i, 42);
+ for (int i = 0; i < bdata.lengthInBytes; i++) bdata.setInt8(i, 42);
validate();
- for (int i = 0; i < list.length ~/ 2; i++) bdata.setUint16(i, 10794);
+ for (int i = 0; i < bdata.lengthInBytes-1; i+=2) bdata.setUint16(i, 10794);
validate();
- for (int i = 0; i < list.length ~/ 2; i++) bdata.setInt16(i, 10794);
+ for (int i = 0; i < bdata.lengthInBytes-1; i+=2) bdata.setInt16(i, 10794);
validate();
- for (int i = 0; i < list.length ~/ 4; i++) bdata.setUint32(i, 707406378);
+ for (int i = 0; i < bdata.lengthInBytes-3; i+=4)
+ bdata.setUint32(i, 707406378);
validate();
- for (int i = 0; i < list.length ~/ 4; i++) bdata.setInt32(i, 707406378);
+ for (int i = 0; i < bdata.lengthInBytes-3; i+=4) bdata.setInt32(i, 707406378);
validate();
- for (int i = 0; i < list.length ~/ 4; i++) {
+ for (int i = 0; i < bdata.lengthInBytes-3; i+=4) {
bdata.setFloat32(i, 1.511366173271439e-13);
}
validate();
- for (int i = 0; i < list.length ~/ 8; i++) {
+ for (int i = 0; i < bdata.lengthInBytes-7; i+=8) {
bdata.setUint64(i, 3038287259199220266);
}
validate();
- for (int i = 0; i < list.length ~/ 8; i++) {
+ for (int i = 0; i < bdata.lengthInBytes-7; i+=8) {
bdata.setInt64(i, 3038287259199220266);
}
validate();
- for (int i = 0; i < list.length ~/ 8; i++) {
+ for (int i = 0; i < bdata.lengthInBytes-7; i+=8) {
bdata.setFloat64(i, 1.4260258159703532e-105);
}
- validate();
+ validate(false);
}
main() {
@@ -293,8 +291,46 @@
testSetRange();
testIndexOutOfRange();
testIndexOf();
- testGetAtIndex();
- testSetAtIndex();
+
+ var int8list = new Int8List(128);
+ testSetAtIndex(int8list, 42);
+ testGetAtIndex(int8list, 42);
+
+ var uint8list = new Uint8List(128);
+ testSetAtIndex(uint8list, 42);
+ testGetAtIndex(uint8list, 42);
+
+ var int16list = new Int16List(64);
+ testSetAtIndex(int16list, 10794);
+ testGetAtIndex(int16list, 10794);
+
+ var uint16list = new Uint16List(64);
+ testSetAtIndex(uint16list, 10794);
+ testGetAtIndex(uint16list, 10794);
+
+ var int32list = new Int32List(32);
+ testSetAtIndex(int32list, 707406378);
+ testGetAtIndex(int32list, 707406378);
+
+ var uint32list = new Uint32List(32);
+ testSetAtIndex(uint32list, 707406378);
+ testGetAtIndex(uint32list, 707406378);
+
+ var int64list = new Int64List(16);
+ testSetAtIndex(int64list, 3038287259199220266);
+ testGetAtIndex(int64list, 3038287259199220266);
+
+ var uint64list = new Uint64List(16);
+ testSetAtIndex(uint64list, 3038287259199220266);
+ testGetAtIndex(uint64list, 3038287259199220266);
+
+ var float32list = new Float32List(32);
+ testSetAtIndex(float32list, 1.511366173271439e-13, true);
+ testGetAtIndex(float32list, 1.511366173271439e-13);
+
+ var float64list = new Float64List(16);
+ testSetAtIndex(float64list, 1.4260258159703532e-105, true);
+ testGetAtIndex(float64list, 1.4260258159703532e-105);
}
testTypedDataRange(true);
testUnsignedTypedDataRange(true);
« no previous file with comments | « runtime/lib/typeddata.dart ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698