summaryrefslogtreecommitdiff
path: root/src/app/utils/random_utils.js
diff options
context:
space:
mode:
authorJules Laplace <julescarbon@gmail.com>2021-10-17 02:52:05 +0200
committerJules Laplace <julescarbon@gmail.com>2021-10-17 02:52:05 +0200
commit06ecdf2af182034496e2123852deee4a58de1043 (patch)
treec8d4eb9664dd368bee5a4bf73dd1e02015ecaf39 /src/app/utils/random_utils.js
making a shoebox
Diffstat (limited to 'src/app/utils/random_utils.js')
-rw-r--r--src/app/utils/random_utils.js171
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());