Skip to content

Commit

Permalink
OCD
Browse files Browse the repository at this point in the history
  • Loading branch information
tallesl committed Jul 10, 2015
1 parent 1afed1e commit 5969d82
Show file tree
Hide file tree
Showing 2 changed files with 33 additions and 39 deletions.
4 changes: 4 additions & 0 deletions lib/normalization.js
Expand Up @@ -4,6 +4,7 @@ var remapInternationalCharToAscii = require('remap-international-char-to-ascii')

module.exports = function (input) {

// string?
var string = isString(input)

// we only play with arrays
Expand All @@ -24,6 +25,7 @@ module.exports = function (input) {
} else throw new NonStringInArray()

} else throw new NotArrayNorString()

}

function isString (input) { return typeof input === 'string' }
Expand All @@ -33,8 +35,10 @@ function isArray (input) { return Array.isArray(input) }
function allStrings (input) { return input.every(isString) }

function normalizeString (str) {

// normalizing each character in string
return str.toLowerCase().split('').map(normalizeChar).join('')

}

function normalizeChar (c) {
Expand Down
68 changes: 29 additions & 39 deletions test/normalization.js
Expand Up @@ -5,67 +5,57 @@ var assert = require('assert')

it('should normalize a single string', function () {

assert.equal(normalize('eu sempre tive uma certeza'),
'eu sempre tive uma certeza')
assert.equal(
normalize('eu sempre tive uma certeza')
, 'eu sempre tive uma certeza')

assert.equal(normalize('que só me deu desilusão'),
'que so me deu desilusao')
assert.equal(
normalize('que só me deu desilusão')
, 'que so me deu desilusao')

assert.equal(normalize('é que o amor é uma tristeza'),
'e que o amor e uma tristeza')
assert.equal(
normalize('é que o amor é uma tristeza')
, 'e que o amor e uma tristeza')

assert.equal(normalize('muita mágoa demais para um coração'),
'muita magoa demais para um coracao')
assert.equal(
normalize('muita mágoa demais para um coração')
, 'muita magoa demais para um coracao')

})

it('should normalize an array of strings', function () {

assert.deepEqual(normalize([ 'eu', 'sempre', 'tive', 'uma', 'certeza' ]),
[ 'eu', 'sempre', 'tive', 'uma', 'certeza' ])
assert.deepEqual(
normalize([ 'eu', 'sempre', 'tive', 'uma', 'certeza' ])
, [ 'eu', 'sempre', 'tive', 'uma', 'certeza' ])

assert.deepEqual(normalize([ 'que', 'só', 'me', 'deu', 'desilusão' ]),
[ 'que', 'so', 'me', 'deu', 'desilusao' ])
assert.deepEqual(
normalize([ 'que', 'só', 'me', 'deu', 'desilusão' ])
, [ 'que', 'so', 'me', 'deu', 'desilusao' ])

assert.deepEqual(normalize([ 'é', 'que', 'o', 'amor', 'é', 'uma', 'tristeza' ]),
[ 'e', 'que', 'o', 'amor', 'e', 'uma', 'tristeza' ])
assert.deepEqual(
normalize([ 'é', 'que', 'o', 'amor', 'é', 'uma', 'tristeza' ])
, [ 'e', 'que', 'o', 'amor', 'e', 'uma', 'tristeza' ])

assert.deepEqual(normalize(['muita', 'mágoa', 'demais', 'para', 'um', 'coração' ]),
[ 'muita', 'magoa', 'demais', 'para', 'um', 'coracao' ])
assert.deepEqual(
normalize([ 'muita', 'mágoa', 'demais', 'para', 'um', 'coração' ])
, [ 'muita', 'magoa', 'demais', 'para', 'um', 'coracao' ])


})

it('should throw when given not a string nor array', function () {

assert.throws(
function () { normalize() }
, NotArrayNorString
)

assert.throws(
function () { normalize(null)}
, NotArrayNorString
)

assert.throws(
function () { normalize(123)}
, NotArrayNorString
)

assert.throws(
function () { normalize(/lol/)}
, NotArrayNorString
)
assert.throws(function () { normalize() }, NotArrayNorString)
assert.throws(function () { normalize(null) }, NotArrayNorString)
assert.throws(function () { normalize(123) }, NotArrayNorString)
assert.throws(function () { normalize(/lol/) }, NotArrayNorString)

})

it('should throw when there\'s a non string in array', function () {

assert.throws(
function () { normalize([ '1', 2, '3' ])}
, NonStringInArray
)
assert.throws(function () { normalize([ '1', 2, '3' ])}, NonStringInArray)

})

0 comments on commit 5969d82

Please sign in to comment.