diff options
Diffstat (limited to 'test')
-rw-r--r-- | test/test_denormalize.js | 56 | ||||
-rw-r--r-- | test/test_normalize.js | 207 |
2 files changed, 263 insertions, 0 deletions
diff --git a/test/test_denormalize.js b/test/test_denormalize.js new file mode 100644 index 0000000..5ac6464 --- /dev/null +++ b/test/test_denormalize.js @@ -0,0 +1,56 @@ +var should = require('should'); +var denormalize = require('../src/utils').denormalize; + +describe('Denormalize', function() { + it('should denormalize a', function() { + denormalize('a').should.be.exactly('do'); + }); + + it('should denormalize b', function() { + denormalize('b').should.be.exactly('do+'); + }); + + it('should denormalize c', function() { + denormalize('c').should.be.exactly('re'); + }); + + it('should denormalize d', function() { + denormalize('d').should.be.exactly('re+'); + }); + + it('should denormalize e', function() { + denormalize('e').should.be.exactly('mi'); + }); + + it('should denormalize f', function() { + denormalize('f').should.be.exactly('fa'); + }); + + it('should denormalize g', function() { + denormalize('g').should.be.exactly('fa+'); + }); + + it('should denormalize h', function() { + denormalize('h').should.be.exactly('so'); + }); + + it('should denormalize i', function() { + denormalize('i').should.be.exactly('so+'); + }); + + it('should denormalize j', function() { + denormalize('j').should.be.exactly('la'); + }); + + it('should denormalize k', function() { + denormalize('k').should.be.exactly('la+'); + }); + + it('should denormalize l', function() { + denormalize('l').should.be.exactly('ti'); + }); + + it('should denormalize multiple syllables', function() { + denormalize('ace').should.be.exactly('do re mi'); + }); +}); diff --git a/test/test_normalize.js b/test/test_normalize.js new file mode 100644 index 0000000..cfc7d15 --- /dev/null +++ b/test/test_normalize.js @@ -0,0 +1,207 @@ +var should = require('should'); +var normalize = require('../src/utils').normalize; + +describe('Normalize', function() { + + describe('Uppercasing', function() { + it('should normalize uppercase input', function() { + normalize('DO').should.be.exactly('a'); + }); + }); + + describe('Basic tests', function() { + + describe('A', function() { + it('should convert do to a', function() { + normalize('do').should.be.exactly('a'); + }); + + it('should convert doh to a', function() { + normalize('doh').should.be.exactly('a'); + }); + }); + + describe('B', function() { + it('should convert do+ to b', function() { + normalize('do+').should.be.exactly('b'); + }); + + it('should convert do# to b', function() { + normalize('do#').should.be.exactly('b'); + }); + + it('should convert doh+ to b', function() { + normalize('doh+').should.be.exactly('b'); + }); + + it('should convert doh# to b', function() { + normalize('doh#').should.be.exactly('b'); + }); + + it('should convert re- to b', function() { + normalize('re-').should.be.exactly('b'); + }); + + it('should convert reb to b', function() { + normalize('reb').should.be.exactly('b'); + }); + }); + + describe('C', function() { + it('should convert re to c', function() { + normalize('re').should.be.exactly('c'); + }); + }); + + describe('D', function() { + it('should convert re+ to d', function() { + normalize('re+').should.be.exactly('d'); + }); + + it('should convert re# to d', function() { + normalize('re#').should.be.exactly('d'); + }); + + it('should convert mi- to d', function() { + normalize('mi-').should.be.exactly('d'); + }); + + it('should convert mib to d', function() { + normalize('mib').should.be.exactly('d'); + }); + }); + + describe('E', function() { + it('should convert mi to e', function() { + normalize('mi').should.be.exactly('e'); + }); + }); + + describe('F', function() { + it('should convert fa to f', function() { + normalize('fa').should.be.exactly('f'); + }); + }); + + describe('G', function() { + it('should convert fa+ to g', function() { + normalize('fa+').should.be.exactly('g'); + }); + + it('should convert fa# to g', function() { + normalize('fa#').should.be.exactly('g'); + }); + + it('should convert so- to g', function() { + normalize('so-').should.be.exactly('g'); + }); + + it('should convert sob to g', function() { + normalize('sob').should.be.exactly('g'); + }); + + it('should convert sol- to g', function() { + normalize('sol-').should.be.exactly('g'); + }); + + it('should convert solb to g', function() { + normalize('solb').should.be.exactly('g'); + }); + }); + + describe('H', function() { + it('should convert so to h', function() { + normalize('so').should.be.exactly('h'); + }); + + it('should convert sol to h', function() { + normalize('sol').should.be.exactly('h'); + }); + }); + + describe('I', function() { + it('should convert so+ to i', function() { + normalize('so+').should.be.exactly('i'); + }); + + it('should convert so# to i', function() { + normalize('so#').should.be.exactly('i'); + }); + + it('should convert sol+ to i', function() { + normalize('sol+').should.be.exactly('i'); + }); + + it('should convert sol# to i', function() { + normalize('sol#').should.be.exactly('i'); + }); + + it('should convert la- to i', function() { + normalize('la-').should.be.exactly('i'); + }); + + it('should convert lab to i', function() { + normalize('lab').should.be.exactly('i'); + }); + }); + + describe('J', function() { + it('should convert la to j', function() { + normalize('la').should.be.exactly('j'); + }); + }); + + describe('K', function() { + it('should convert la+ to k', function() { + normalize('la+').should.be.exactly('k'); + }); + + it('should convert la# to k', function() { + normalize('la#').should.be.exactly('k'); + }); + + it('should convert ti- to k', function() { + normalize('ti-').should.be.exactly('k'); + }); + + it('should convert tib to k', function() { + normalize('tib').should.be.exactly('k'); + }); + + it('should convert si- to k', function() { + normalize('si-').should.be.exactly('k'); + }); + + it('should convert sib to k', function() { + normalize('sib').should.be.exactly('k'); + }); + }); + + describe('L', function() { + it('should convert ti to l', function() { + normalize('ti').should.be.exactly('l'); + }); + + it('should convert si to l', function() { + normalize('si').should.be.exactly('l'); + }); + }); + + }); + + describe('Challenging input', function() { + it('should correctly interpret multiple syllables', function() { + normalize('do re mi').should.be.exactly('ace'); + }); + + it('should correctly tokenize unusual spacing', function() { + normalize('do re mi').should.be.exactly('ace'); + normalize('do\ + re mi').should.be.exactly('ace'); + }); + + it('should ignore non-tokenizable input', function() { + normalize('do asdn3 aweh fnhi re 2hha 1nnua mi').should.be.exactly('ace'); + }); + }); +}); |