Algorithms and Data Structures implemented in JavaScript for beginners, following best practices.
|
|
import { Polynomial } from '../Polynomial'
|
||
|
|
|
||
|
|
describe('Polynomial', () => {
|
||
|
|
it('should not return a expression for zero', () => {
|
||
|
|
const polynomial = new Polynomial([0])
|
||
|
|
expect(polynomial.display()).toBe('')
|
||
|
|
})
|
||
|
|
it('should not return an expression for zero values', () => {
|
||
|
|
const polynomial = new Polynomial([0, 0, 0, 0, 0])
|
||
|
|
expect(polynomial.display()).toBe('')
|
||
|
|
})
|
||
|
|
it('should return an expression for single a non zero value', () => {
|
||
|
|
const polynomial = new Polynomial([9])
|
||
|
|
expect(polynomial.display()).toBe('(9)')
|
||
|
|
})
|
||
|
|
it('should return an expression for two values', () => {
|
||
|
|
const polynomial = new Polynomial([3, 2])
|
||
|
|
expect(polynomial.display()).toBe('(2x) + (3)')
|
||
|
|
})
|
||
|
|
it('should return an expression for values including zero', () => {
|
||
|
|
const polynomial = new Polynomial([0, 2])
|
||
|
|
expect(polynomial.display()).toBe('(2x)')
|
||
|
|
})
|
||
|
|
it('should return an expression and evaluate it', () => {
|
||
|
|
const polynomial = new Polynomial([1, 2, 3, 4])
|
||
|
|
expect(polynomial.display()).toBe('(4x^3) + (3x^2) + (2x) + (1)')
|
||
|
|
expect(polynomial.evaluate(2)).toEqual(49)
|
||
|
|
})
|
||
|
|
it('should evaluate 0 for zero values', () => {
|
||
|
|
const polynomial = new Polynomial([0, 0, 0, 0])
|
||
|
|
expect(polynomial.evaluate(5)).toEqual(0)
|
||
|
|
})
|
||
|
|
it('should evaluate for negative values', () => {
|
||
|
|
const polynomial = new Polynomial([-1, -3, -4, -7])
|
||
|
|
expect(polynomial.evaluate(-5)).toBe(789)
|
||
|
|
})
|
||
|
|
})
|