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

Side by Side Diff: dart/tests/lib/typed_data/uint32x4_list_test.dart

Issue 59073003: Version 0.8.10.4 (Closed) Base URL: http://dart.googlecode.com/svn/trunk/
Patch Set: Created 7 years, 1 month 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 unified diff | Download patch | Annotate | Revision Log
OLDNEW
(Empty)
1 // Copyright (c) 2013, the Dart project authors. Please see the AUTHORS file
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.
4 // VMOptions=--deoptimization_counter_threshold=1000 --optimization-counter-thre shold=10
5
6 // Library tag to be able to run in html test framework.
7 library uint32x4_list_test;
8
9 import 'package:expect/expect.dart';
10 import 'dart:typed_data';
11
12 testLoadStore(array) {
13 Expect.equals(8, array.length);
14 Expect.isTrue(array is List<Uint32x4>);
15 array[0] = new Uint32x4(1, 2, 3, 4);
16 Expect.equals(1, array[0].x);
17 Expect.equals(2, array[0].y);
18 Expect.equals(3, array[0].z);
19 Expect.equals(4, array[0].w);
20 array[1] = array[0];
21 array[0] = array[0].withX(9);
22 Expect.equals(9, array[0].x);
23 Expect.equals(2, array[0].y);
24 Expect.equals(3, array[0].z);
25 Expect.equals(4, array[0].w);
26 Expect.equals(1, array[1].x);
27 Expect.equals(2, array[1].y);
28 Expect.equals(3, array[1].z);
29 Expect.equals(4, array[1].w);
30 }
31
32 testLoadStoreDeopt(array, index, value) {
33 array[index] = value;
34 Expect.equals(value.x, array[index].x);
35 Expect.equals(value.y, array[index].y);
36 Expect.equals(value.z, array[index].z);
37 Expect.equals(value.w, array[index].w);
38 }
39
40 testLoadStoreDeoptDriver() {
41 Uint32x4List list = new Uint32x4List(4);
42 Uint32x4 value = new Uint32x4(1, 2, 3, 4);
43 for (int i = 0; i < 20; i++) {
44 testLoadStoreDeopt(list, 0, value);
45 }
46 try {
47 // Invalid index.
48 testLoadStoreDeopt(list, 5, value);
49 } catch (_) {}
50 for (int i = 0; i < 20; i++) {
51 testLoadStoreDeopt(list, 0, value);
52 }
53 try {
54 // null list.
55 testLoadStoreDeopt(null, 0, value);
56 } catch (_) {}
57 for (int i = 0; i < 20; i++) {
58 testLoadStoreDeopt(list, 0, value);
59 }
60 try {
61 // null value.
62 testLoadStoreDeopt(list, 0, null);
63 } catch (_) {}
64 for (int i = 0; i < 20; i++) {
65 testLoadStoreDeopt(list, 0, value);
66 }
67 try {
68 // non-smi index.
69 testLoadStoreDeopt(list, 3.14159, value);
70 } catch (_) {}
71 for (int i = 0; i < 20; i++) {
72 testLoadStoreDeopt(list, 0, value);
73 }
74 try {
75 // non-Uint32x4 value.
76 testLoadStoreDeopt(list, 0, 4.toDouble());
77 } catch (_) {}
78 for (int i = 0; i < 20; i++) {
79 testLoadStoreDeopt(list, 0, value);
80 }
81 try {
82 // non-Uint32x4List list.
83 testLoadStoreDeopt([new Uint32x4(2, 3, 4, 5)], 0, value);
84 } catch (_) {}
85 for (int i = 0; i < 20; i++) {
86 testLoadStoreDeopt(list, 0, value);
87 }
88 }
89
90 testListZero() {
91 Uint32x4List list = new Uint32x4List(1);
92 Expect.equals(0, list[0].x);
93 Expect.equals(0, list[0].y);
94 Expect.equals(0, list[0].z);
95 Expect.equals(0, list[0].w);
96 }
97
98 testView(array) {
99 Expect.equals(8, array.length);
100 Expect.isTrue(array is List<Uint32x4>);
101 Expect.equals(0, array[0].x);
102 Expect.equals(1, array[0].y);
103 Expect.equals(2, array[0].z);
104 Expect.equals(3, array[0].w);
105 Expect.equals(4, array[1].x);
106 Expect.equals(5, array[1].y);
107 Expect.equals(6, array[1].z);
108 Expect.equals(7, array[1].w);
109 }
110
111 testSublist(array) {
112 Expect.equals(8, array.length);
113 Expect.isTrue(array is Uint32x4List);
114 var a = array.sublist(0, 1);
115 Expect.equals(1, a.length);
116 Expect.equals(0, a[0].x);
117 Expect.equals(1, a[0].y);
118 Expect.equals(2, a[0].z);
119 Expect.equals(3, a[0].w);
120 a = array.sublist(1, 2);
121 Expect.equals(4, a[0].x);
122 Expect.equals(5, a[0].y);
123 Expect.equals(6, a[0].z);
124 Expect.equals(7, a[0].w);
125 a = array.sublist(0);
126 Expect.equals(a.length, array.length);
127 for (int i = 0; i < array.length; i++) {
128 Expect.equals(array[i].x, a[i].x);
129 Expect.equals(array[i].y, a[i].y);
130 Expect.equals(array[i].z, a[i].z);
131 Expect.equals(array[i].w, a[i].w);
132 }
133 }
134
135 main() {
136 var list;
137
138 list = new Uint32x4List(8);
139 for (int i = 0; i < 20; i++) {
140 testLoadStore(list);
141 }
142
143 Uint32List uint32List = new Uint32List(32);
144 for (int i = 0; i < uint32List.length; i++) {
145 uint32List[i] = i;
146 }
147 list = new Uint32x4List.view(uint32List.buffer);
148 for (int i = 0; i < 20; i++) {
149 testView(list);
150 }
151 for (int i = 0; i < 20; i++) {
152 testSublist(list);
153 }
154 for (int i = 0; i < 20; i++) {
155 testLoadStore(list);
156 }
157 for (int i = 0; i < 20; i++) {
158 testListZero();
159 }
160 testLoadStoreDeoptDriver();
161 }
OLDNEW
« no previous file with comments | « dart/tests/lib/typed_data/uint32x4_arithmetic_test.dart ('k') | dart/tests/lib/typed_data/uint32x4_shuffle_test.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698