OLD | NEW |
1 // Copyright (c) 2013, the Dart project authors. Please see the AUTHORS file | 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 | 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 // Dart test program for testing typed data. | 5 // Dart test program for testing typed data. |
6 | 6 |
7 // Library tag to be able to run in html test framework. | 7 // Library tag to be able to run in html test framework. |
8 library ByteDataTest; | 8 library ByteDataTest; |
9 | 9 |
10 import "package:expect/expect.dart"; | 10 import "package:expect/expect.dart"; |
11 import 'dart:typed_data'; | 11 import 'dart:typed_data'; |
12 | 12 |
13 testGetters() { | 13 testGetters() { |
14 bool host_is_little_endian = | 14 bool host_is_little_endian = |
15 (new Uint8List.view(new Uint16List.fromList([1]).buffer))[0] == 1; | 15 (new Uint8List.view(new Uint16List.fromList([1]).buffer))[0] == 1; |
16 | 16 |
17 var list = new Uint8List(8); | 17 var list = new Uint8List(8); |
18 list[0] = 0xf1; | 18 list[0] = 0xf1; |
19 list[1] = 0xf2; | 19 list[1] = 0xf2; |
20 list[2] = 0xf3; | 20 list[2] = 0xf3; |
21 list[3] = 0xf4; | 21 list[3] = 0xf4; |
22 list[4] = 0xf5; | 22 list[4] = 0xf5; |
23 list[5] = 0xf6; | 23 list[5] = 0xf6; |
24 list[6] = 0xf7; | 24 list[6] = 0xf7; |
25 list[7] = 0xf8; | 25 list[7] = 0xf8; |
26 var ba = list.buffer; | 26 var ba = list.buffer; |
27 | 27 |
28 ByteData bd = new ByteData.view(ba); | 28 ByteData bd = new ByteData.view(ba); |
29 var value; | 29 var value; |
30 int expected_value_be = -3598; | 30 int expected_value_be = -3598; |
31 int expected_value_le = -3343; | 31 int expected_value_le = -3343; |
32 | 32 |
33 value = bd.getInt16(0); // Default is big endian access. | 33 value = bd.getInt16(0); // Default is big endian access. |
34 Expect.equals(expected_value_be, value); | 34 Expect.equals(expected_value_be, value); |
35 value = bd.getInt16(0, Endianness.BIG_ENDIAN); | 35 value = bd.getInt16(0, Endianness.BIG_ENDIAN); |
36 Expect.equals(expected_value_be, value); | 36 Expect.equals(expected_value_be, value); |
37 value = bd.getInt16(0, Endianness.LITTLE_ENDIAN); | 37 value = bd.getInt16(0, Endianness.LITTLE_ENDIAN); |
38 Expect.equals(expected_value_le, value); | 38 Expect.equals(expected_value_le, value); |
39 value = bd.getInt16(0, Endianness.HOST_ENDIAN); | 39 value = bd.getInt16(0, Endianness.HOST_ENDIAN); |
40 if (host_is_little_endian) { | 40 if (host_is_little_endian) { |
41 Expect.isTrue(identical(Endianness.HOST_ENDIAN, Endianness.LITTLE_ENDIAN)); | 41 Expect.isTrue(identical(Endianness.HOST_ENDIAN, Endianness.LITTLE_ENDIAN)); |
42 Expect.equals(expected_value_le, value); | 42 Expect.equals(expected_value_le, value); |
43 } else { | 43 } else { |
44 Expect.isTrue(identical(Endianness.HOST_ENDIAN, Endianness.BIG_ENDIAN)); | 44 Expect.isTrue(identical(Endianness.HOST_ENDIAN, Endianness.BIG_ENDIAN)); |
45 Expect.equals(expected_value_be, value); | 45 Expect.equals(expected_value_be, value); |
46 } | 46 } |
47 | 47 |
48 value = bd.getUint16(0); // Default is big endian access. | 48 value = bd.getUint16(0); // Default is big endian access. |
49 Expect.equals(0xf1f2, value); | 49 Expect.equals(0xf1f2, value); |
50 value = bd.getUint16(0, Endianness.BIG_ENDIAN); | 50 value = bd.getUint16(0, Endianness.BIG_ENDIAN); |
51 Expect.equals(0xf1f2, value); | 51 Expect.equals(0xf1f2, value); |
52 value = bd.getUint16(0, Endianness.LITTLE_ENDIAN); | 52 value = bd.getUint16(0, Endianness.LITTLE_ENDIAN); |
53 Expect.equals(0xf2f1, value); | 53 Expect.equals(0xf2f1, value); |
54 if (host_is_little_endian) { | 54 if (host_is_little_endian) { |
55 Expect.isTrue(identical(Endianness.HOST_ENDIAN, Endianness.LITTLE_ENDIAN)); | 55 Expect.isTrue(identical(Endianness.HOST_ENDIAN, Endianness.LITTLE_ENDIAN)); |
56 Expect.equals(0xf2f1, value); | 56 Expect.equals(0xf2f1, value); |
57 } else { | 57 } else { |
58 Expect.isTrue(identical(Endianness.HOST_ENDIAN, Endianness.BIG_ENDIAN)); | 58 Expect.isTrue(identical(Endianness.HOST_ENDIAN, Endianness.BIG_ENDIAN)); |
59 Expect.equals(0xf1f2, value); | 59 Expect.equals(0xf1f2, value); |
60 } | 60 } |
61 | 61 |
62 expected_value_be = -235736076; | 62 expected_value_be = -235736076; |
63 expected_value_le = -185339151; | 63 expected_value_le = -185339151; |
64 | 64 |
65 value = bd.getInt32(0); // Default is big endian access. | 65 value = bd.getInt32(0); // Default is big endian access. |
66 Expect.equals(expected_value_be, value); | 66 Expect.equals(expected_value_be, value); |
67 value = bd.getInt32(0, Endianness.BIG_ENDIAN); | 67 value = bd.getInt32(0, Endianness.BIG_ENDIAN); |
68 Expect.equals(expected_value_be, value); | 68 Expect.equals(expected_value_be, value); |
69 value = bd.getInt32(0, Endianness.LITTLE_ENDIAN); | 69 value = bd.getInt32(0, Endianness.LITTLE_ENDIAN); |
70 Expect.equals(expected_value_le, value); | 70 Expect.equals(expected_value_le, value); |
71 if (host_is_little_endian) { | 71 if (host_is_little_endian) { |
72 Expect.isTrue(identical(Endianness.HOST_ENDIAN, Endianness.LITTLE_ENDIAN)); | 72 Expect.isTrue(identical(Endianness.HOST_ENDIAN, Endianness.LITTLE_ENDIAN)); |
73 Expect.equals(expected_value_le, value); | 73 Expect.equals(expected_value_le, value); |
74 } else { | 74 } else { |
75 Expect.isTrue(identical(Endianness.HOST_ENDIAN, Endianness.BIG_ENDIAN)); | 75 Expect.isTrue(identical(Endianness.HOST_ENDIAN, Endianness.BIG_ENDIAN)); |
76 Expect.equals(expected_value_be, value); | 76 Expect.equals(expected_value_be, value); |
77 } | 77 } |
78 | 78 |
79 value = bd.getUint32(0); // Default is big endian access. | 79 value = bd.getUint32(0); // Default is big endian access. |
80 Expect.equals(0xf1f2f3f4, value); | 80 Expect.equals(0xf1f2f3f4, value); |
81 value = bd.getUint32(0, Endianness.BIG_ENDIAN); | 81 value = bd.getUint32(0, Endianness.BIG_ENDIAN); |
82 Expect.equals(0xf1f2f3f4, value); | 82 Expect.equals(0xf1f2f3f4, value); |
83 value = bd.getUint32(0, Endianness.LITTLE_ENDIAN); | 83 value = bd.getUint32(0, Endianness.LITTLE_ENDIAN); |
84 Expect.equals(0xf4f3f2f1, value); | 84 Expect.equals(0xf4f3f2f1, value); |
85 if (host_is_little_endian) { | 85 if (host_is_little_endian) { |
86 Expect.isTrue(identical(Endianness.HOST_ENDIAN, Endianness.LITTLE_ENDIAN)); | 86 Expect.isTrue(identical(Endianness.HOST_ENDIAN, Endianness.LITTLE_ENDIAN)); |
87 Expect.equals(0xf4f3f2f1, value); | 87 Expect.equals(0xf4f3f2f1, value); |
88 } else { | 88 } else { |
89 Expect.isTrue(identical(Endianness.HOST_ENDIAN, Endianness.BIG_ENDIAN)); | 89 Expect.isTrue(identical(Endianness.HOST_ENDIAN, Endianness.BIG_ENDIAN)); |
90 Expect.equals(0xf1f2f3f4, value); | 90 Expect.equals(0xf1f2f3f4, value); |
91 } | 91 } |
92 | 92 |
93 expected_value_be = -1012478732780767240; | 93 expected_value_be = -1012478732780767240; |
94 expected_value_le = -506664896818842895; | 94 expected_value_le = -506664896818842895; |
95 | 95 |
96 value = bd.getInt64(0); // Default is big endian access. | 96 value = bd.getInt64(0); // Default is big endian access. |
97 Expect.equals(expected_value_be, value); | 97 Expect.equals(expected_value_be, value); |
98 value = bd.getInt64(0, Endianness.BIG_ENDIAN); | 98 value = bd.getInt64(0, Endianness.BIG_ENDIAN); |
99 Expect.equals(expected_value_be, value); | 99 Expect.equals(expected_value_be, value); |
100 value = bd.getInt64(0, Endianness.LITTLE_ENDIAN); | 100 value = bd.getInt64(0, Endianness.LITTLE_ENDIAN); |
101 Expect.equals(expected_value_le, value); | 101 Expect.equals(expected_value_le, value); |
102 if (host_is_little_endian) { | 102 if (host_is_little_endian) { |
103 Expect.isTrue(identical(Endianness.HOST_ENDIAN, Endianness.LITTLE_ENDIAN)); | 103 Expect.isTrue(identical(Endianness.HOST_ENDIAN, Endianness.LITTLE_ENDIAN)); |
104 Expect.equals(expected_value_le, value); | 104 Expect.equals(expected_value_le, value); |
105 } else { | 105 } else { |
106 Expect.isTrue(identical(Endianness.HOST_ENDIAN, Endianness.BIG_ENDIAN)); | 106 Expect.isTrue(identical(Endianness.HOST_ENDIAN, Endianness.BIG_ENDIAN)); |
107 Expect.equals(expected_value_be, value); | 107 Expect.equals(expected_value_be, value); |
108 } | 108 } |
109 | 109 |
110 value = bd.getUint64(0); // Default is big endian access. | 110 value = bd.getUint64(0); // Default is big endian access. |
111 Expect.equals(0xf1f2f3f4f5f6f7f8, value); | 111 Expect.equals(0xf1f2f3f4f5f6f7f8, value); |
112 value = bd.getUint64(0, Endianness.BIG_ENDIAN); | 112 value = bd.getUint64(0, Endianness.BIG_ENDIAN); |
113 Expect.equals(0xf1f2f3f4f5f6f7f8, value); | 113 Expect.equals(0xf1f2f3f4f5f6f7f8, value); |
114 value = bd.getUint64(0, Endianness.LITTLE_ENDIAN); | 114 value = bd.getUint64(0, Endianness.LITTLE_ENDIAN); |
115 Expect.equals(0xf8f7f6f5f4f3f2f1, value); | 115 Expect.equals(0xf8f7f6f5f4f3f2f1, value); |
116 if (host_is_little_endian) { | 116 if (host_is_little_endian) { |
117 Expect.isTrue(identical(Endianness.HOST_ENDIAN, Endianness.LITTLE_ENDIAN)); | 117 Expect.isTrue(identical(Endianness.HOST_ENDIAN, Endianness.LITTLE_ENDIAN)); |
118 Expect.equals(0xf8f7f6f5f4f3f2f1, value); | 118 Expect.equals(0xf8f7f6f5f4f3f2f1, value); |
119 } else { | 119 } else { |
120 Expect.isTrue(identical(Endianness.HOST_ENDIAN, Endianness.BIG_ENDIAN)); | 120 Expect.isTrue(identical(Endianness.HOST_ENDIAN, Endianness.BIG_ENDIAN)); |
121 Expect.equals(0xf1f2f3f4f5f6f7f8, value); | 121 Expect.equals(0xf1f2f3f4f5f6f7f8, value); |
122 } | 122 } |
123 | 123 |
124 double expected_be_value = -2.4060893954673178e+30; | 124 double expected_be_value = -2.4060893954673178e+30; |
125 double expected_le_value = -1.5462104171572421e+32; | 125 double expected_le_value = -1.5462104171572421e+32; |
126 value = bd.getFloat32(0); // Default is big endian access. | 126 value = bd.getFloat32(0); // Default is big endian access. |
127 Expect.equals(expected_be_value, value); | 127 Expect.equals(expected_be_value, value); |
128 value = bd.getFloat32(0, Endianness.BIG_ENDIAN); | 128 value = bd.getFloat32(0, Endianness.BIG_ENDIAN); |
129 Expect.equals(expected_be_value, value); | 129 Expect.equals(expected_be_value, value); |
130 value = bd.getFloat32(0, Endianness.LITTLE_ENDIAN); | 130 value = bd.getFloat32(0, Endianness.LITTLE_ENDIAN); |
131 Expect.equals(expected_le_value, value); | 131 Expect.equals(expected_le_value, value); |
132 if (host_is_little_endian) { | 132 if (host_is_little_endian) { |
133 Expect.isTrue(identical(Endianness.HOST_ENDIAN, Endianness.LITTLE_ENDIAN)); | 133 Expect.isTrue(identical(Endianness.HOST_ENDIAN, Endianness.LITTLE_ENDIAN)); |
134 Expect.equals(expected_le_value, value); | 134 Expect.equals(expected_le_value, value); |
135 } else { | 135 } else { |
136 Expect.isTrue(identical(Endianness.HOST_ENDIAN, Endianness.BIG_ENDIAN)); | 136 Expect.isTrue(identical(Endianness.HOST_ENDIAN, Endianness.BIG_ENDIAN)); |
137 Expect.equals(expected_be_value, value); | 137 Expect.equals(expected_be_value, value); |
138 } | 138 } |
139 | 139 |
140 | |
141 expected_be_value = -7.898661740976602e+240; | 140 expected_be_value = -7.898661740976602e+240; |
142 expected_le_value = -5.185705956736366e+274; | 141 expected_le_value = -5.185705956736366e+274; |
143 value = bd.getFloat64(0); // Default is big endian access. | 142 value = bd.getFloat64(0); // Default is big endian access. |
144 Expect.equals(expected_be_value, value); | 143 Expect.equals(expected_be_value, value); |
145 value = bd.getFloat64(0, Endianness.BIG_ENDIAN); | 144 value = bd.getFloat64(0, Endianness.BIG_ENDIAN); |
146 Expect.equals(expected_be_value, value); | 145 Expect.equals(expected_be_value, value); |
147 value = bd.getFloat64(0, Endianness.LITTLE_ENDIAN); | 146 value = bd.getFloat64(0, Endianness.LITTLE_ENDIAN); |
148 Expect.equals(expected_le_value, value); | 147 Expect.equals(expected_le_value, value); |
149 if (host_is_little_endian) { | 148 if (host_is_little_endian) { |
150 Expect.isTrue(identical(Endianness.HOST_ENDIAN, Endianness.LITTLE_ENDIAN)); | 149 Expect.isTrue(identical(Endianness.HOST_ENDIAN, Endianness.LITTLE_ENDIAN)); |
151 Expect.equals(expected_le_value, value); | 150 Expect.equals(expected_le_value, value); |
152 } else { | 151 } else { |
153 Expect.isTrue(identical(Endianness.HOST_ENDIAN, Endianness.BIG_ENDIAN)); | 152 Expect.isTrue(identical(Endianness.HOST_ENDIAN, Endianness.BIG_ENDIAN)); |
154 Expect.equals(expected_be_value, value); | 153 Expect.equals(expected_be_value, value); |
155 } | 154 } |
156 } | 155 } |
157 | 156 |
158 | |
159 validate16be(var list) { | 157 validate16be(var list) { |
160 Expect.equals(0xf1, list[0]); | 158 Expect.equals(0xf1, list[0]); |
161 Expect.equals(0xf2, list[1]); | 159 Expect.equals(0xf2, list[1]); |
162 } | 160 } |
163 | 161 |
164 | |
165 validate16le(var list) { | 162 validate16le(var list) { |
166 Expect.equals(0xf2, list[0]); | 163 Expect.equals(0xf2, list[0]); |
167 Expect.equals(0xf1, list[1]); | 164 Expect.equals(0xf1, list[1]); |
168 } | 165 } |
169 | 166 |
170 | |
171 validate32be(var list) { | 167 validate32be(var list) { |
172 Expect.equals(0xf1, list[0]); | 168 Expect.equals(0xf1, list[0]); |
173 Expect.equals(0xf2, list[1]); | 169 Expect.equals(0xf2, list[1]); |
174 Expect.equals(0xf3, list[2]); | 170 Expect.equals(0xf3, list[2]); |
175 Expect.equals(0xf4, list[3]); | 171 Expect.equals(0xf4, list[3]); |
176 } | 172 } |
177 | 173 |
178 | |
179 validate32le(var list) { | 174 validate32le(var list) { |
180 Expect.equals(0xf4, list[0]); | 175 Expect.equals(0xf4, list[0]); |
181 Expect.equals(0xf3, list[1]); | 176 Expect.equals(0xf3, list[1]); |
182 Expect.equals(0xf2, list[2]); | 177 Expect.equals(0xf2, list[2]); |
183 Expect.equals(0xf1, list[3]); | 178 Expect.equals(0xf1, list[3]); |
184 } | 179 } |
185 | 180 |
186 | |
187 validate64be(var list) { | 181 validate64be(var list) { |
188 Expect.equals(0xf1, list[0]); | 182 Expect.equals(0xf1, list[0]); |
189 Expect.equals(0xf2, list[1]); | 183 Expect.equals(0xf2, list[1]); |
190 Expect.equals(0xf3, list[2]); | 184 Expect.equals(0xf3, list[2]); |
191 Expect.equals(0xf4, list[3]); | 185 Expect.equals(0xf4, list[3]); |
192 Expect.equals(0xf5, list[4]); | 186 Expect.equals(0xf5, list[4]); |
193 Expect.equals(0xf6, list[5]); | 187 Expect.equals(0xf6, list[5]); |
194 Expect.equals(0xf7, list[6]); | 188 Expect.equals(0xf7, list[6]); |
195 Expect.equals(0xf8, list[7]); | 189 Expect.equals(0xf8, list[7]); |
196 } | 190 } |
197 | 191 |
198 | |
199 validate64le(var list) { | 192 validate64le(var list) { |
200 Expect.equals(0xf8, list[0]); | 193 Expect.equals(0xf8, list[0]); |
201 Expect.equals(0xf7, list[1]); | 194 Expect.equals(0xf7, list[1]); |
202 Expect.equals(0xf6, list[2]); | 195 Expect.equals(0xf6, list[2]); |
203 Expect.equals(0xf5, list[3]); | 196 Expect.equals(0xf5, list[3]); |
204 Expect.equals(0xf4, list[4]); | 197 Expect.equals(0xf4, list[4]); |
205 Expect.equals(0xf3, list[5]); | 198 Expect.equals(0xf3, list[5]); |
206 Expect.equals(0xf2, list[6]); | 199 Expect.equals(0xf2, list[6]); |
207 Expect.equals(0xf1, list[7]); | 200 Expect.equals(0xf1, list[7]); |
208 } | 201 } |
209 | 202 |
210 | |
211 testSetters() { | 203 testSetters() { |
212 bool host_is_little_endian = | 204 bool host_is_little_endian = |
213 (new Uint8List.view(new Uint16List.fromList([1]).buffer))[0] == 1; | 205 (new Uint8List.view(new Uint16List.fromList([1]).buffer))[0] == 1; |
214 | 206 |
215 var list = new Uint8List(8); | 207 var list = new Uint8List(8); |
216 for (int i = 0; i < list.length; i++) { | 208 for (int i = 0; i < list.length; i++) { |
217 list[i] = 0; | 209 list[i] = 0; |
218 } | 210 } |
219 var ba = list.buffer; | 211 var ba = list.buffer; |
220 ByteData bd = new ByteData.view(ba); | 212 ByteData bd = new ByteData.view(ba); |
221 | 213 |
222 bd.setInt16(0, 0xf1f2); // Default is big endian access. | 214 bd.setInt16(0, 0xf1f2); // Default is big endian access. |
223 validate16be(list); | 215 validate16be(list); |
224 bd.setInt16(0, 0xf1f2, Endianness.BIG_ENDIAN); | 216 bd.setInt16(0, 0xf1f2, Endianness.BIG_ENDIAN); |
225 validate16be(list); | 217 validate16be(list); |
226 bd.setInt16(0, 0xf1f2, Endianness.LITTLE_ENDIAN); | 218 bd.setInt16(0, 0xf1f2, Endianness.LITTLE_ENDIAN); |
227 validate16le(list); | 219 validate16le(list); |
228 bd.setInt16(0, 0xf1f2, Endianness.HOST_ENDIAN); | 220 bd.setInt16(0, 0xf1f2, Endianness.HOST_ENDIAN); |
229 if (host_is_little_endian) { | 221 if (host_is_little_endian) { |
230 Expect.isTrue(identical(Endianness.HOST_ENDIAN, Endianness.LITTLE_ENDIAN)); | 222 Expect.isTrue(identical(Endianness.HOST_ENDIAN, Endianness.LITTLE_ENDIAN)); |
231 validate16le(list); | 223 validate16le(list); |
232 } else { | 224 } else { |
233 Expect.isTrue(identical(Endianness.HOST_ENDIAN, Endianness.BIG_ENDIAN)); | 225 Expect.isTrue(identical(Endianness.HOST_ENDIAN, Endianness.BIG_ENDIAN)); |
234 validate16be(list); | 226 validate16be(list); |
235 } | 227 } |
236 | 228 |
237 bd.setUint16(0, 0xf1f2); // Default is big endian access. | 229 bd.setUint16(0, 0xf1f2); // Default is big endian access. |
238 validate16be(list); | 230 validate16be(list); |
239 bd.setUint16(0, 0xf1f2, Endianness.BIG_ENDIAN); | 231 bd.setUint16(0, 0xf1f2, Endianness.BIG_ENDIAN); |
240 validate16be(list); | 232 validate16be(list); |
241 bd.setUint16(0, 0xf1f2, Endianness.LITTLE_ENDIAN); | 233 bd.setUint16(0, 0xf1f2, Endianness.LITTLE_ENDIAN); |
242 validate16le(list); | 234 validate16le(list); |
243 bd.setUint16(0, 0xf1f2, Endianness.HOST_ENDIAN); | 235 bd.setUint16(0, 0xf1f2, Endianness.HOST_ENDIAN); |
244 if (host_is_little_endian) { | 236 if (host_is_little_endian) { |
245 Expect.isTrue(identical(Endianness.HOST_ENDIAN, Endianness.LITTLE_ENDIAN)); | 237 Expect.isTrue(identical(Endianness.HOST_ENDIAN, Endianness.LITTLE_ENDIAN)); |
246 validate16le(list); | 238 validate16le(list); |
247 } else { | 239 } else { |
248 Expect.isTrue(identical(Endianness.HOST_ENDIAN, Endianness.BIG_ENDIAN)); | 240 Expect.isTrue(identical(Endianness.HOST_ENDIAN, Endianness.BIG_ENDIAN)); |
249 validate16be(list); | 241 validate16be(list); |
250 } | 242 } |
251 | 243 |
252 bd.setInt32(0, 0xf1f2f3f4); // Default is big endian access. | 244 bd.setInt32(0, 0xf1f2f3f4); // Default is big endian access. |
253 validate32be(list); | 245 validate32be(list); |
254 bd.setInt32(0, 0xf1f2f3f4, Endianness.BIG_ENDIAN); | 246 bd.setInt32(0, 0xf1f2f3f4, Endianness.BIG_ENDIAN); |
255 validate32be(list); | 247 validate32be(list); |
256 bd.setInt32(0, 0xf1f2f3f4, Endianness.LITTLE_ENDIAN); | 248 bd.setInt32(0, 0xf1f2f3f4, Endianness.LITTLE_ENDIAN); |
257 validate32le(list); | 249 validate32le(list); |
258 bd.setInt32(0, 0xf1f2f3f4, Endianness.HOST_ENDIAN); | 250 bd.setInt32(0, 0xf1f2f3f4, Endianness.HOST_ENDIAN); |
259 if (host_is_little_endian) { | 251 if (host_is_little_endian) { |
260 Expect.isTrue(identical(Endianness.HOST_ENDIAN, Endianness.LITTLE_ENDIAN)); | 252 Expect.isTrue(identical(Endianness.HOST_ENDIAN, Endianness.LITTLE_ENDIAN)); |
261 validate32le(list); | 253 validate32le(list); |
262 } else { | 254 } else { |
263 Expect.isTrue(identical(Endianness.HOST_ENDIAN, Endianness.BIG_ENDIAN)); | 255 Expect.isTrue(identical(Endianness.HOST_ENDIAN, Endianness.BIG_ENDIAN)); |
264 validate32be(list); | 256 validate32be(list); |
265 } | 257 } |
266 | 258 |
267 bd.setUint32(0, 0xf1f2f3f4); // Default is big endian access. | 259 bd.setUint32(0, 0xf1f2f3f4); // Default is big endian access. |
268 validate32be(list); | 260 validate32be(list); |
269 bd.setUint32(0, 0xf1f2f3f4, Endianness.BIG_ENDIAN); | 261 bd.setUint32(0, 0xf1f2f3f4, Endianness.BIG_ENDIAN); |
270 validate32be(list); | 262 validate32be(list); |
271 bd.setUint32(0, 0xf1f2f3f4, Endianness.LITTLE_ENDIAN); | 263 bd.setUint32(0, 0xf1f2f3f4, Endianness.LITTLE_ENDIAN); |
272 validate32le(list); | 264 validate32le(list); |
273 bd.setUint32(0, 0xf1f2f3f4, Endianness.HOST_ENDIAN); | 265 bd.setUint32(0, 0xf1f2f3f4, Endianness.HOST_ENDIAN); |
274 if (host_is_little_endian) { | 266 if (host_is_little_endian) { |
275 Expect.isTrue(identical(Endianness.HOST_ENDIAN, Endianness.LITTLE_ENDIAN)); | 267 Expect.isTrue(identical(Endianness.HOST_ENDIAN, Endianness.LITTLE_ENDIAN)); |
276 validate32le(list); | 268 validate32le(list); |
277 } else { | 269 } else { |
278 Expect.isTrue(identical(Endianness.HOST_ENDIAN, Endianness.BIG_ENDIAN)); | 270 Expect.isTrue(identical(Endianness.HOST_ENDIAN, Endianness.BIG_ENDIAN)); |
279 validate32be(list); | 271 validate32be(list); |
280 } | 272 } |
281 | 273 |
282 bd.setInt64(0, 0xf1f2f3f4f5f6f7f8); // Default is big endian access. | 274 bd.setInt64(0, 0xf1f2f3f4f5f6f7f8); // Default is big endian access. |
283 validate64be(list); | 275 validate64be(list); |
284 bd.setInt64(0, 0xf1f2f3f4f5f6f7f8, Endianness.BIG_ENDIAN); | 276 bd.setInt64(0, 0xf1f2f3f4f5f6f7f8, Endianness.BIG_ENDIAN); |
285 validate64be(list); | 277 validate64be(list); |
286 bd.setInt64(0, 0xf1f2f3f4f5f6f7f8, Endianness.LITTLE_ENDIAN); | 278 bd.setInt64(0, 0xf1f2f3f4f5f6f7f8, Endianness.LITTLE_ENDIAN); |
287 validate64le(list); | 279 validate64le(list); |
288 bd.setInt64(0, 0xf1f2f3f4f5f6f7f8, Endianness.HOST_ENDIAN); | 280 bd.setInt64(0, 0xf1f2f3f4f5f6f7f8, Endianness.HOST_ENDIAN); |
289 if (host_is_little_endian) { | 281 if (host_is_little_endian) { |
290 Expect.isTrue(identical(Endianness.HOST_ENDIAN, Endianness.LITTLE_ENDIAN)); | 282 Expect.isTrue(identical(Endianness.HOST_ENDIAN, Endianness.LITTLE_ENDIAN)); |
291 validate64le(list); | 283 validate64le(list); |
292 } else { | 284 } else { |
293 Expect.isTrue(identical(Endianness.HOST_ENDIAN, Endianness.BIG_ENDIAN)); | 285 Expect.isTrue(identical(Endianness.HOST_ENDIAN, Endianness.BIG_ENDIAN)); |
294 validate64be(list); | 286 validate64be(list); |
295 } | 287 } |
296 | 288 |
297 bd.setUint64(0, 0xf1f2f3f4f5f6f7f8); // Default is big endian access. | 289 bd.setUint64(0, 0xf1f2f3f4f5f6f7f8); // Default is big endian access. |
298 validate64be(list); | 290 validate64be(list); |
299 bd.setUint64(0, 0xf1f2f3f4f5f6f7f8, Endianness.BIG_ENDIAN); | 291 bd.setUint64(0, 0xf1f2f3f4f5f6f7f8, Endianness.BIG_ENDIAN); |
300 validate64be(list); | 292 validate64be(list); |
301 bd.setUint64(0, 0xf1f2f3f4f5f6f7f8, Endianness.LITTLE_ENDIAN); | 293 bd.setUint64(0, 0xf1f2f3f4f5f6f7f8, Endianness.LITTLE_ENDIAN); |
302 validate64le(list); | 294 validate64le(list); |
303 bd.setUint64(0, 0xf1f2f3f4f5f6f7f8, Endianness.HOST_ENDIAN); | 295 bd.setUint64(0, 0xf1f2f3f4f5f6f7f8, Endianness.HOST_ENDIAN); |
304 if (host_is_little_endian) { | 296 if (host_is_little_endian) { |
305 Expect.isTrue(identical(Endianness.HOST_ENDIAN, Endianness.LITTLE_ENDIAN)); | 297 Expect.isTrue(identical(Endianness.HOST_ENDIAN, Endianness.LITTLE_ENDIAN)); |
306 validate64le(list); | 298 validate64le(list); |
307 } else { | 299 } else { |
308 Expect.isTrue(identical(Endianness.HOST_ENDIAN, Endianness.BIG_ENDIAN)); | 300 Expect.isTrue(identical(Endianness.HOST_ENDIAN, Endianness.BIG_ENDIAN)); |
309 validate64be(list); | 301 validate64be(list); |
310 } | 302 } |
311 | 303 |
312 bd.setFloat32(0, -2.4060893954673178e+30); // Default is big endian access. | 304 bd.setFloat32(0, -2.4060893954673178e+30); // Default is big endian access. |
313 validate32be(list); | 305 validate32be(list); |
314 bd.setFloat32(0, -2.4060893954673178e+30, Endianness.BIG_ENDIAN); | 306 bd.setFloat32(0, -2.4060893954673178e+30, Endianness.BIG_ENDIAN); |
315 validate32be(list); | 307 validate32be(list); |
316 bd.setFloat32(0, -2.4060893954673178e+30, Endianness.LITTLE_ENDIAN); | 308 bd.setFloat32(0, -2.4060893954673178e+30, Endianness.LITTLE_ENDIAN); |
317 validate32le(list); | 309 validate32le(list); |
318 bd.setFloat32(0, -2.4060893954673178e+30, Endianness.HOST_ENDIAN); | 310 bd.setFloat32(0, -2.4060893954673178e+30, Endianness.HOST_ENDIAN); |
319 if (host_is_little_endian) { | 311 if (host_is_little_endian) { |
320 Expect.isTrue(identical(Endianness.HOST_ENDIAN, Endianness.LITTLE_ENDIAN)); | 312 Expect.isTrue(identical(Endianness.HOST_ENDIAN, Endianness.LITTLE_ENDIAN)); |
321 validate32le(list); | 313 validate32le(list); |
322 } else { | 314 } else { |
323 Expect.isTrue(identical(Endianness.HOST_ENDIAN, Endianness.BIG_ENDIAN)); | 315 Expect.isTrue(identical(Endianness.HOST_ENDIAN, Endianness.BIG_ENDIAN)); |
324 validate32be(list); | 316 validate32be(list); |
325 } | 317 } |
326 | 318 |
327 bd.setFloat64(0, -7.898661740976602e+240); // Default is big endian access. | 319 bd.setFloat64(0, -7.898661740976602e+240); // Default is big endian access. |
328 validate64be(list); | 320 validate64be(list); |
329 bd.setFloat64(0, -7.898661740976602e+240, Endianness.BIG_ENDIAN); | 321 bd.setFloat64(0, -7.898661740976602e+240, Endianness.BIG_ENDIAN); |
330 validate64be(list); | 322 validate64be(list); |
331 bd.setFloat64(0, -7.898661740976602e+240, Endianness.LITTLE_ENDIAN); | 323 bd.setFloat64(0, -7.898661740976602e+240, Endianness.LITTLE_ENDIAN); |
332 validate64le(list); | 324 validate64le(list); |
333 bd.setFloat64(0, -7.898661740976602e+240, Endianness.HOST_ENDIAN); | 325 bd.setFloat64(0, -7.898661740976602e+240, Endianness.HOST_ENDIAN); |
334 if (host_is_little_endian) { | 326 if (host_is_little_endian) { |
335 Expect.isTrue(identical(Endianness.HOST_ENDIAN, Endianness.LITTLE_ENDIAN)); | 327 Expect.isTrue(identical(Endianness.HOST_ENDIAN, Endianness.LITTLE_ENDIAN)); |
336 validate64le(list); | 328 validate64le(list); |
337 } else { | 329 } else { |
338 Expect.isTrue(identical(Endianness.HOST_ENDIAN, Endianness.BIG_ENDIAN)); | 330 Expect.isTrue(identical(Endianness.HOST_ENDIAN, Endianness.BIG_ENDIAN)); |
339 validate64be(list); | 331 validate64be(list); |
340 } | 332 } |
341 | |
342 } | 333 } |
343 | 334 |
344 | |
345 main() { | 335 main() { |
346 testGetters(); | 336 testGetters(); |
347 testSetters(); | 337 testSetters(); |
348 } | 338 } |
OLD | NEW |