// Copyright (c) 2011, 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 Splits the string around matches of [pattern]. Returns a list of
 * substrings.
 * @description Checks the length of resulting list
 * @author msyabro
 */
import "../../../Utils/expect.dart";


main() {
  Expect.equals(5, "1, 2, 3, 4, 5".split(",").length);
  
  Expect.equals(4, "10011".split("1").length);

  Expect.equals(6, "1, 2, 3, 4, 5".split(new RegExp("\\d", multiLine: false,
      caseSensitive: true)).length); // empty tokens are included
  
  Expect.equals(1, "12345".split(",").length);
  
  Expect.equals(2, "12345,".split(",").length);
  
  Expect.equals(0, "".split("").length); // is it right?
  
  Expect.equals(2, "12".split("").length); // also questionable
}
