| // Copyright 2013 The Flutter Authors. All rights reserved. |
| // Use of this source code is governed by a BSD-style license that can be |
| // found in the LICENSE file. |
| |
| import 'dart:typed_data'; |
| import 'dart:ui'; |
| |
| import 'package:litetest/litetest.dart'; |
| |
| void main() { |
| test('Vertices checks', () { |
| try { |
| Vertices( |
| VertexMode.triangles, |
| const <Offset>[Offset.zero, Offset.zero, Offset.zero], |
| indices: Uint16List.fromList(const <int>[0, 2, 5]), |
| ); |
| throw 'Vertices did not throw the expected error.'; |
| } on ArgumentError catch (e) { |
| expect('$e', 'Invalid argument(s): "indices" values must be valid indices in the positions list (i.e. numbers in the range 0..2), but indices[2] is 5, which is too big.'); |
| } |
| Vertices( // This one does not throw. |
| VertexMode.triangles, |
| const <Offset>[Offset.zero], |
| ).dispose(); |
| Vertices( // This one should not throw. |
| VertexMode.triangles, |
| const <Offset>[Offset.zero, Offset.zero, Offset.zero], |
| indices: Uint16List.fromList(const <int>[0, 2, 1, 2, 0, 1, 2, 0]), // Uint16List implements List<int> so this is ok. |
| ).dispose(); |
| }); |
| |
| test('Vertices.raw checks', () { |
| try { |
| Vertices.raw( |
| VertexMode.triangles, |
| Float32List.fromList(const <double>[0.0]), |
| ); |
| throw 'Vertices.raw did not throw the expected error.'; |
| } on ArgumentError catch (e) { |
| expect('$e', 'Invalid argument(s): "positions" must have an even number of entries (each coordinate is an x,y pair).'); |
| } |
| try { |
| Vertices.raw( |
| VertexMode.triangles, |
| Float32List.fromList(const <double>[0.0, 0.0, 0.0, 0.0, 0.0, 0.0]), |
| indices: Uint16List.fromList(const <int>[0, 2, 5]), |
| ); |
| throw 'Vertices.raw did not throw the expected error.'; |
| } on ArgumentError catch (e) { |
| expect('$e', 'Invalid argument(s): "indices" values must be valid indices in the positions list (i.e. numbers in the range 0..2), but indices[2] is 5, which is too big.'); |
| } |
| Vertices.raw( // This one does not throw. |
| VertexMode.triangles, |
| Float32List.fromList(const <double>[0.0, 0.0]), |
| ).dispose(); |
| Vertices.raw( // This one should not throw. |
| VertexMode.triangles, |
| Float32List.fromList(const <double>[0.0, 0.0, 0.0, 0.0, 0.0, 0.0]), |
| indices: Uint16List.fromList(const <int>[0, 2, 1, 2, 0, 1, 2, 0]), |
| ).dispose(); |
| }); |
| } |