mirror of https://github.com/01-edu/public.git
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.
88 lines
2.3 KiB
88 lines
2.3 KiB
// small database with nutrition facts, per 100 grams |
|
// prettier-ignore |
|
const nutritionDB = { |
|
tomato: { calories: 18, protein: 0.9, carbs: 3.9, sugar: 2.6, fiber: 1.2, fat: 0.2 }, |
|
vinegar: { calories: 20, protein: 0.04, carbs: 0.6, sugar: 0.4, fiber: 0, fat: 0 }, |
|
oil: { calories: 48, protein: 0, carbs: 0, sugar: 123, fiber: 0, fat: 151 }, |
|
onion: { calories: 0, protein: 1, carbs: 9, sugar: 0, fiber: 0, fat: 0 }, |
|
garlic: { calories: 149, protein: 6.4, carbs: 33, sugar: 1, fiber: 2.1, fat: 0.5 }, |
|
paprika: { calories: 282, protein: 14.14, carbs: 53.99, sugar: 1, fiber: 0, fat: 12.89 }, |
|
sugar: { calories: 387, protein: 0, carbs: 100, sugar: 100, fiber: 0, fat: 0 }, |
|
orange: { calories: 49, protein: 0.9, carbs: 13, sugar: 9, fiber: 0.2, fat: 0.1 }, |
|
} |
|
// /*/ // ⚡ |
|
export const tests = [] |
|
const t = (f) => tests.push(f) |
|
|
|
// filter values |
|
t(({ ctx, eq }) => |
|
eq( |
|
filterValues(ctx.groceriesCart, (v) => v < 80), |
|
{ oil: 50, garlic: 22 }, |
|
), |
|
) |
|
t(({ ctx, eq }) => |
|
eq( |
|
filterValues( |
|
nutritionDB, |
|
(v) => Object.entries(filterValues(v, (ele) => ele === 0)).length !== 0, |
|
), |
|
ctx.have0, |
|
), |
|
) |
|
|
|
// map value |
|
t(({ ctx, eq }) => |
|
eq( |
|
mapValues( |
|
filterValues(ctx.groceriesCart, (v) => v >= 200), |
|
(ele) => ele - 100, |
|
), |
|
{ tomato: 100, onion: 120 }, |
|
), |
|
) |
|
|
|
// reduce value |
|
t(({ ctx }) => reduceValues(ctx.groceriesCart, (acc, cr) => acc + cr) === 572) |
|
t(() => reduceValues({ a: 1, b: 2, c: 3 }, (acc, cr) => acc + cr) === 6) |
|
t(() => reduceValues({ a: 1, b: 2, c: 3 }, (acc, cr) => acc + cr, 3) === 9) |
|
|
|
Object.freeze(tests) |
|
|
|
export const setup = () => ({ |
|
groceriesCart: { |
|
tomato: 200, |
|
vinegar: 80, |
|
oil: 50, |
|
onion: 220, |
|
garlic: 22, |
|
}, |
|
have0: { |
|
vinegar: { |
|
calories: 20, |
|
protein: 0.04, |
|
carbs: 0.6, |
|
sugar: 0.4, |
|
fiber: 0, |
|
fat: 0, |
|
}, |
|
oil: { calories: 48, protein: 0, carbs: 0, sugar: 123, fiber: 0, fat: 151 }, |
|
onion: { calories: 0, protein: 1, carbs: 9, sugar: 0, fiber: 0, fat: 0 }, |
|
paprika: { |
|
calories: 282, |
|
protein: 14.14, |
|
carbs: 53.99, |
|
sugar: 1, |
|
fiber: 0, |
|
fat: 12.89, |
|
}, |
|
sugar: { |
|
calories: 387, |
|
protein: 0, |
|
carbs: 100, |
|
sugar: 100, |
|
fiber: 0, |
|
fat: 0, |
|
}, |
|
}, |
|
})
|
|
|