| // Copyright (c) 2017, 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. |
| |
| /// @assertion String replaceAllMapped(Pattern from, String replace(Match match)) |
| /// ... |
| /// The replace function is called with the Match generated by the pattern, and |
| /// its result is used as replacement |
| /// @description Checks that the replace function is called with the Match |
| /// generated by the pattern, and its result is used as replacement |
| /// @author sgrekhov@unipro.ru |
| |
| import "../../../Utils/expect.dart"; |
| |
| main() { |
| check("123", "1", [[0, 1]]); |
| check("1231", "1", [[0, 1], [3, 4]]); |
| check("1231", "12", [[0, 2]]); |
| check("1231", "23", [[1, 3]]); |
| check("aa 1231\\n", new RegExp("\\s"), [[2, 3], [7, 8]]); |
| } |
| |
| check(String str, Pattern from, List expected) { |
| int count = 0; |
| str.replaceAllMapped(from, (m) { |
| var expData = expected[count++]; |
| Expect.equals(str, m.input); |
| Expect.equals(from, m.pattern); |
| Expect.equals(expData[0], m.start); |
| Expect.equals(expData[1], m.end); |
| return ""; |
| }); |
| } |