I hereby claim:
- I am medains on github.
- I am medains (https://keybase.io/medains) on keybase.
- I have a public key ASAqt8by4kX9Qy9JGz0Ywl_0ZjMt1hoK8vBnohcP-3NoqAo
To claim this, I am signing this object:
I hereby claim:
To claim this, I am signing this object:
function checkDef( val ) { | |
if( val === undefined ) { | |
throw new Error( 'Number out of range' ); | |
} | |
} | |
function _doConvert( arabic, single, five, ten ) { | |
var i = parseInt( arabic, 10 ); | |
switch( i ) { | |
case 1: return single; | |
case 2: return single + single; |
it( 'returns errors', function(){ | |
assert.equal( 'Number out of range', app.convertArabicToRoman( '4000' ), '4000 error not shown' ); | |
assert.equal( 'Number out of range', app.convertArabicToRoman( '-1' ), '-1 error not shown' ); | |
assert.equal( 'Cannot convert', app.convertArabicToRoman( 'dsfa' ), 'string error not shown' ); | |
assert.equal( 'Cannot convert', app.convertArabicToRoman( '7 years' ), 'string error not shown' ); | |
}); |
function _doConvert( arabic, single, five, ten ) { | |
var i = parseInt( arabic, 10 ); | |
switch( i ) { | |
case 1: return single; | |
case 2: return single + single; | |
case 3: return single + single + single; | |
case 4: return single + five; | |
case 5: return five; | |
case 6: return five + single; | |
case 7: return five + single + single; |
it( 'converts tens', function(){ | |
assert.equal( 'X', app.convertArabicToRoman( '10' ), '10 != X' ); | |
assert.equal( 'XX', app.convertArabicToRoman( '20' ), '20 != XX' ); | |
assert.equal( 'XXX', app.convertArabicToRoman( '30' ), '30 != XXX' ); | |
assert.equal( 'XL', app.convertArabicToRoman( '40' ), '40 != XL' ); | |
assert.equal( 'L', app.convertArabicToRoman( '50' ), '50 != L' ); | |
assert.equal( 'LX', app.convertArabicToRoman( '60' ), '60 != LX' ); | |
assert.equal( 'LXX', app.convertArabicToRoman( '70' ), '70 != LXX' ); | |
assert.equal( 'LXXX', app.convertArabicToRoman( '80' ), '80 != LXXX' ); | |
assert.equal( 'XC', app.convertArabicToRoman( '90' ), '90 != XC' ); |
var App = { | |
... | |
convertArabicToRoman = function( arabic ) { | |
var i = parseInt( arabic, 10 ); | |
switch( i ) { | |
case 1: return "I"; | |
case 2: return "II"; | |
case 3: return "III"; | |
case 4: return "IV"; | |
case 5: return "V"; |
it( 'converts single digits', function(){ | |
assert.equal( '', app.convertArabicToRoman( '0' ), '0 != ""' ); | |
assert.equal( 'I', app.convertArabicToRoman( '1' ), '1 != I' ); | |
assert.equal( 'II', app.convertArabicToRoman( '2' ), '2 != II' ); | |
assert.equal( 'III', app.convertArabicToRoman( '3' ), '3 != II' ); | |
assert.equal( 'IV', app.convertArabicToRoman( '4' ), '4 != IV' ); | |
assert.equal( 'V', app.convertArabicToRoman( '5' ), '5 != V' ); | |
assert.equal( 'VI', app.convertArabicToRoman( '6' ), '6 != VI' ); | |
assert.equal( 'VII', app.convertArabicToRoman( '7' ), '7 != VII' ); | |
assert.equal( 'VIII', app.convertArabicToRoman( '8' ), '8 != VIII' ); |
var App = { | |
... | |
convertArabicToRoman: function(v) { | |
return v; | |
}, | |
action: function(e) { | |
var self = this; | |
self.fetchInput( function(value) { | |
var out = self.convertArabicToRoman( value ); | |
self.writeOutput( out, function(){} ); |
describe( 'App', function(){ | |
afterEach(function(){ | |
for( element in app ) { | |
if( app[element].restore ) { | |
app[element].restore(); | |
} | |
} | |
}); | |
... | |
}); |
describe('action', function() { | |
it('reads from input, convert and writes to output', function(){ | |
app.fetchInput = sinon.stub().yields( 23 ); | |
app.writeOutput = sinon.stub().yields(); | |
app.convertArabicToRoman = sinon.stub().returns('IV'); | |
var e = { | |
stop: sinon.stub() | |
}; | |
app.action( e ); | |
sinon.assert.callCount( app.fetchInput, 1 ); |