From 2d9006b4c9ed2e062c79b27bd4235c9f5f04c606 Mon Sep 17 00:00:00 2001 From: Julien Calixte Date: Sat, 22 Jul 2023 11:13:54 +0200 Subject: [PATCH] =?UTF-8?q?=E2=9C=A8=20(feature)=20init=20feature=20game?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/feature.fixture.test.ts | 10 ++ src/feature.fixture.ts | 207 ++++++++++++++++++++++++++++++++++++ src/feature.ts | 4 + src/utils.ts | 12 +++ 4 files changed, 233 insertions(+) create mode 100644 src/feature.fixture.test.ts create mode 100644 src/feature.fixture.ts create mode 100644 src/feature.ts create mode 100644 src/utils.ts diff --git a/src/feature.fixture.test.ts b/src/feature.fixture.test.ts new file mode 100644 index 0000000..d884325 --- /dev/null +++ b/src/feature.fixture.test.ts @@ -0,0 +1,10 @@ +import { faker } from '@faker-js/faker' +import { describe, it } from 'vitest' + +describe('feature fixture', () => { + it('creates lots of animals', () => { + for (let i = 0; i < 200; i++) { + console.log(`"${faker.animal.dog()}", `) + } + }) +}) diff --git a/src/feature.fixture.ts b/src/feature.fixture.ts new file mode 100644 index 0000000..17a27af --- /dev/null +++ b/src/feature.fixture.ts @@ -0,0 +1,207 @@ +const featureNames = [ + 'Dachshund', + 'Jagdterrier', + 'Chesapeake Bay Retriever', + 'Cretan Hound', + 'Bulldog', + 'Lapponian Herder', + 'Vizsla', + 'Norwegian Elkhound', + 'Rat Terrier', + 'Kangal Shepherd Dog', + 'English Foxhound', + 'Kanni', + 'Finnish Spitz', + 'Bloodhound', + 'Siberian Husky', + 'Paisley Terrier', + 'Cairn Terrier', + 'Chortai', + 'Bucovina Shepherd Dog', + 'German Longhaired Pointer', + 'Portuguese Water Dog', + 'Aidi', + 'Dunker', + 'Slovenský Kopov', + 'Kokoni', + 'Pembroke Welsh Corgi', + 'English Mastiff', + 'Papillon', + 'Blue Picardy Spaniel', + 'Cursinu', + 'Coton de Tulear', + 'Akita', + 'King Charles Spaniel', + 'Mudhol Hound', + 'Serrano Bulldog', + 'Telomian', + 'Komondor', + 'Chinese Crested Dog', + 'Banjara Hound', + 'Jagdterrier', + 'Australian Cattle Dog', + 'Afghan Hound', + 'King Shepherd', + 'Boykin Spaniel', + 'Hamiltonstövare', + 'Bull Arab', + 'Basque Shepherd Dog', + 'East Siberian Laika', + 'Australian Cattle Dog', + 'German Hound', + 'Scottish Terrier', + 'Volpino Italiano', + 'Sussex Spaniel', + 'Kanni', + 'Otterhound', + 'Kintamani', + 'Mudi', + 'Pastore della Lessinia e del Lagorai', + 'Danish-Swedish Farmdog', + 'Basset Hound', + 'McNab dog', + 'Pungsan Dog', + 'Bouvier des Flandres', + 'Westphalian Dachsbracke', + 'Slovenský Cuvac', + 'Portuguese Water Dog', + 'American English Coonhound', + 'Old Croatian Sighthound', + 'Affenpinscher', + 'Karakachan dog', + 'Hierran Wolfdog', + 'Samoyed', + 'Magyar agár', + 'Sarabi dog', + 'Cane Corso', + "Braque d'Auvergne", + 'Volpino Italiano', + 'Newfoundland', + 'Chow Chow', + 'East Siberian Laika', + 'Shih Tzu', + 'English Springer Spaniel', + 'Ratonero Bodeguero Andaluz', + 'Australian Kelpie', + 'New Zealand Heading Dog', + 'Burgos Pointer', + 'German Wirehaired Pointer', + 'Serrano Bulldog', + 'King Shepherd', + 'Norwegian Lundehund', + 'Lagotto Romagnolo', + 'Basset Bleu de Gascogne', + 'Vikhan', + 'Clumber Spaniel', + 'Field Spaniel', + 'Greater Swiss Mountain Dog', + 'Boerboel', + 'Basenji', + 'Thai Ridgeback', + 'Rottweiler', + 'Slovakian Wirehaired Pointer', + 'Brittany', + 'Welsh Sheepdog', + 'Tosa', + 'Olde English Bulldogge', + 'Galgo Español', + 'Mudi', + 'Smooth Fox Terrier', + 'Bedlington Terrier', + 'Picardy Spaniel', + 'Chien Français Blanc et Orange', + 'Kokoni', + 'Gull Terrier', + 'Redbone Coonhound', + 'Rajapalayam', + 'Perro de Presa Canario', + 'Austrian Pinscher', + 'Saluki', + 'Kintamani', + 'Galician Shepherd Dog', + 'Standard Schnauzer', + 'Cão de Gado Transmontano', + 'American Staffordshire Terrier', + 'Wirehaired Pointing Griffon', + 'Galician Shepherd Dog', + 'Transylvanian Hound', + 'Chien Français Blanc et Noir', + 'Taigan', + 'Kombai', + 'Saint Hubert Jura Hound', + 'Swedish Vallhund', + 'Dogo Sardesco', + 'German Shorthaired Pointer', + 'Pražský Krysařík', + 'Airedale Terrier', + 'Chortai', + 'Bernese Mountain Dog', + 'Drever', + 'Estonian Hound', + 'Dutch Smoushond', + 'Wire Fox Terrier', + 'Neapolitan Mastiff', + 'Bearded Collie', + 'Telomian', + 'English Cocker Spaniel', + 'Airedale Terrier', + 'Mountain Feist', + 'Treeing Tennessee Brindle', + 'Garafian Shepherd', + 'Grand Griffon Vendéen', + 'Gull Terrier', + 'Villano de Las Encartaciones', + 'Russian Spaniel', + 'Yakutian Laika', + 'Curly-Coated Retriever', + 'Rajapalayam', + 'Sabueso Español', + 'Hovawart', + 'Peruvian Inca Orchid', + 'Pekingese', + 'Icelandic Sheepdog', + 'Cairn Terrier', + 'Glen of Imaal Terrier', + 'Australian Shepherd', + 'Dunker', + 'Briquet Griffon Vendéen', + 'Scottish Deerhound', + 'Mudhol Hound', + 'Danish-Swedish Farmdog', + 'Australian Terrier', + 'Chinese Chongqing Dog', + 'Irish Red and White Setter', + 'Podenco Valenciano', + "Cirneco dell'Etna", + 'German Shepherd Dog', + 'Levriero Sardo', + 'Romanian Mioritic Shepherd Dog', + 'Finnish Hound', + 'Segugio Maremmano', + 'Andalusian Hound', + 'Swedish White Elkhound', + 'Tenterfield Terrier', + 'Wirehaired Pointing Griffon', + 'Cão Fila de São Miguel', + 'Italian Greyhound', + 'Jindo', + 'Pyrenean Mountain Dog', + 'Field Spaniel', + 'Alaskan Klee Kai', + 'Lupo Italiano', + 'Silken Windhound', + 'Cavalier King Charles Spaniel', + 'Spanish Mastiff', + 'Sinhala Hound', + 'Grand Griffon Vendéen', + 'Shiloh Shepherd', + 'Sarabi dog', + 'Cane Corso', + 'Japanese Spitz', + 'Dogue de Bordeaux' +] + +export const features: Feature[] = featureNames.map((name) => ({ + name, + complexity: Math.floor(Math.random() * 5) +})) diff --git a/src/feature.ts b/src/feature.ts new file mode 100644 index 0000000..8e26fbe --- /dev/null +++ b/src/feature.ts @@ -0,0 +1,4 @@ +type Feature = { + name: string + complexity: number +} diff --git a/src/utils.ts b/src/utils.ts new file mode 100644 index 0000000..a0d8a4c --- /dev/null +++ b/src/utils.ts @@ -0,0 +1,12 @@ +export const shuffleArray = (array: T[]) => { + const arrayCopy = [...array] + + for (let i = array.length - 1; i > 0; i--) { + const j = Math.floor(Math.random() * (i + 1)) + const temp = array[i] + array[i] = array[j] + array[j] = temp + } + + return arrayCopy +}