UNPKG

haskellstream

Version:

Small library to provide functional programming paradigms.

104 lines (100 loc) 2.77 kB
/* jshint mocha:true */ var expect = require('chai').expect // import functions var hs = require('../hs') var succ = hs.base.succ var min = hs.base.min var max = hs.base.max var add = hs.base.add var multiply = hs.base.multiply var subtract = hs.base.subtract var div = hs.base.div var lessEqual = hs.base.lessEqual var greaterThan = hs.base.greaterThan describe('base', function() { describe('succ(8)', function() { it('returns 9', function() { expect(succ(8)).to.be.equal(9) }) }) describe('min(9,10)', function() { it('returns 9', function() { expect(min(9,10)).to.be.equal(9) }) it('can be partially applied', function() { var atMostFive = min(5) expect(atMostFive).to.be.a('function') expect(atMostFive(10)).to.be.equal(5) }) }) describe('max(100,101)', function() { it('returns 101', function() { expect(max(100,101)).to.be.equal(101) }) }) describe('add(1,2)', function() { it('returns 3', function() { expect(add(1,2)).to.be.equal(3) }) it('can be partially applied', function() { var addOne = add(1) expect(addOne).to.be.a('function') expect(addOne(2)).to.be.equal(3) }) }) describe('multiply(12,12)', function() { it('returns 144', function() { expect(multiply(12,12)).to.be.equal(144) }) it('can be partially applied', function() { var timesThree = multiply(3) expect(timesThree).to.be.a('function') expect(timesThree(12)).to.be.equal(36) }) }) describe('subtract(2,3)', function() { it('returns 1', function() { expect(subtract(2,3)).to.be.equal(1) }) it('can be partially applied', function() { var subtractTwo = subtract(2) expect(subtractTwo).to.be.a('function') expect(subtractTwo(3)).to.be.equal(1) }) }) describe('div(92, 10)', function() { it('returns 9', function() { expect(div(92,10)).to.be.equal(9) }) }) describe('lessEqual(4, 10)', function() { it('returns false', function() { expect(lessEqual(4,10)).to.be.false }) }) describe('lessEqual(2, 2)', function() { it('returns true', function() { expect(lessEqual(2,2)).to.be.true }) }) describe('lessEqual(3, 1)', function() { it('returns true', function() { expect(lessEqual(3,1)).to.be.true }) }) describe('greaterThan(4, 10)', function() { it('returns true', function() { expect(greaterThan(4,10)).to.be.true }) }) describe('greaterThan(2, 2)', function() { it('returns false', function() { expect(greaterThan(2,2)).to.be.false }) }) describe('greaterThan(3, 1)', function() { it('returns false', function() { expect(greaterThan(3,1)).to.be.false }) }) })