示例#1
0
// Anything but an object, array, or undefined.
function invalidMergeArgumentSpecifier() {
  return JSC.one_of([
    (function() { return function() {}; }),
    JSC.integer(), JSC.number(), JSC.string(),
    true, Infinity, -Infinity
  ]);
}
示例#2
0
      check(100, [ JSC.array([TestUtils.TraversableObjectSpecifier]) ], function(array) {
        var immutable = Immutable(array);
        var mutable = array.slice();

        var idx = JSC.integer(0, array.length-1);
        var key = JSC.one_of(_.keys(immutable[idx]))();
        var value;
        do {
          value = JSC.any()();
        } while (TestUtils.isDeepEqual(value, immutable[idx][key]));

        TestUtils.assertJsonEqual(immutable, mutable);

        var resultImmutable = Immutable.setIn(immutable, [idx, key], value, {deep: true});
        var resultMutable = mutable.slice();
        resultMutable[idx][key] = value;
        
        TestUtils.assertJsonEqual(
          resultImmutable,
          resultMutable
        );
        assert.notEqual(
          immutable,
          resultImmutable
        );
        assert.equal(
          Immutable.setIn(resultImmutable, [idx, key], value, {deep: true}),
          resultImmutable
        );
      });
示例#3
0
function TraversableObjectSpecifier() {
  var complexFactory = JSC.one_of([ComplexObjectSpecifier(), JSC.array()]);
  var obj = JSC.object({complex: complexFactory,
                        deep: JSC.object({complex: complexFactory})
                     })();

  obj[JSC.string()()] = JSC.any()();
  return withoutItengerKeys(obj);
}
      check(100, [ JSC.array([TestUtils.TraversableObjectSpecifier]) ], function(array) {
        var immutable = Immutable(array);
        var idx = JSC.integer(0, array.length-1);
        var key = JSC.one_of(_.keys(immutable[idx]))();
        var value = immutable[idx][key];

        TestUtils.assertJsonEqual(
          Immutable.getIn(immutable, [idx, key]),
          value
        );
      });
示例#5
0
    var obj = _.object(_.map(JSC.array()(), function() {
      var key   = JSC.string()();
      var value = JSC.one_of([JSC.array(), JSC.object(),
        JSC.falsy(), JSC.integer(), JSC.number(), JSC.string(),
        true, Infinity, -Infinity])();

      if (typeof value === "object") {
        return [key, withoutItengerKeys(value)];
      }

      return [key, value];
    }));
示例#6
0
      check(100, [ JSC.array([TestUtils.TraversableObjectSpecifier]) ], function(array) {
        var immutable = Immutable(array);
        var mutable = array.slice();
        var value = JSC.any()();

        var idx = JSC.integer(0, array.length-1);
        var key = JSC.one_of(_.keys(immutable[idx]))();

        var util = require('util');
        function printArr(arr) {
          return '[\n\t>'+_.map(arr, util.inspect).join('\n\t>')+'\n]';
        }

        TestUtils.assertJsonEqual(immutable, mutable);
        var resultMutable = mutable.slice();
        resultMutable[idx][key] = value;

        TestUtils.assertJsonEqual(
          Immutable.setIn(immutable, [idx, key], value),
          resultMutable
        );
      });