function testToKeyRange_DateTime() {
  var table = schema.table('TableC');
  var d1 = new Date(1443646468270);

  var p = new lf.pred.ValuePredicate(table['hireDate'], d1, lf.eval.Type.EQ);
  assertTrue(p.isKeyRangeCompatible());
  assertEquals(
      '[' + d1.getTime() + ', ' + d1.getTime() + ']',
      p.toKeyRange().toString());

  p = new lf.pred.ValuePredicate(table['hireDate'], d1, lf.eval.Type.GTE);
  assertTrue(p.isKeyRangeCompatible());
  assertEquals('[' + d1.getTime() + ', unbound]', p.toKeyRange().toString());

  p = new lf.pred.ValuePredicate(table['hireDate'], d1, lf.eval.Type.GT);
  assertTrue(p.isKeyRangeCompatible());
  assertEquals('(' + d1.getTime() + ', unbound]', p.toKeyRange().toString());

  p = new lf.pred.ValuePredicate(table['hireDate'], d1, lf.eval.Type.LTE);
  assertTrue(p.isKeyRangeCompatible());
  assertEquals('[unbound, ' + d1.getTime() + ']', p.toKeyRange().toString());

  p = new lf.pred.ValuePredicate(table['hireDate'], d1, lf.eval.Type.LT);
  assertTrue(p.isKeyRangeCompatible());
  assertEquals('[unbound, ' + d1.getTime() + ')', p.toKeyRange().toString());

  var d2 = new Date();
  p = new lf.pred.ValuePredicate(
      table['hireDate'], [d1, d2], lf.eval.Type.BETWEEN);
  assertTrue(p.isKeyRangeCompatible());
  assertEquals(
      '[' + d1.getTime() + ', ' + d2.getTime() + ']',
      p.toKeyRange().toString());

  p.setComplement(true);
  assertEquals(
      '[unbound, ' + d1.getTime() + '),(' + d2.getTime() + ', unbound]',
      p.toKeyRange().toString());
}
Tests the conversion of a value predicate to a KeyRange for a column of type
DATE_TIME.