diff options
Diffstat (limited to 'src/app/utils/random_utils.js')
| -rw-r--r-- | src/app/utils/random_utils.js | 171 |
1 files changed, 171 insertions, 0 deletions
diff --git a/src/app/utils/random_utils.js b/src/app/utils/random_utils.js new file mode 100644 index 0000000..fc3c0f7 --- /dev/null +++ b/src/app/utils/random_utils.js @@ -0,0 +1,171 @@ +/** + * Test data generation utilities. + * @module app/utils/random_utils + */ + +import { LoremIpsum } from "lorem-ipsum"; +import seedrandom from "seedrandom"; + +export const rand = (scale) => scale * (Math.random() * 2 - 1); +export const randint = (scale) => Math.floor(scale * Math.random()); +export const randsign = () => (Math.random() < 0.5 ? -1 : 1); +export const rand_seq = seedrandom("shoebox"); +export const rand_seq_norm = () => Math.pow(rand_seq(), 2) * randsign() * 0.5; +export const choice = (list) => list[randint(list.length)]; +export const randomFruit = () => choice(fruits); + +export const lorem = new LoremIpsum({ + sentencesPerParagraph: { + max: 4, + min: 2, + }, + wordsPerSentence: { + max: 10, + min: 4, + }, +}); + +export const fruits = `agave +allspice +almond +apple +apricot +artichoke +arugula +asparagus +avocado +balsamic +banana +basil +blackbean +blueberry +brandy +broccoli +buckwheat +cacao +cachaca +cantaloupe +caper +caramel +caraway +cardamom +carrot +cashew +cauliflower +cava +cayenne +celery +chambord +champagne +chickpea +chili +chipotle +chive +cilantro +cinnamon +citrus +clementine +clove +coconut +coffee +cornbread +cucumber +cumin +daikon +dill +eggplant +espresso +fennel +fenugreek +flower +garlic +ghee +ginger +grape +grapefruit +greentea +habanero +hazelnut +hibiscus +honey +honeydew +horseradish +huckleberry +jalapeno +jasmine +juniper +kiwi +kohlrabi +kumquat +lavender +leek +lemon +lemongrass +macadamia +mango +maple +marjoram +mint +miso +nori +nutmeg +olive +onion +orange +oregano +papaya +parmesan +parsley +parsnip +peach +peanut +pear +pecan +pepper +pernod +pinenut +pineapple +plum +pluot +poblano +pomegranate +pomelo +potato +pumpkin +quinoa +raisin +raspberry +rhubarb +rosemary +saffron +sage +sake +sauerkraut +savory +seitan +sesame +shallot +paprika +soy +spinach +squash +strawberry +tempei +tequila +thyme +tofu +tomatillo +tomato +turmeric +vanilla +vermouth +violet +walnut +wasabi +watermelon +wheat +yam +yuzu +zucchini` + .split("\n") + .map((text) => text.trim()); |
