// 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 int toSigned(int width)
/// Returns the least significant width bits of this integer, extending the
/// highest retained bit to the sign. This is the same as truncating the value
/// to fit in width bits using a signed 2-s complement representation.
/// The returned value has the same bit value in all positions higher than width.
///                                V--sign bit-V
///  16.toSigned(5) == -16   //  00010000 -> 11110000
///  239.toSigned(5) == 15   //  11101111 -> 00001111
/// ...
/// @description Checks that this method returns the least significant width bits
/// of this integer, extending the highest retained bit to the sign
/// @author sgrekhov@unipro.ru

import "../../../Utils/expect.dart";

main() {
  Expect.equals(-16, 16.toSigned(5)); // 00010000 -> 11110000
  Expect.equals(15, 239.toSigned(5)); // 11101111 -> 00001111
}
