|
| 1 | +(ns icw.data.gen |
| 2 | + (:require [clojure.test.check.generators :as gen] |
| 3 | + [clojure.string :as cs])) |
| 4 | + |
| 5 | +(def artist-gen (gen/elements ["The Beatles" "Bob Dylan" "The Rolling Stones" "Bruce Springsteen" "The Who" "Radiohead" "David Bowie" "Various Artists" "Elton John" "Led Zeppelin" "U2" "The Velvet Underground" "The Byrds" "Talking Heads" "Stevie Wonder" "Sly & The Family Stone" "The Smiths" "Pink Floyd" "The Police" "Ray Charles" "Al Green" "Muddy Waters" "Grateful Dead" "The Beach Boys" "The Doors" "Nirvana" "Steely Dan" "Elvis Presley" "Simon & Garfunkel" "The Clash" "Prince" "Miles Davis" "Bob Marley & The Wailers" "Kanye West" "Big Star" "Tom Waits" "Otis Redding" "James Brown" "R.E.M." "Cream" "Michael Jackson" "The Kinks" "The Jimi Hendrix Experience" "Jackson Browne" "Madonna" "Randy Newman" "Marvin Gaye" "Jay Z" "Black Sabbath" "Neil Young" "B.B. King" "Joni Mitchell" "Santana" "Public Enemy" "Johnny Cash" "Fleetwood Mac" "Creedence Clearwater Revival" "Aerosmith" "The Wailers" "Mott the Hoople" "PJ Harvey" "AC/DC" "Metallica" "The White Stripes" "Funkadelic" "Paul Simon" "The Notorious B.I.G." "Frank Sinatra" "Howlin' Wolf" "Ramones" "Run D.M.C." "Van Morrison" "The Band" "The Mothers of Invention" "Eagles" "MC5" "Neil Young & Crazy Horse" "Pixies" "Sam Cooke" "KISS" "Roxy Music" "Green Day"])) |
| 6 | + |
| 7 | +(def album-name-gen (gen/elements ["Sgt." "Pepper's" "Lonely" "Hearts" "Club" "Band" "Pet" "Sounds" "Revolver" "Highway" "61" "Revisited" "Rubber" "Soul" "What's" "Going" "On" "Exile" "on" "Main" "St." "London" "Calling" "Blonde" "on" "Blonde" "The" "Beatles" "(\"The" "White" "Album\")" "The" "Sun" "Sessions" "Kind" "of" "Blue" "The" "Velvet" "Underground" "&" "Nico" "Abbey" "Road" "Are" "You" "Experienced" "Blood" "on" "the" "Tracks" "Nevermind" "Born" "to" "Run" "Astral" "Weeks" "Thriller" "The" "Great" "Twenty_Eight" "The" "Complete" "Recordings" "John" "Lennon/Plastic" "Ono" "Band" "Innervisions" "Live" "at" "the" "Apollo," "1962" "Rumours" "The" "Joshua" "Tree" "Who's" "Next" "Led" "Zeppelin" "Blue" "Bringing" "It" "All" "Back" "Home" "Let" "It" "Bleed" "Ramones" "Music" "From" "Big" "Pink" "The" "Rise" "and" "Fall" "of" "Ziggy" "Stardust" "and" "the" "Spiders" "From" "Mars" "Tapestry" "Hotel" "California" "The" "Anthology" "Please" "Please" "Me" "Forever" "Changes" "Never" "Mind" "the" "Bollocks" "Here's" "the" "Sex" "Pistols" "The" "Doors" "The" "Dark" "Side" "of" "the" "Moon" "Horses" "The" "Band" "(\"The" "Brown" "Album\")" "Legend:" "The" "Best" "of" "Bob" "Marley" "and" "The" "Wailers" "A" "Love" "Supreme" "It" "Takes" "a" "Nation" "of" "Millions" "to" "Hold" "Us" "Back" "At" "Fillmore" "East" "Here's" "Little" "Richard" "Bridge" "Over" "Troubled" "Water" "Greatest" "Hits" "Meet" "The" "Beatles!" "The" "Birth" "of" "Soul" "Electric" "Ladyland" "Elvis" "Presley" "Songs" "in" "the" "Key" "of" "Life" "Beggars" "Banquet" "Chronicle:" "The" "20" "Greatest" "Hits" "Trout" "Mask" "Replica" "Greatest" "Hits" "Appetite" "for" "Destruction" "Achtung" "Baby" "Sticky" "Fingers" "Back" "to" "Mono" "(1958-1969)" "Moondance" "Kid" "A" "Off" "the" "Wall" "[Led" "Zeppelin" "IV]" "The" "Stranger" "Graceland" "Superfly" "Physical" "Graffiti" "After" "the" "Gold" "Rush" "Star" "Time" "Purple" "Rain" "Back" "in" "Black" "Otis" "Blue:" "Otis" "Redding" "Sings" "Soul" "Led" "Zeppelin" "II" "Imagine" "The" "Clash" "Harvest" "Axis:" "Bold" "as" "Love" "I" "Never" "Loved" "a" "Man" "the" "Way" "I" "Love" "You" "Lady" "Soul" "Born" "in" "the" "U.S.A." "The" "Wall" "At" "Folsom" "Prison" "Dusty" "in" "Memphis" "Talking" "Book" "Goodbye" "Yellow" "Brick" "Road" "20" "Golden" "Greats" "Sign" "\"Peace\"" "the" "Times" "40" "Greatest" "Hits" "Bitches" "Brew" "Tommy" "The" "Freewheelin'" "Bob" "Dylan" "This" "Year's" "Model" "There's" "a" "Riot" "Goin'" "On" "Odessey" "and" "Oracle" "In" "the" "Wee" "Small" "Hours" "Fresh" "Cream" "Giant" "Steps" "Sweet" "Baby" "James" "Modern" "Sounds" "in" "Country" "and" "Western" "Music" "Rocket" "to" "Russia" "Portrait" "of" "a" "Legend" "1951-1964" "Hunky" "Dory" "Aftermath" "Loaded" "The" "Bends" "If" "You" "Can" "Believe" "Your" "Eyes" "and" "Ears" "Court" "and" "Spark" "Disraeli" "Gears" "The" "Who" "Sell" "Out" "Out" "of" "Our" "Heads" "Layla" "and" "Other" "Assorted" "Love" "Songs" "Late" "Registration" "At" "Last!" "Sweetheart" "of" "the" "Rodeo" "Stand!" "The" "Harder" "They" "Come" "Raising" "Hell" "Moby" "Grape" "Pearl" "Catch" "a" "Fire" "Younger" "Than" "Yesterday" "Raw" "Power" "Remain" "in" "Light" "Marquee" "Moon" "Paranoid" "Saturday" "Night" "Fever:" "The" "Original" "Movie" "Sound" "Track" "The" "Wild," "the" "Innocent" "&" "the" "E" "Street" "Shuffle" "Ready" "to" "Die" "Slanted" "and" "Enchanted" "Greatest" "Hits" "Tim" "The" "Chronic" "Rejuvenation" "Parallel" "Lines" "Live" "at" "the" "Regal" "A" "Christmas" "Gift" "for" "You" "From" "Phil" "Spector" "Gris-Gris" "Straight" "Outta" "Compton" "Aja" "Surrealistic" "Pillow" "Deja" "vu" "Houses" "of" "the" "Holy" "Santana" "Darkness" "on" "the" "Edge" "of" "Town" "Funeral" "The" "B" "52's" "/" "Play" "Loud" "The" "Low" "End" "Theory" "Moanin'" "in" "the" "Moonlight" "Pretenders" "Paul's" "Boutique" "Closer" "Captain" "Fantastic" "and" "the" "Brown" "Dirt" "Cowboy" "Alive!" "Electric" "Warrior" "The" "Dock" "of" "the" "Bay" "OK" "Computer" "1999" "The" "Very" "Best" "of" "Linda" "Ronstadt" "Let's" "Get" "It" "On" "Imperial" "Bedroom" "Master" "of" "Puppets" "My" "Aim" "Is" "True" "Exodus" "Live" "at" "Leeds" "The" "Notorious" "Byrd" "Brothers" "Every" "Picture" "Tells" "a" "Story" "Something/Anything?" "Desire" "Close" "to" "You" "Rocks" "One" "Nation" "Under" "a" "Groove" "The" "Anthology:" "1961-1977" "The" "Definitive" "Collection" "The" "Rolling" "Stones," "Now!" "Natty" "Dread" "Fleetwood" "Mac" "Red" "Headed" "Stranger" "The" "Immaculate" "Collection" "The" "Stooges" "Fresh" "So" "Buffalo" "Springfield" "Again" "Happy" "Trails" "From" "Elvis" "in" "Memphis" "Fun" "House" "The" "Gilded" "Palace" "of" "Sin" "Dookie" "Transformer" "Blues" "Breakers" "With" "Eric" "Clapton" "(\"The" "Beano" "Album\")" "Nuggets:" "Original" "Artyfacts" "From" "the" "First" "Psychedelic" "Era," "1965-1968" "Murmur" "The" "Best" "of" "Little" "Walter" "Is" "This" "It" "Highway" "to" "Hell" "The" "Downward" "Spiral" "Parsley," "Sage," "Rosemary" "and" "Thyme" "Bad" "Modern" "Times" "Wheels" "of" "Fire" "Dirty" "Mind" "Abraxas" "Tea" "for" "the" "Tillerman" "Ten" "Everybody" "Knows" "This" "Is" "Nowhere" "Wish" "You" "Were" "Here" "Crooked" "Rain" "Crooked" "Rain" "Tattoo" "You" "Proud" "Mary:" "The" "Best" "of" "Ike" "and" "Tina" "Turner" "New" "York" "Dolls" "Bo" "Diddley" "/" "Go" "Bo" "Diddley" "Two" "Steps" "From" "the" "Blues" "The" "Queen" "Is" "Dead" "Licensed" "to" "Ill" "Look-Ka" "Py" "Py" "Loveless" "New" "Orleans" "Piano" "War" "The" "Neil" "Diamond" "Collection" "American" "Idiot" "Nebraska" "Doolittle" "Paid" "in" "Full" "Toys" "in" "the" "Attic" "Nick" "of" "Time" "A" "Night" "at" "the" "Opera" "The" "Kink" "Kronikles" "Mr." "Tambourine" "Man" "Bookends" "The" "Ultimate" "Collection" "Mr." "Excitement!" "My" "Generation" "Howlin'" "Wolf" "Like" "a" "Prayer" "Can't" "Buy" "a" "Thrill" "Let" "It" "Be" "Run" "D.M.C." "Black" "Sabbath" "The" "Marshall" "Mathers" "LP" "All" "Killer" "No" "Filler!" "The" "Jerry" "Lee" "Lewis" "Anthology" "Freak" "Out!" "Live/Dead" "The" "Shape" "of" "Jazz" "to" "Come" "Automatic" "for" "the" "People" "Reasonable" "Doubt" "Low" "The" "Blueprint" "The" "River" "Complete" "&" "Unbelievable:" "The" "Otis" "Redding" "Dictionary" "of" "Soul" "Metallica" "(\"The" "Black" "Album\")" "Trans" "Europa" "Express" "Whitney" "Houston" "The" "Kinks" "Are" "The" "Village" "Green" "Preservation" "Society" "The" "Velvet" "Rope" "Stardust" "American" "Beauty" "Crosby," "Stills" "&" "Nash" "Tracy" "Chapman" "Workingman's" "Dead" "The" "Genius" "of" "Ray" "Charles" "Child" "Is" "Father" "to" "the" "Man" "Quadrophenia" "Paul" "Simon" "Psychocandy" "Some" "Girls" "The" "Beach" "Boys" "Today!" "Dig" "Me" "Out" "Going" "to" "a" "Go-Go" "Nightbirds" "The" "Slim" "Shady" "LP" "Mothership" "Connection" "Rhythm" "Nation" "1814" "Anthology" "of" "American" "Folk" "Music" "Aladdin" "Sane" "All" "That" "You" "Can't" "Leave" "Behind" "My" "Life" "Folk" "Singer" "Can't" "Get" "Enough" "The" "Cars" "Music" "of" "My" "Mind" "I'm" "Still" "in" "Love" "With" "You" "Los" "Angeles" "Anthem" "of" "the" "Sun" "Something" "Else" "by" "The" "Kinks" "Call" "Me" "Talking" "Heads:" "77" "The" "Basement" "Tapes" "White" "Light/White" "Heat" "Kick" "Out" "the" "Jams" "Songs" "of" "Love" "and" "Hate" "Meat" "Is" "Murder" "We're" "Only" "in" "It" "for" "the" "Money" "The" "College" "Dropout" "Weezer" "(Blue" "Album)" "Master" "of" "Reality" "Coat" "of" "Many" "Colors" "Fear" "of" "a" "Black" "Planet" "John" "Wesley" "Harding" "Grace" "Car" "Wheels" "on" "a" "Gravel" "Road" "Odelay" "A" "Hard" "Day's" "Night" "Songs" "for" "Swingin'" "Lovers!" "Willy" "and" "the" "Poor" "Boys" "Blood" "Sugar" "Sex" "Magik" "The" "Sun" "Records" "Collection" "Nothing's" "Shocking" "MTV" "Unplugged" "in" "New" "York" "The" "Miseducation" "of" "Lauryn" "Hill" "Damn" "the" "Torpedoes" "The" "Velvet" "Underground" "Surfer" "Rosa" "Back" "Stabbers" "Burnin'" "Amnesiac" "Pink" "Moon"])) |
| 8 | + |
| 9 | +(def genre-gen (gen/elements ["Electronic" "Ambient" "Ambient dub" "Dark ambient" "Drone music" "Space music" "Illbient" "Psybient" "Isolationism" "Asian Underground" "Breakbeat" "Acid breaks" "Baltimore club" "Big beat" "Broken beat" "Florida breaks" "Nu-funk" "Miami bass" "Jersey club" "Nu skool breaks" "Disco" "Afro / Cosmic disco" "Disco polo" "Euro disco" "Italo disco" "Nu-disco" "Space disco" "Downtempo" "Acid jazz" "Chill-out" "New-age music" "Space music" "Trip hop" "Drum and bass" "Liquid funk" "Neurofunk" "Neurohop" "Jump-up" "Darkstep" "Drumstep" "Extreme Ambient" "Funkstep" "Hardstep" "EDM (electronic dance music)" "Sambass" "Techstep" "Dub" "Ambient dub" "Dancehall" "Dub poetry" "Dub reggae" "Dub techno" "Dubstep" "Dubtronica" "Electro music" "Electro Swing" "Freestyle music" "Electroacoustic music" "Acousmatic music" "Musique concrète" "Electronic rock" "Alternative dance" "Indietronica" "Coldwave" "Dance-punk" "Dark wave" "Electroclash" "Electronicore" "Electropunk" "Ethereal wave" "Krautrock" "Minimal wave" "New rave" "Nu-gaze" "Space rock" "Synthpop" "Electronica" "Berlin School" "Dubtronica" "Ethnic electronica" "Folktronica" "Funktronica" "Laptronica" "Livetronica" "Trap" "Future bass" "Hardcore" "Gabba" "4-beat" "Breakbeat hardcore" "Bouncy techno" "Breakcore" "Hardbass" "Russian Hardbass" "Digital hardcore" "Darkcore" "Happy hardcore" "Mákina" "Frenchcore" "Speedcore" "Terrorcore" "UK hardcore" "Uptempo" "Doomcore" "Hardstyle" "Dubstyle" "Jumpstyle" "Lento violento" "Hi-NRG" "Eurobeat" "Eurodance" "Bubblegum dance" "Italo dance" "House music" "Acid house" "Ambient house" "Balearic beat" "Chicago house" "Deep house" "Future house" "Bass house" "G house" "Tropical house" "Diva house" "Electro house" "Big room house" "Complextro" "Fidget house" "Dutch house" "Moombahton" "Moombahcore" "French house" "Funky house" "Garage house" "Ghetto house" "Ghettotech" "Hardbag" "Hard house" "Car music" "Hard dance" "Hard NRG" "Hip house" "Italo house" "Jazz house" "Kidandali" "Kwaito" "Latin house" "Microhouse/Minimal house" "New beat" "Outsider house" "Progressive house" "Rara tech" "Tech house" "Tribal house" "Trival" "Witch house" "Industrial music" "Aggrotech" "Cybergrind" "Electro-industrial" "Dark electro" "Electronic body music" "Futurepop" "Industrial metal" "Industrial rock" "Japanoise" "Neue Deutsche Härte" "Power electronics" "Death industrial" "Power noise" "IDM" "Glitch" "Glitch Hop" "Wonky" "Jungle" "Darkcore jungle" "Raggacore" "Post-disco" "Boogie" "Electropop" "Chillwave" "Vaporwave" "Hardvapour" "Dance-pop" "Dance-rock" "Techno" "Acid techno" "Detroit techno" "Dub techno" "Free tekno" "Minimal techno" "Nortec" "Tecno brega" "Techdombe" "Trance music" "Acid trance" "Balearic trance" "Dream trance" "Euro-trance" "Hard trance" "Nitzhonot" "Psychedelic trance" "Full on" "Suomisaundi" "Goa trance" "Progressive trance" "Tech trance" "Uplifting trance" "Vocal trance" "Chill" "Chillstep" "UK garage" "2-step garage" "Dubstep" "Deathstep" "Brostep" "Chillstep" "Drumstep" "Reggaestep" "Trapstep" "Metalstep" "Club" "Breakstep" "Future garage" "Grime" "Grindie" "Speed garage" "Bassline/4x4 garage" "UK funky" "Nightcore" "Nightstep" "Video game music" "Chiptune" "Bitpop" "Game Boy music" "Shiny" "Skweee" "Nintendocore" "Tetris music" "American folk revival" "Anti-folk" "British folk revival" "Celtic music" "Chalga" "Contemporary folk" "Filk music" "Folk rock" "Folktronica" "Freak folk" "Indie folk" "Industrial folk" "Neofolk" "Progressive folk" "Protest song" "Psychedelic folk" "Singer-songwriter movement" "Skiffle" "Sung poetry" "Cowboy/Western music" "Alternative hip hop" "Australian hip hop" "Bongo Flava" "Boom bap" "British hip hop" "Chap hop" "Chopper rap" "Christian hip hop" "Cloud rap" "Conscious hip hop" "Crunk" "Crunkcore" "Drill" "Electro music" "Emo hip hop" "Experimental hip hop" "G-funk" "Ghetto house" "Ghettotech" "Golden age hip hop" "Grime" "Hardcore hip hop" "Hip house" "Hiplife" "Hip pop" "Hyphy" "Industrial hip hop" "Instrumental hip hop" "Jazz rap" "Jersey club" "Kwaito" "Lyrical hip hop" "Low Bap" "Merenrap" "Motswako" "Mumble rap" "Nerdcore" "New jack swing" "New school hip hop" "Old school hip hop" "Political hip hop" "Ragga" "Reggaeton" "Snap" "Jerkin'" "Trap" "Urban Pasifika" "Emo rap" "K-rap" "J-rap" "Nederhop (Dutch rap)" "Urban street" "Horrorcore"])) |
| 10 | + |
| 11 | +(def album-gen (gen/tuple artist-gen |
| 12 | + (gen/vector album-name-gen |
| 13 | + 2 5) |
| 14 | + genre-gen |
| 15 | + (gen/vector genre-gen |
| 16 | + 2 5))) |
| 17 | + |
| 18 | + |
| 19 | + |
| 20 | +(defn get-albums-xs |
| 21 | + [] |
| 22 | + (map (fn [[artist album-xs genre sub-genre-xs] year id] |
| 23 | + (cs/join ,円 |
| 24 | + [id |
| 25 | + (str year) |
| 26 | + (cs/join \ |
| 27 | + album-xs) |
| 28 | + genre |
| 29 | + (str "\"" |
| 30 | + (cs/join ,円 |
| 31 | + sub-genre-xs) |
| 32 | + "\"")])) |
| 33 | + (gen/sample-seq album-gen) |
| 34 | + (mapcat (fn [year] |
| 35 | + (repeat (rand-nth (range 10 40)) |
| 36 | + year)) |
| 37 | + (drop 2040 (range))) |
| 38 | + (drop 501 (range)))) |
0 commit comments