示例#1
0
    "Outside lower and right are padded with walls" : function() {
	var view = [['6', 'w', 'w'],
		    ['w', 'w', 'w'],
		    ['w', 'w', 'w']];

	buster.assert.equals(this.world.look(7, 4), view); 
    },
示例#2
0
    "Outside upper and left gets are padded with walls" : function() {
	var view = [['w', 'w', 'w'],
		    ['w', 'w', 'w'],
		    ['w', 'w', 'b']];

	buster.assert.equals(this.world.look(0, 0), view); 
    },
示例#3
0
  nodeZlib.gunzip(deflated, function(err, buf) {
    console.log("Inflate:", buf.length);
    buster.assert.equals(buf.length, testData.length);
    buster.assert(arrayEquals(buf, testData));

    done();
  });
示例#4
0
    "Northwest" : function() {
	var surroundings = this.wall.toBits([['w', 'w', 'w' ],
					     ['w', 'w', 'w' ],
					     ['w', 'w', '' ],
					    ]);
	buster.assert.equals(wall.typeFrom(surroundings), 'w_northwest');
    },
示例#5
0
    "Field can be converted to map" : function() {
	var view = [['w', 'w', 'w'],
		    ['w', 'b', 'w'],
		    ['w', '.', 'w']];

	buster.assert.equals(this.world.look(1, 1), view); 
    },
示例#6
0
    "South east" : function() {
	var surroundings = this.wall.toBits([['', 'w', 'w' ],
					     ['w', 'w', 'w' ],
					     ['w', 'w', 'w' ],
					    ]);
	buster.assert.equals(wall.typeFrom(surroundings), 'w_southeast');
    },
示例#7
0
	'Expect to be able to get a model from collection by cid': function() {
		var fakeModel = new Epitome.Model({
			id: 'hello'
		});

		this.collection.addModel(fakeModel);
		buster.assert.equals(fakeModel, this.collection.getModelByCID(fakeModel.get('id')));
	}
示例#8
0
              .on('success', function (m) {
                  // console.log("proposed: %s", JSON.stringify(m));

                  // 0 alternatives.
                  buster.assert.equals(0, m.alternatives.length)

                  callback();
                })
示例#9
0
 .on('end', function () {
   var fsmd5sum = md5sum.digest('hex')
   assert.equals(
       dbmd5sum
     , fsmd5sum
     , 'MD5 sum compare of ' + data.key + ' failed (' + dbmd5sum + ' != ' + fsmd5sum + ')'
   )
 })
示例#10
0
 assertException: function(block, msg) {
   try {
     block()
     throw new Error('Passed function did not throw an error')
   } catch(e) {
     buster.assert.equals(e.message, msg)
   }
 }
示例#11
0
	'Expect adding a model via an object only to create a model and add it >': function() {
		var data = {
			id: 'hello'
		};

		this.collection.addModel(data);
		buster.assert.isTrue(instanceOf(this.collection.getModelByCID(data.id), this.collection.model));
	},
