| // 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 'package:pigeon/functional.dart'; |
| import 'package:test/test.dart'; |
| |
| void main() { |
| test('indexMap', () { |
| final List<String> items = <String>['a', 'b', 'c']; |
| final List<String> result = |
| indexMap(items, (int index, String value) => value + index.toString()) |
| .toList(); |
| expect(result[0], 'a0'); |
| expect(result[1], 'b1'); |
| expect(result[2], 'c2'); |
| }); |
| |
| test('enumerate', () { |
| final List<String> items = <String>['a', 'b', 'c']; |
| int saw = 0; |
| enumerate(items, (int index, String value) { |
| if (index == 0) { |
| expect(value, 'a'); |
| saw |= 0x1; |
| } else if (index == 1) { |
| expect(value, 'b'); |
| saw |= 0x2; |
| } else if (index == 2) { |
| expect(value, 'c'); |
| saw |= 0x4; |
| } |
| }); |
| expect(saw, 0x7); |
| }); |
| |
| test('map2', () { |
| final List<int> result = |
| map2(<int>[3, 5, 7], <int>[1, 2, 3], (int x, int y) => x * y).toList(); |
| expect(result[0], 3); |
| expect(result[1], 10); |
| expect(result[2], 21); |
| }); |
| |
| test('map2 unequal', () { |
| expect( |
| () => map2(<int>[], <int>[1, 2, 3], (int x, int y) => x * y).toList(), |
| throwsArgumentError); |
| }); |
| |
| test('map3', () { |
| final List<int> result = map3(<int>[3, 5, 7], <int>[1, 2, 3], |
| <int>[2, 2, 2], (int x, int y, int z) => x * y * z).toList(); |
| expect(result[0], 6); |
| expect(result[1], 20); |
| expect(result[2], 42); |
| }); |
| |
| test('map3 unequal', () { |
| expect( |
| () => map3(<int>[], <int>[1, 2, 3], <int>[], |
| (int x, int y, int z) => x * y * z).toList(), |
| throwsArgumentError); |
| }); |
| test('wholeNumbers', () { |
| final List<int> result = wholeNumbers.take(3).toList(); |
| expect(result.length, 3); |
| expect(result[0], 0); |
| expect(result[1], 1); |
| expect(result[2], 2); |
| }); |
| |
| test('repeat', () { |
| final List<int> result = repeat(123, 3).toList(); |
| expect(result.length, 3); |
| expect(result[0], 123); |
| expect(result[1], 123); |
| expect(result[2], 123); |
| }); |
| } |