I ran the below in Rhino and got

js> load('/tmp/t')
js: "/tmp/t", line 2: exception from uncaught JavaScript throw: Error:
should fail !== at end of tests
        at /tmp/t:2 (assertEquals)
        at /tmp/t:85
        at <stdin>:8

It's the relevant portions of ExpressionTest with some stubs, and
numeric casts and numeric suffixes removed.


function assertEquals(a, b) {
  if (a !== b) { throw new Error(a + ' !== ' + b); }
}

var Operation = {
toInt32: function (n) { return n | 0; },
toUint32: function (n) { return n >>> 0; }
};

var Double = {
  POSITIVE_INFINITY: 1 / 0,
  NEGATIVE_INFINITY: -1 / 0,
  NaN: NaN
};

    assertEquals(0, Operation.toInt32(0));
    assertEquals(0, Operation.toInt32(-0));
    assertEquals(0, Operation.toInt32(Double.POSITIVE_INFINITY));
    assertEquals(0, Operation.toInt32(Double.NEGATIVE_INFINITY));
    assertEquals(0, Operation.toInt32(Double.NaN));
    assertEquals(0, Operation.toInt32(0x100000000));
    assertEquals(0, Operation.toInt32(-0x100000000));
    assertEquals(0x7fffffff, Operation.toInt32(0x7fffffff));
    assertEquals(-0x7fffffff, Operation.toInt32(-0x7fffffff));
    assertEquals(-0x80000000, Operation.toInt32(-0x80000000));
    assertEquals(-0x80000000, Operation.toInt32(0x80000000));
    assertEquals(1, Operation.toInt32(1));
    assertEquals(-1, Operation.toInt32(-1));
    assertEquals(2, Operation.toInt32(2));
    assertEquals(-2, Operation.toInt32(-2));
    assertEquals( 1e6, Operation.toInt32(1e6));
    assertEquals( 1e7, Operation.toInt32(1e7));
    assertEquals( 1e8, Operation.toInt32(1e8));
    assertEquals( 1e9, Operation.toInt32(1e9));
    assertEquals(1410065408, Operation.toInt32(1e10));
    assertEquals(1215752192, Operation.toInt32(1e11));
    assertEquals(-727379968, Operation.toInt32(1e12));
    assertEquals( -1e6, Operation.toInt32(-1e6));
    assertEquals( -1e7, Operation.toInt32(-1e7));
    assertEquals( -1e8, Operation.toInt32(-1e8));
    assertEquals( -1e9, Operation.toInt32(-1e9));
    assertEquals(-1410065408, Operation.toInt32(-1e10));
    assertEquals(-1215752192, Operation.toInt32(-1e11));
    assertEquals(727379968, Operation.toInt32(-1e12));
    assertEquals(0, Operation.toInt32(0.5));
    assertEquals(0, Operation.toInt32(-0.5));
    assertEquals(1, Operation.toInt32(1.5));
    assertEquals(-1, Operation.toInt32(-1.5));

    assertEquals(0, Operation.toUint32(0));
    assertEquals(0, Operation.toUint32(-0));
    assertEquals(0, Operation.toUint32(Double.POSITIVE_INFINITY));
    assertEquals(0, Operation.toUint32(Double.NEGATIVE_INFINITY));
    assertEquals(0, Operation.toUint32(Double.NaN));
    assertEquals(0, Operation.toUint32(0x100000000));
    assertEquals(0, Operation.toUint32(-0x100000000));
    assertEquals(0x7fffffff, Operation.toUint32(0x7fffffff));
    assertEquals(0x80000001, Operation.toUint32(-0x7fffffff));
    assertEquals(0x80000000, Operation.toUint32(-0x80000000));
    assertEquals(0x80000000, Operation.toUint32(0x80000000));
    assertEquals(1, Operation.toUint32(1));
    assertEquals(0xffffffff, Operation.toUint32(-1));
    assertEquals(2, Operation.toUint32(2));
    assertEquals(0xfffffffe, Operation.toUint32(-2));
    assertEquals( 1e6, Operation.toUint32(1e6));
    assertEquals( 1e7, Operation.toUint32(1e7));
    assertEquals( 1e8, Operation.toUint32(1e8));
    assertEquals( 1e9, Operation.toUint32(1e9));
    assertEquals(1410065408, Operation.toUint32(1e10));
    assertEquals(1215752192, Operation.toUint32(1e11));
    assertEquals(3567587328, Operation.toUint32(1e12));
    assertEquals( (0x100000000 - 1e6), Operation.toUint32(-1e6));
    assertEquals( (0x100000000 - 1e7), Operation.toUint32(-1e7));
    assertEquals( (0x100000000 - 1e8), Operation.toUint32(-1e8));
    assertEquals( (0x100000000 - 1e9), Operation.toUint32(-1e9));
    assertEquals(2884901888, Operation.toUint32(-1e10));
    assertEquals(3079215104, Operation.toUint32(-1e11));
    assertEquals(727379968, Operation.toUint32(-1e12));
    assertEquals(0, Operation.toUint32(0.5));
    assertEquals(0, Operation.toUint32(-0.5));
    assertEquals(1, Operation.toUint32(1.5));
    assertEquals(0xffffffff, Operation.toUint32(-1.5));


assertEquals('should fail', 'at end of tests');


http://codereview.appspot.com/157109

Reply via email to