// Copyright 2009 the Sputnik authors.  All rights reserved.
// This code is governed by the BSD license found in the LICENSE file.

/*---
info: ToUint16 returns values between 0 and 2^16-1
es5id: 9.7_A2.1
description: >
    Converting numbers, which are in\outside of Uint16 scopes, with
    String.fromCharCode(Number).charCodeAt(0) construction
---*/

// CHECK#1
if (String.fromCharCode(0).charCodeAt(0) !== 0) {
  $ERROR('#1: String.fromCharCode(0).charCodeAt(0) === 0. Actual: ' + (String.fromCharCode(0).charCodeAt(0)));
}

// CHECK#2
if (String.fromCharCode(1).charCodeAt(0) !== 1) {
  $ERROR('#2: String.fromCharCode(1).charCodeAt(0) === 1. Actual: ' + (String.fromCharCode(1).charCodeAt(0)));
}

// CHECK#3
if (String.fromCharCode(-1).charCodeAt(0) !== 65535) {
  $ERROR('#3: String.fromCharCode(-1).charCodeAt(0) === 65535. Actual: ' + (String.fromCharCode(-1).charCodeAt(0)));
}

// CHECK#4
if (String.fromCharCode(65535).charCodeAt(0) !== 65535) {
  $ERROR('#4: String.fromCharCode(65535).charCodeAt(0) === 65535. Actual: ' + (String.fromCharCode(65535).charCodeAt(0)));
}

// CHECK#5
if (String.fromCharCode(65534).charCodeAt(0) !== 65534) {
  $ERROR('#5: String.fromCharCode(65534).charCodeAt(0) === 65534. Actual: ' + (String.fromCharCode(65534).charCodeAt(0)));
}

// CHECK#6
if (String.fromCharCode(65536).charCodeAt(0) !== 0) {
  $ERROR('#6: String.fromCharCode(65536).charCodeAt(0) === 0. Actual: ' + (String.fromCharCode(65536).charCodeAt(0)));
}

// CHECK#7
if (String.fromCharCode(4294967295).charCodeAt(0) !== 65535) {
  $ERROR('#7: String.fromCharCode(4294967295).charCodeAt(0) === 65535. Actual: ' + (String.fromCharCode(4294967295).charCodeAt(0)));
}

// CHECK#8
if (String.fromCharCode(4294967294).charCodeAt(0) !== 65534) {
  $ERROR('#8: String.fromCharCode(4294967294).charCodeAt(0) === 65534. Actual: ' + (String.fromCharCode(4294967294).charCodeAt(0)));
}

// CHECK#9
if (String.fromCharCode(4294967296).charCodeAt(0) !== 0) {
  $ERROR('#9: String.fromCharCode(4294967296).charCodeAt(0) === 0. Actual: ' + (String.fromCharCode(4294967296).charCodeAt(0)));
}

reportCompare(0, 0);
