var should = require('chai').should(); var Opcode = require('../lib/opcode'); describe('Opcode', function() { it('should create a new Opcode', function() { var opcode = new Opcode(5); }); it('should convert to a string with this handy syntax', function() { Opcode(0).toString().should.equal('OP_0'); Opcode(96).toString().should.equal('OP_16'); Opcode(97).toString().should.equal('OP_NOP'); }); it('should convert to a number with this handy syntax', function() { Opcode('OP_0').toNumber().should.equal(0); Opcode('OP_16').toNumber().should.equal(96); Opcode('OP_NOP').toNumber().should.equal(97); }); describe('#fromNumber', function() { it('should work for 0', function() { Opcode().fromNumber(0).num.should.equal(0); }); }); describe('#toNumber', function() { it('should work for 0', function() { Opcode().fromNumber(0).toNumber().should.equal(0); }); }); describe('#fromString', function() { it('should work for OP_0', function() { Opcode().fromString('OP_0').num.should.equal(0); }); }); describe('#toString', function() { it('should work for OP_0', function() { Opcode().fromString('OP_0').toString().should.equal('OP_0'); }); }); describe('@map', function() { it('should have a map containing 116 elements', function() { var i = 0; for (var key in Opcode.map) { i++; } i.should.equal(116); }); }); describe('@reverseMap', function() { it('should exist and have op 185', function() { should.exist(Opcode.reverseMap); Opcode.reverseMap[185].should.equal('OP_NOP10'); }); }); });