'pcmd': function() { var cmd = this.creator.pcmd(); assert.equal(cmd.type, 'PCMD'); assert.equal(cmd.args.length, 5); assert.deepEqual(cmd.args, [0, 0, 0, 0, 0]); // test all the aliases mapping to pcmd args var val = 0.75; assert.equal(this.creator.pcmd({left: val}).args[1], at.floatString(-val)); assert.equal(this.creator.pcmd({right: val}).args[1], at.floatString(val)); assert.equal(this.creator.pcmd({front: val}).args[2], at.floatString(-val)); assert.equal(this.creator.pcmd({back: val}).args[2], at.floatString(val)); assert.equal(this.creator.pcmd({up: val}).args[3], at.floatString(val)); assert.equal(this.creator.pcmd({down: val}).args[3], at.floatString(-val)); assert.equal(this.creator.pcmd({clockwise: val}).args[4], at.floatString(val)); assert.equal(this.creator.pcmd({counterClockwise: val}).args[4], at.floatString(-val)); // test multiple aliases togeter var cmd = this.creator.pcmd({left: 0.1, clockwise: 0.3}); assert.equal(cmd.args[1], at.floatString(-0.1)); assert.equal(cmd.args[4], at.floatString(0.3)); // test progressive bit being unset when no aliases are provided var cmd = this.creator.pcmd(); assert.equal(cmd.args[0] & AtCommandCreator.PCMD_FLAGS.progressive, false); // test progressive bit being set automatically var cmd = this.creator.pcmd({left: 0.1}); assert.ok(cmd.args[0] & (1 << 0)); },
'animateLeds() works as expected': function() { var hz = 3; var duration = 3; var cmd = this.creator.animateLeds('blinkGreen', hz, duration); var expected = '1,' + at.floatString(hz) + ',' + duration; assert.equal(cmd.type, 'CONFIG'); assert.equal(cmd.args.length, 2); assert.equal(cmd.args[0], '"leds:leds_anim"'); assert.equal(cmd.args[1], '"' + expected + '"'); },
'animateLeds() does a red snake at 2 hz for 3s by default': function() { var cmd = this.creator.animateLeds(); var expected = '9,' + at.floatString(2) + ',' + 3; assert.equal(cmd.args[1], '"' + expected + '"'); },