OLD | NEW |
1 // Copyright (c) 2016, the Dart project authors. Please see the AUTHORS file | 1 // Copyright (c) 2016, 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 test.src.summary.flat_buffers_test; | 5 library test.src.summary.flat_buffers_test; |
6 | 6 |
7 import 'dart:typed_data'; | 7 import 'dart:typed_data'; |
8 | 8 |
9 import 'package:analyzer/src/summary/flat_buffers.dart'; | 9 import 'package:analyzer/src/summary/flat_buffers.dart'; |
10 import 'package:unittest/unittest.dart'; | 10 import 'package:unittest/unittest.dart'; |
(...skipping 174 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
185 Offset offset = builder.writeListUint32(values); | 185 Offset offset = builder.writeListUint32(values); |
186 byteList = builder.finish(offset); | 186 byteList = builder.finish(offset); |
187 } | 187 } |
188 // read and verify | 188 // read and verify |
189 BufferPointer root = new BufferPointer.fromBytes(byteList); | 189 BufferPointer root = new BufferPointer.fromBytes(byteList); |
190 List<int> items = const Uint32ListReader().read(root); | 190 List<int> items = const Uint32ListReader().read(root); |
191 expect(items, hasLength(4)); | 191 expect(items, hasLength(4)); |
192 expect(items, orderedEquals(values)); | 192 expect(items, orderedEquals(values)); |
193 } | 193 } |
194 | 194 |
| 195 void test_writeList_ofBool() { |
| 196 void verifyListBooleans(int len, List<int> trueBits) { |
| 197 // write |
| 198 List<int> byteList; |
| 199 { |
| 200 Builder builder = new Builder(initialSize: 0); |
| 201 List<bool> values = new List<bool>.filled(len, false); |
| 202 for (int bit in trueBits) { |
| 203 values[bit] = true; |
| 204 } |
| 205 Offset offset = builder.writeListBool(values); |
| 206 byteList = builder.finish(offset); |
| 207 } |
| 208 // read and verify |
| 209 BufferPointer root = new BufferPointer.fromBytes(byteList); |
| 210 List<bool> items = const BoolListReader().read(root); |
| 211 expect(items, hasLength(len)); |
| 212 for (int i = 0; i < items.length; i++) { |
| 213 expect(items[i], trueBits.contains(i), reason: 'bit $i of $len'); |
| 214 } |
| 215 } |
| 216 verifyListBooleans(0, <int>[]); |
| 217 verifyListBooleans(1, <int>[]); |
| 218 verifyListBooleans(1, <int>[0]); |
| 219 verifyListBooleans(31, <int>[0, 1]); |
| 220 verifyListBooleans(31, <int>[1, 2, 24, 25, 30]); |
| 221 verifyListBooleans(31, <int>[0, 30]); |
| 222 verifyListBooleans(32, <int>[1, 2, 24, 25, 31]); |
| 223 verifyListBooleans(33, <int>[1, 2, 24, 25, 32]); |
| 224 verifyListBooleans(33, <int>[1, 2, 24, 25, 31, 32]); |
| 225 verifyListBooleans(63, <int>[]); |
| 226 verifyListBooleans(63, <int>[0, 1, 2, 61, 62]); |
| 227 verifyListBooleans(63, new List<int>.generate(63, (i) => i)); |
| 228 verifyListBooleans(64, <int>[]); |
| 229 verifyListBooleans(64, <int>[0, 1, 2, 61, 62, 63]); |
| 230 verifyListBooleans(64, <int>[1, 2, 62]); |
| 231 verifyListBooleans(64, <int>[0, 1, 2, 63]); |
| 232 verifyListBooleans(64, new List<int>.generate(64, (i) => i)); |
| 233 verifyListBooleans(100, <int>[0, 3, 30, 60, 90, 99]); |
| 234 } |
| 235 |
195 void test_writeList_ofFloat64() { | 236 void test_writeList_ofFloat64() { |
196 List<double> values = <double>[-1.234567, 3.4E+9, -5.6E-13, 7.8, 12.13]; | 237 List<double> values = <double>[-1.234567, 3.4E+9, -5.6E-13, 7.8, 12.13]; |
197 // write | 238 // write |
198 List<int> byteList; | 239 List<int> byteList; |
199 { | 240 { |
200 Builder builder = new Builder(initialSize: 0); | 241 Builder builder = new Builder(initialSize: 0); |
201 Offset offset = builder.writeListFloat64(values); | 242 Offset offset = builder.writeListFloat64(values); |
202 byteList = builder.finish(offset); | 243 byteList = builder.finish(offset); |
203 } | 244 } |
204 // read and verify | 245 // read and verify |
(...skipping 148 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
353 } | 394 } |
354 | 395 |
355 class TestPointReader extends TableReader<TestPointImpl> { | 396 class TestPointReader extends TableReader<TestPointImpl> { |
356 const TestPointReader(); | 397 const TestPointReader(); |
357 | 398 |
358 @override | 399 @override |
359 TestPointImpl createObject(BufferPointer object) { | 400 TestPointImpl createObject(BufferPointer object) { |
360 return new TestPointImpl(object); | 401 return new TestPointImpl(object); |
361 } | 402 } |
362 } | 403 } |
OLD | NEW |