const libreria = require('./libreria.js'); // const assert = require('assert'); const assert = require('chai').assert; const expect = require('chai').expect; describe('Batería de test para libreria.js', function() { describe('función metrosAPulgadas()', function() { it('debe retornar number', () => { assert.isNumber(libreria.metrosAPulgadas(1)); }); it('debe retornar valor en pulgadas correspondiente a 1 metro', () => { assert.strictEqual(libreria.metrosAPulgadas(1), 39.3701); }); }); describe('función binomioAlCuadrado()', function() { it('debe retornar el cuadrado de la suma de 2 y 3', () => { assert.strictEqual(libreria.binomioAlCuadrado(2,3), 25); }); }); describe('función generarRGB()', function() { it('debe retornar string', () => { assert.isString(libreria.generarRGB()); }); it('debe retornar string con formato rgb(r,g,b)', () => { expect(libreria.generarRGB()).to.match(/^rgb\((25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9]?[0-9]),(25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9]?[0-9]),(25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9]?[0-9])\)$/); }); }); describe('función generarRGBHex()', function() { it('debe retornar string con formato color hexadecimal', () => { expect(libreria.generarRGBHex()).to.match(/^#([A-Fa-f0-9]{6})/); }); }); describe('función tablaMultiplicar()', function() { let numero; let regExp; before(function() { numero = Math.round(Math.random() * 10); regExp = new RegExp(`\\s*(${numero} ?[x|X|*] ?\\d{1,} ?= ?\\d{1,}\\s*){9,}`, "g"); }); it('debe retornar un string de la tabla de multiplicar de un número entero', () => { expect(libreria.tablaMultiplicar(numero)).to.match(regExp); }); }); describe('función tablaMultiplicarUL()', function() { let numero; let regExp; before(function() { numero = Math.round(Math.random() * 10); regExp = new RegExp(`^$`, "g"); }); it('debe retornar un string de la tabla de multiplicar de un número entero en formato lista desordenada HTML', () => { expect(libreria.tablaMultiplicarUL(numero)).to.match(regExp); }); }); describe('función potencia()', function() { it('debe retornar 2 elevado a 8', () => { assert.strictEqual(libreria.potencia(2,8), 256); }); it('debe retornar 10 elevado a 0', () => { assert.strictEqual(libreria.potencia(10,0), 1); }); }); describe('función factorial()', function() { it('debe retornar factorial de 5', () => { assert.strictEqual(libreria.factorial(5), 120); }); it('debe retornar factorial de 0', () => { assert.strictEqual(libreria.factorial(0), 1); }); }); describe('función factorialRecursivo()', function() { it('debe retornar factorial de 5', () => { assert.strictEqual(libreria.factorialRecursivo(5), 120); }); it('debe retornar factorial de 0', () => { assert.strictEqual(libreria.factorialRecursivo(0), 1); }); }); describe('función esInt()', function() { it('debe retornar true al pasar 7 como parámetro', () => { assert.isTrue(libreria.esInt(7)); }); it('debe retornar false al pasar 2.5 como parámetro', () => { assert.isFalse(libreria.esInt(2.5)); }); it('debe retornar false al pasar "int" como parámetro', () => { assert.isFalse(libreria.esInt("int")); }); }); describe('función esImpar()', function() { it('debe retornar true al pasar 3 como parámetro', () => { assert.isTrue(libreria.esImpar(3)); }); it('debe retornar false al pasar 2 como parámetro', () => { assert.isFalse(libreria.esImpar(2)); }); it('debe retornar false al pasar "2.5" como parámetro', () => { assert.isFalse(libreria.esImpar(2.5)); }); it('debe retornar false al pasar "impar" como parámetro', () => { assert.isFalse(libreria.esImpar("impar")); }); it('debe retornar false al pasar "" como parámetro', () => { assert.isFalse(libreria.esImpar("")); }); it('debe retornar false al pasar null como parámetro', () => { assert.isFalse(libreria.esImpar(null)); }); }); describe('función esImparV2()', function() { it('debe retornar true al pasar 3 como parámetro', () => { assert.isTrue(libreria.esImparV2(3)); }); it('debe retornar false al pasar 2 como parámetro', () => { assert.isFalse(libreria.esImparV2(2)); }); it('debe retornar false al pasar "2.5" como parámetro', () => { assert.isFalse(libreria.esImparV2(2.5)); }); it('debe retornar false al pasar "impar" como parámetro', () => { assert.isFalse(libreria.esImparV2("impar")); }); it('debe retornar false al pasar "" como parámetro', () => { assert.isFalse(libreria.esImparV2("")); }); it('debe retornar false al pasar null como parámetro', () => { assert.isFalse(libreria.esImparV2(null)); }); }); });