示例#12
0
    "inflate pre-deflated data": function() {
      var size = 123456;
      var plain = new Buffer(size);
      var i, il;
      var testData =
        'eJztzydhGAAAALDd/v////////////////////////////////9no6BxkF+///z99x8A'+
        'EAgYBBQMHAISChoGFg4eAREJGQUVDR0DEwsbBxcPn4CQiJiElIycgpKKmoaWjp6BkYmZ'+
        'hZWNnYOTi5uHl49fQFBIWERUTFxCUkpaRlZOXkFRSVlFVU1dQ1NLW0dXT9/A0MjYxNTM'+
        '3MLSytrG1s7ewdHJ2cXVzd3D08vbx9fPPyAwKDgkNCw8IjIqOiY2Lj4hMSk5JTUtPSMz'+
        'KzsnNy+/oLCouKS0rLyisqq6prauvqGxqbmlta29o7Oru6e3r39gcGh4ZHRsfGJyanpm'+
        'dm5+YXFpeWV1bX1jc2t7Z3dv/+Dw6Pjk9Oz84vLq+ub27v7h8en55fXt/ePz5//z//n/'+
        '/H/+P/+f/8//5//z//n//H/+P/+f/8//5//z//n//H/+P/+f/8//5//z//n//H/+P/+f'+
        '/8//5//z//n//H/+P/+f/8//5//z//n//H/+P/+f/8//5//z//n//H/+P/+f/8//5//z'+
        '//n//H/+P/+f/8//5//z//n//H/+P/+f/8//5//z//n//H/+P/+f/8//5//z//n//H/+'+
        'P/+f/8//5//z//n//H/+P/+f/8//5//z//n//H/+P/+f/8//5//z//n//H/+P/+f/8//'+
        '5//z//n//H/+P/+f/8//5//z//n//H/+P/+f/8//5//z//n//H/+P/+f/8//5//z//n/'+
        '/H/+P/+f/8//5//z//n//H/+P/+f/8//5//z//n//H/+P/+f/8//5//z//n//H/+P/+f'+
        '/8//5//z//n//H/+P/+f/8//5//z//n//H/+P/+f/8//5//z//n//H/+P/+f/8//5//z'+
        '//n//H/+P/+f/8//5//z//n//H/+P/+f/8//5//z//n//H/+P/+f/8//5//z//n//H/+'+
        'P/+f/8//5//z//n//H/+P/+f/8//5//z//n//H/+P/+f/8//5//z//n//H/+P/+f/8//'+
        '5//z//n//H/+P/+f/8//5//z//n//H/+P/+f/8//5//z//n//H/+P/+f/8//5//z//n/'+
        '/H/+P/+f/8//5//z//n//H/+P/+f/8//5//z//n//H/+P/+f/8//5//z//n//H/+P/+f'+
        '/8//5//z//n//H/+P/+f/8//5//z//n//H/+P/+f/8//5//z//n//H/+P/+f/8//5//z'+
        '//n//H/+P/+f/8//5//z//n//H/+P/+f/8//5//z//n//H/+P/+f/8//5//z//n//H/+'+
        'P/+f/8//5//z//n//H/+P/+f/8//5//z//n//H/+P/+f/8//5//z//n//H/+P/+f/8//'+
        '5//z//n//H/+P/+f/8//5//z//n//H/+P/+f/8//5//z//n//H/+P/+f/8//5//z//n/'+
        '/H/+P/+f/8//5//z//n//H/+P/+f/8//5//z//n//H/+P/+f/8//5//z//n//H/+P/+f'+
        '/8//5//z//n//H/+P/+f/8//5//z//n//H/+P/+f/8//5//z//n//H/+P/+f/8//5//z'+
        '//n//H/+P/+f/8//5//z//n//H/+3+P/Ba1OJPE=';

      // make plain data
      for (i = 0, il = size; i < il; ++i) {
        plain[i] = i & 0xff;
      }

      var decodedData = new Buffer(testData, 'base64');

      // testdata size
      buster.assert.equals(testData.length, 1604, "source data size");
      buster.assert.equals(decodedData.length, 1202, "base64 decoded data size");

      var inflated = zlib.inflateSync(decodedData);

      buster.assert.equals(inflated.length, size, "inflated data size");
      buster.assert(arrayEquals(inflated, plain));
    },
示例#13
0
	'A model should be able to exist in 2 collections and the event emitter should work when removed from either one >': function() {
		var c2 = new this.Collection(this.models),
			spy = this.spy();
		this.collection.addEvent('change', spy);
		c2.removeModel(this.model);
		this.model.set('foo', 'bar');
		buster.assert.called(spy);
	},
示例#14
0
      zlibBuffer(new nodeZlib.Deflate({level: 9}), data, function(err, buf) {
        var inflated = zlib.inflateSync(buf);

        buster.assert.equals(inflated.length, data.length);
        buster.assert(arrayEquals(inflated, data));

        done();
      });
示例#15
0
		this.model.on('error', function(errors) {
			var error = Array.filter(errors, function(el) {
				return el.bar;
			})[0];

			buster.assert.equals(error.bar.error, msg);
			done();
		});
示例#16
0
	'Expect error to fire when validation fails >': function() {
		var spy = this.spy();

		this.model.on('error', spy);
		this.model.set(this.dataFail);

		buster.assert.called(spy);
	},
示例#17
0
	'Expect model to set value when validation passes >': function() {
		var spy = this.spy();

		this.model.on('change:bar', spy);
		this.model.set(this.dataPass);

		buster.assert.calledWith(spy, this.dataPass.bar);
	},
示例#18
0
		this.collection.addEvent('sort', function() {
			var changed = this.toJSON().map(function(el) {
				return el.name;
			}).join(','); // should be "C,B,A"

			buster.assert.equals(changed, 'C,B,A');
			done();
		});
