aboutsummaryrefslogtreecommitdiff
path: root/test/normalize.js
diff options
context:
space:
mode:
Diffstat (limited to 'test/normalize.js')
-rw-r--r--test/normalize.js207
1 files changed, 207 insertions, 0 deletions
diff --git a/test/normalize.js b/test/normalize.js
new file mode 100644
index 0000000..cfc7d15
--- /dev/null
+++ b/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');
+ });
+ });
+});