|
|
|
export const tests = []
|
|
|
|
const t = (f) => tests.push(f)
|
|
|
|
|
|
|
|
const sub32 = (el) => el - 32
|
|
|
|
const mult5 = (el) => el * 5
|
|
|
|
const div9 = (el) => el / 9
|
|
|
|
const roundDown = (el) => Math.floor(el)
|
|
|
|
|
|
|
|
const square = (nbr) => nbr * nbr
|
|
|
|
const add2 = (el) => el + 2
|
|
|
|
const mult2 = (el) => el * 2
|
|
|
|
|
|
|
|
const addAll = (...el) =>
|
|
|
|
el.length === 1 ? el[0] : el[0] + addAll(...el.slice(1))
|
|
|
|
|
|
|
|
export const setup = () => {
|
|
|
|
const farenheitToCelsius = flow([sub32, mult5, div9, roundDown])
|
|
|
|
const add2Mult2Square = flow([add2, mult2, square])
|
|
|
|
const addAllThenConvertToCelsius = flow([addAll, farenheitToCelsius])
|
|
|
|
|
|
|
|
return { farenheitToCelsius, add2Mult2Square, addAllThenConvertToCelsius }
|
|
|
|
}
|
|
|
|
|
|
|
|
//Farenheit to Celsius
|
|
|
|
|
|
|
|
t(({ eq, ctx }) => eq(ctx.farenheitToCelsius(32), 0))
|
|
|
|
t(({ eq, ctx }) => eq(ctx.farenheitToCelsius(0), -18))
|
|
|
|
t(({ eq, ctx }) => eq(ctx.farenheitToCelsius(40), 4))
|
|
|
|
t(({ eq, ctx }) => eq(ctx.farenheitToCelsius(50), 10))
|
|
|
|
t(({ eq, ctx }) => eq(ctx.farenheitToCelsius(60), 15))
|
|
|
|
t(({ eq, ctx }) => eq(ctx.farenheitToCelsius(100), 37))
|
|
|
|
|
|
|
|
// add2Mult2Square
|
|
|
|
|
|
|
|
t(({ eq, ctx }) => eq(ctx.add2Mult2Square(32), 4624))
|
|
|
|
t(({ eq, ctx }) => eq(ctx.add2Mult2Square(0), 16))
|
|
|
|
t(({ eq, ctx }) => eq(ctx.add2Mult2Square(40), 7056))
|
|
|
|
t(({ eq, ctx }) => eq(ctx.add2Mult2Square(50), 10816))
|
|
|
|
t(({ eq, ctx }) => eq(ctx.add2Mult2Square(60), 15376))
|
|
|
|
t(({ eq, ctx }) => eq(ctx.add2Mult2Square(-100), 38416))
|
|
|
|
|
|
|
|
// addAllThenConvertToCelsius
|
|
|
|
|
|
|
|
t(({ eq, ctx }) => eq(ctx.addAllThenConvertToCelsius(20, 5, 6, 1), 0))
|
|
|
|
t(({ eq, ctx }) => eq(ctx.addAllThenConvertToCelsius(-10, -10, 20), -18))
|
|
|
|
t(({ eq, ctx }) => eq(ctx.addAllThenConvertToCelsius(10, 5, 5, 10, 5, 5), 4))
|
|
|
|
t(({ eq, ctx }) => eq(ctx.addAllThenConvertToCelsius(25, 5, 20), 10))
|
|
|
|
t(({ eq, ctx }) => eq(ctx.addAllThenConvertToCelsius(30, 30), 15))
|
|
|
|
t(({ eq, ctx }) => eq(ctx.addAllThenConvertToCelsius(99, 1), 37))
|
|
|
|
|
|
|
|
Object.freeze(tests)
|