summaryrefslogtreecommitdiff
path: root/external/contributions/Google/sputnik_conformance_modified/09_Type_Conversion/9.5_ToInt32/S9.5_A2.2_T2.js
blob: d5b2d7ccdcc62a8349fc9c9a59de64598ce97d4a (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
// Copyright 2009 the Sputnik authors.  All rights reserved.
// This code is governed by the BSD license found in the LICENSE file.

/**
 * @name: S9.5_A2.2_T2;
 * @section: 9.5, 11.4.8;
 * @assertion: Compute result modulo 2^32;
 * @description: Use operator ~;
*/

// CHECK#1
if (~-2147483647 !== 2147483646) {
  $ERROR('#1: ~-2147483647 === 2147483646)');
}

// CHECK#2
if (~-2147483648 !== ~-2147483648) {
  $ERROR('#2: ~-2147483648 ==== ~-2147483648)');
}

// CHECK#3
if (~-2147483649 !== ~2147483647) {
  $ERROR('#3: ~-2147483649 ==== ~2147483647)');
}

// CHECK#4
if ((~4294967295 << 0) !== ~-1) {
  $ERROR('#4: (~4294967295 << 0) === ~-1)');
}

// CHECK#5
if ((~4294967296 << 0) !== ~0) {
  $ERROR('#5: (~4294967296 << 0) === ~0)');
}

// CHECK#6
if ((~4294967297 << 0) !== ~1) {
  $ERROR('#6: (~4294967297 << 0) === ~1)');
}

// CHECK#7
if ((~-4294967295 << 0) !== ~1) {
  $ERROR('#7: (~-4294967295 << 0) === ~1)');
}

// CHECK#8
if ((~-4294967296 << 0) !== ~0) {
  $ERROR('#8: (~-4294967296 << 0) === ~0)');
}

// CHECK#9
if ((~-4294967297 << 0) !== ~-1) {
  $ERROR('#9: (~-4294967297 << 0) === ~-1)');
}

// CHECK#10
if ((~8589934591 << 0) !== ~-1) {
  $ERROR('#10: (~8589934591 << 0) === ~-1)');
}

// CHECK#11
if ((~8589934592 << 0) !== ~0) {
  $ERROR('#11: (~8589934592 << 0) === ~0)');
}

// CHECK#12
if ((~8589934593 << 0) !== ~1) {
  $ERROR('#12: (~8589934593 << 0) === ~1)');
}