| // Copyright (c) 2016, 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 = 2.9 |
| |
| import "dart:typed_data"; |
| import "package:expect/expect.dart"; |
| |
| main() { |
| for (var copying in [true, false]) { |
| var b; |
| testLength(n) { |
| Expect.equals(n, b.length); |
| if (n == 0) { |
| Expect.isTrue(b.isEmpty, "isEmpty: #${b.length}"); |
| Expect.isFalse(b.isNotEmpty, "isNotEmpty: #${b.length}"); |
| } else { |
| Expect.isTrue(b.isNotEmpty, "isNotEmpty: #${b.length}"); |
| Expect.isFalse(b.isEmpty, "isEmpty: #${b.length}"); |
| } |
| } |
| |
| b = new BytesBuilder(copy: copying); |
| testLength(0); |
| |
| b.addByte(0); |
| testLength(1); |
| |
| b.add([1, 2, 3]); |
| testLength(4); |
| |
| b.add(<int>[4, 5, 6]); |
| testLength(7); |
| |
| b.add(new Uint8List.fromList([7, 8, 9])); |
| testLength(10); |
| |
| b.add(new Uint16List.fromList([10, 11, 12])); |
| testLength(13); |
| |
| var bytes = b.toBytes(); |
| Expect.isTrue(bytes is Uint8List); |
| Expect.listEquals([0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12], bytes); |
| testLength(13); |
| |
| b.add("\x0d\x0e\x0f".codeUnits); |
| testLength(16); |
| |
| bytes = b.takeBytes(); |
| testLength(0); |
| Expect.isTrue(bytes is Uint8List); |
| Expect.listEquals( |
| [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15], bytes); |
| |
| b.addByte(0); |
| testLength(1); |
| |
| b.clear(); |
| testLength(0); |
| |
| b.addByte(0); |
| testLength(1); |
| } |
| } |