// Copyright (c) 2016, 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.fromCharCode(int charCode)
 * Allocates a new String for the specified charCode.
 * ...
 * @description Checks that a correct string is created
 * @author sgrekhov@unipro.ru
 */
import "../../../Utils/expect.dart";

main() {
  String str = new String.fromCharCode(0x61);
  Expect.equals("a", str);

  str = new String.fromCharCode(0);
  Expect.equals("\u0000", str);
  
  str = new String.fromCharCode(0x62);
  Expect.equals('b', str);
}
