| // 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 Iterable<String> split (String lines, [int start = 0, int end]) |
| /// Split lines into individual lines. |
| /// If start and end are provided, only split the contents of |
| /// lines.substring(start, end). The start and end values must specify a valid |
| /// sub-range of lines (0 <= start <= end <= lines.length). |
| /// |
| /// @description Checks that the start and end values must specify a valid |
| /// sub-range of lines (0 <= start <= end <= lines.length). |
| /// @author ngl@unipro.ru |
| |
| import "dart:convert"; |
| import "../../../Utils/expect.dart"; |
| |
| main() { |
| String lines = """ |
| abc |
| defg |
| hijkl |
| """; |
| // start < 0 |
| try { |
| print(LineSplitter.split(lines, -1)); |
| } on RangeError {} |
| // start > lines.length |
| try { |
| print(LineSplitter.split(lines, 20)); |
| } on RangeError {} |
| // start > end |
| try { |
| print(LineSplitter.split(lines, 10, 7)); |
| } on RangeError {} |
| // end < 0 |
| try { |
| print(LineSplitter.split(lines, 10, -7)); |
| } on RangeError {} |
| // end > lines.length |
| try { |
| print(LineSplitter.split(lines, 10, 20)); |
| } on RangeError {} |
| // start < 0, end < 0 |
| try { |
| print(LineSplitter.split(lines, -10, -7)); |
| } on RangeError {} |
| // start > lines.length, end > lines.length |
| try { |
| print(LineSplitter.split(lines, 20, 25)); |
| } on RangeError {} |
| |
| } |