You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

96 lines
2.7 KiB

// prettier-ignore
const personnel = {
lukeSkywalker: { id: 5, pilotingScore: 98, shootingScore: 56, isForceUser: true },
sabineWren: { id: 82, pilotingScore: 73, shootingScore: 99, isForceUser: false },
zebOrellios: { id: 22, pilotingScore: 20, shootingScore: 59, isForceUser: false },
ezraBridger: { id: 15, pilotingScore: 43, shootingScore: 67, isForceUser: true },
calebDume: { id: 11, pilotingScore: 71, shootingScore: 85, isForceUser: true },
}
// /*/ // ⚡
export const tests = []
const t = (f) => tests.push(f)
// default values
t(({ eq }) => eq(defaultCurry({ http: 403 })({}), { http: 403 }))
t(({ eq }) =>
eq(defaultCurry({ http: 403, connection: 'close' })({ http: 200 }), {
http: 200,
connection: 'close',
}),
)
// object mutation
t(({ eq }) =>
eq(defaultCurry(Object.freeze({ http: 403 }))(Object.freeze({ http: 200 })), {
http: 200,
}),
)
// multiple values
t(({ eq }) =>
eq(
defaultCurry({ http: 403, age: 0, connection: 'close' })({
http: 200,
age: 30,
connection: 'keep-alive',
content_type: 'text/css',
}),
{ http: 200, age: 30, connection: 'keep-alive', content_type: 'text/css' },
),
)
// map curry
t(({ eq }) =>
eq(mapCurry(([k, v]) => [`${k}🤙🏼`, `${v}🤙🏼`])({ emoji: 'cool' }), {
'emoji🤙🏼': 'cool🤙🏼',
}),
)
// reduce curry
t(({ eq }) =>
eq(
reduceCurry((acc, [k, v]) => acc.concat(' ', `${k}:${v.id}`))(
personnel,
'personnel:',
),
'personnel: lukeSkywalker:5 sabineWren:82 zebOrellios:22 ezraBridger:15 calebDume:11',
),
)
// filter curry
t(({ eq }) =>
eq(filterCurry(([, v]) => v.id > 22)(personnel), {
sabineWren: {
id: 82,
pilotingScore: 73,
shootingScore: 99,
isForceUser: false,
},
}),
)
// reduce score
t(({ eq }) => eq(reduceScore(personnel, 0), 420))
t(({ eq }) => eq(reduceScore(personnel, 420), 840))
//filter score
t(({ eq, ctx }) => eq(filterForce(personnel), ctx.filter))
// map average
t(({ eq, ctx }) => eq(mapAverage(personnel), ctx.total))
Object.freeze(tests)
// prettier-ignore
export const setup = () => ({
filter: {
calebDume: { id: 11, isForceUser: true, pilotingScore: 71, shootingScore: 85 },
},
total: {
sabineWren: { id: 82, pilotingScore: 73, shootingScore: 99, isForceUser: false, averageScore: 86 },
zebOrellios: { id: 22, pilotingScore: 20, shootingScore: 59, isForceUser: false, averageScore: 39.5 },
lukeSkywalker: { id: 5, pilotingScore: 98, shootingScore: 56, isForceUser: true, averageScore: 77 },
ezraBridger: { id: 15, pilotingScore: 43, shootingScore: 67, isForceUser: true, averageScore: 55 },
calebDume: { id: 11, pilotingScore: 71, shootingScore: 85, isForceUser: true, averageScore: 78 },
},
})