示例#19
0
  nodeZlib.gzip(testData, function(err, buf) {
    var inflated = zlib.gunzipSync(buf);

    buster.assert.equals(inflated.length, testData.length);
    buster.assert(arrayEquals(inflated, testData));

    done();
  });
示例#20
0
	'Expect .on to add a single event > ': function(){
		var foo = new this.Foo(),
			spy = this.spy();

		foo.on('test', spy);

		buster.assert.equals(foo.$events['test'][0], spy);
	},
示例#21
0
	"raw replace equal string": function () {
		var replacer = new Groumf();
		replacer.add('g27', 'cidre');
		replacer.add('g270', 'rhum');
		var input = "g27";
		var output = "cidre";
		buster.assert.equals(replacer.replace(input), output);
	},
示例#22
0
	"callback replace not cutting word with (basic) Unicode support": function () {
		var replacer = new Groumf();
		replacer.add("cha");
		var input = "Un chat en chaînes";
		var output = input;
		var cb = function(s){ return '['+s+']' };
		buster.assert.equals(replacer.replace(input, cb), output);
	},
示例#23
0
	"callback replace cutting word": function () {
		var replacer = new Groumf({dontCutWords:false});
		replacer.add("cha");
		var input = "Un chat en chaînes";
		var output = "Un [cha]t en [cha]înes";
		var cb = function(s){ return '['+s+']' };
		buster.assert.equals(replacer.replace(input, cb), output);
	},
示例#24
0
	"raw replace": function () {
		var replacer = new Groumf();
		replacer.add('Schtroumpfs', 'cailloux');
		replacer.add('Schtroumpf', 'caillou');
		var input = "Schtroumpfs des champs, schtroumpfs des villes, tous schtroumpfons en schtroumpf!";
		var output = "cailloux des champs, cailloux des villes, tous schtroumpfons en caillou!";
		buster.assert.equals(replacer.replace(input), output);
	},
示例#25
0
  'gets an OK at a given level': function () {
    var parts = dosage._partition(1000, [100]);

    buster.assert.equals(parts, [{
      level: 100,
      factor: 10,
      remainder: 0,
    }]);
  },
示例#26
0
    "World can tell points apart" : function() {
	var p1 = {x : 1, y : 1};
	var p2 = {x : 2, y : 2};
	var w = this.world.putGoldAt(p1, 1);
	var w = w.putGoldAt(p2, 1);
	// buster.assert.equals(w.goldAt(p1), 1);
	// buster.assert.equals(w.goldAt(p2), 1);
	buster.assert.equals(2, 2);
    },
示例#27
0
	"callback replace": function () {
		var replacer = new Groumf();
		replacer.add('Schtroumpfs', 'plural');
		replacer.add('Schtroumpf', 'singular');
		var input = "Schtroumpfs des champs, schtroumpfs des villes, tous schtroumpfons en schtroumpf!";
		var output = "[Schtroumpfs](plural) des champs, [schtroumpfs](plural) des villes, tous schtroumpfons en [schtroumpf](singular)!";
		var cb = function(s,v){ return '['+s+']('+v+')' };
		buster.assert.equals(replacer.replace(input, cb), output);
	},
示例#28
0
	"callback replace not cutting word with Unicode (Latin-A extended) support": function () {
		var replacer = new Groumf();
		replacer.add("urs", "T1");
		replacer.add("sœur", "T2");
		var input = "Le troll urs avais deux sœurs, mais le troll sœur n'en faisait pas partie.";
		var output = "Le troll [urs](T1) avais deux sœurs, mais le troll [sœur](T2) n'en faisait pas partie.";
		var cb = function(s,v){ return '['+s+']('+v+')' };
		buster.assert.equals(replacer.replace(input, cb), output);
	},
示例#29
0
	"raw replace with unicode": function () {
		var replacer = new Groumf();
		replacer.add("π/2", "1.57");
		replacer.add("2π/3", "2.094");
		replacer.add("3π/7", "1.346");
		var input = "(24π + 2π + 12π/3 + π/2 - 3π/7 + π)";
		var output = "(24π + 2π + 12π/3 + 1.57 - 1.346 + π)";
		buster.assert.equals(replacer.replace(input), output);
	},
示例#30
0
	'Expect adding a model to fire onReset >': function() {
		var data = {
			id: 'hello'
		}, spy = this.spy();

		this.collection.addEvent('reset', spy);
		this.collection.addModel(data);
		buster.assert.called(spy);
	},