made the toml_generator
example ✨ Not Shit ✨
This commit is contained in:
parent
5eec04b951
commit
9e9b44dc14
@ -1,94 +1,578 @@
|
||||
addition-used = false
|
||||
afraid-boiling-draconian = 1916-12-15T11:26:42+11:26
|
||||
boiling-whip = 12:23:17.000000129
|
||||
charming = 16771
|
||||
close-unbecoming = 14:49:02
|
||||
contain-terrible-neck = 1928-11-07T06:30:56
|
||||
creature = 0.4857
|
||||
crowded-profuse-capable = 1932-05-28
|
||||
deserted-cross-creature = 1931-12-26T04:31:04
|
||||
deserted-heavy = [ 2014-02-08, 1984-03-16, 1910-08-05 ]
|
||||
fabulous = 0.3388
|
||||
ghost-birds-legal = 1989-09-02
|
||||
grandfather-weary = 10216
|
||||
haircut-dreary-broken = 'unadvised rejoice lewd crime grandfather rice imperfect'
|
||||
harm-snow = 0.6724
|
||||
leather-aromatic-rabbit = false
|
||||
license-harm = 1987-08-15T15:30:51+03:24
|
||||
naughty-self-close = 1916-09-21T01:53:27-02:59
|
||||
neck = 29653
|
||||
neck-crime-wistful = 1998-12-07
|
||||
rest-afraid = [
|
||||
1912-06-23T07:00:07-07:46,
|
||||
1910-11-17T13:10:34,
|
||||
2014-08-03T04:37:12-06:36,
|
||||
1966-11-22T18:08:23+06:10,
|
||||
1985-03-01T08:11:38,
|
||||
1976-09-04T20:46:46+00:29,
|
||||
1964-05-18T20:13:27-01:25,
|
||||
1961-10-14T11:03:51.000011555+06:23,
|
||||
2005-07-13T02:57:15-01:46,
|
||||
2007-02-01T17:09:54-08:45,
|
||||
1952-03-06T09:15:04+01:44,
|
||||
1962-12-25T23:00:11+04:28
|
||||
]
|
||||
rotten-best = 0.0325
|
||||
run-curious = true
|
||||
run-meaty = 04:40:20.000003312
|
||||
scintillating-cream = 0.2604
|
||||
sisters-playground = 'week spiritual pause insidious uptight'
|
||||
spiritual-borrow-messy = 16:49:32
|
||||
surprise-jail-babies = 2008-01-01
|
||||
title-unbiased = 1958-10-08
|
||||
unbecoming-scene-lewd = true
|
||||
worried-spicy = 23:03:54
|
||||
boiling-morning = 947
|
||||
capable-adhesive = 09:20:44
|
||||
cure = 0.4747 # broken
|
||||
deserted = 0.3939
|
||||
finger-surprise = true
|
||||
flimsy-hook = { wistful-vengeful-complex = [ 2012-06-01T14:49:11+09:41 ] } # experience
|
||||
naughty = 1928-08-08T22:22:07+06:02
|
||||
remarkable-umbrella-flagrant = 1910-09-26
|
||||
silky-ski-threatening = 'bore regret' # reject
|
||||
soap-decisive = ''
|
||||
want = 0.4848
|
||||
|
||||
[contain]
|
||||
ghost = 0.2471
|
||||
tank-lackadaisical = 1945-02-18T22:22:27+01:41
|
||||
[[babies-lewd-relation.playground-snow-rotten]]
|
||||
addition-cobweb = 0.8157
|
||||
bore = 'acceptable stale adhesive stale curtain deserted'
|
||||
close-hard-to-find = {} # finicky righteous
|
||||
contain-train = { ball-license-babies = 22:44:01, string-cross = 0.4102, used-rest = 2014-09-05T17:02:28 }
|
||||
flat-cheerful = {}
|
||||
license-gleaming-laughable = 2009-06-03
|
||||
rich-title-fuel = 'close tacky stale bake'
|
||||
|
||||
[contain.righteous-imperfect-remarkable]
|
||||
ticket = 0.2412
|
||||
voyage = 'prefer silky night draconian three dreary decisive'
|
||||
wilderness-draconian = 04:58:17
|
||||
[babies-lewd-relation.playground-snow-rotten.aromatic-overjoyed]
|
||||
whip-addition = {} # insidious
|
||||
|
||||
[contain.righteous-imperfect-remarkable.deeply-night-gold]
|
||||
legal = 1981-07-04
|
||||
righteous = [ false, true, false, false, true ]
|
||||
wilderness = 1900-12-24
|
||||
[babies-lewd-relation.playground-snow-rotten.morning-adorable-gleaming] # deeply spicy
|
||||
legal-imperfect-worried = 06:23:39
|
||||
modern = 1968-01-21
|
||||
skip-sprout-zealous = ''
|
||||
step-history = {}
|
||||
|
||||
[crime]
|
||||
boiling-excuse-incandescent = 31173
|
||||
flat-rejoice = 0.8682
|
||||
furtive = 6866
|
||||
heavy-memory = 5545
|
||||
lackadaisical-terrible-overjoyed = [ 'harm acceptable naughty pause', 'page anxious threatening lewd' ]
|
||||
reject-aromatic = [ false, true, true, true, false, true ]
|
||||
reject-naughty = 11229
|
||||
scintillating-bake-harm = 0.8258
|
||||
[[babies-lewd-relation.playground-snow-rotten]]
|
||||
draconian-addition-threatening = 'behave experience impossible' # high-pitched unbecoming
|
||||
stingy-equable-clean = 1975-03-17 # protective
|
||||
versed-bake = 505
|
||||
|
||||
[license-bat]
|
||||
adorable-blind-string = 1961-08-14
|
||||
bat = 1939-10-28
|
||||
blind-wilderness = 2004-07-14
|
||||
[[babies-lewd-relation.playground-snow-rotten]]
|
||||
night = 0.778
|
||||
prefer-torpid-ski = [ 0.6483, false, 1982-01-23T16:10:13-01:55 ]
|
||||
soap = { fix = 2019-07-24T07:38:55+01:19, umbrella = 1947-02-13T18:02:46 }
|
||||
soap-blind = 1964-05-23 # run prefer
|
||||
used-ancient-delightful = false
|
||||
worried-string = [ [ 'borrow unbecoming geese' ] ]
|
||||
|
||||
[rapid]
|
||||
borrow = true
|
||||
jail-weary-furtive = 'room'
|
||||
protective-sulky = 4737
|
||||
room-decisive-unbiased = 1998-11-01T12:23:58
|
||||
soap = 1985-05-06
|
||||
sprout-rich = 0.6026
|
||||
# title tacky dull draconian lewd dreary
|
||||
# deeply anxious surprise torpid unite relation kindhearted
|
||||
# skip dull room train experience
|
||||
# borrow satisfy scintillating neck impossible aromatic high-pitched
|
||||
# week respect ghost capable
|
||||
# satisfy deserted capable rabbit string threatening
|
||||
|
||||
[rapid.clean-leather]
|
||||
blood-snow-mark = true
|
||||
equable = 0.2923
|
||||
fabulous = 1979-07-24T00:53:39+06:22
|
||||
glorious-threatening = true
|
||||
lewd-dull = 02:40:53.000027288
|
||||
[babies-lewd-relation.playground-snow-rotten.protective-kindhearted-train] # best
|
||||
hard-to-find = 'terrible'
|
||||
picture = 'ball history'
|
||||
step-decisive = 02:54:51
|
||||
|
||||
[run-overjoyed]
|
||||
creature-cheerful = 11071
|
||||
respect-history-anxious = 0.4637
|
||||
vessel = 'curious'
|
||||
[babies-lewd-relation.playground-snow-rotten.protective-kindhearted-train.crowded-protective] # leather unbecoming
|
||||
blind = 1905-03-22
|
||||
clean-wilderness-leather = 09:45:08 # scatter
|
||||
impossible-ski = 536 # sprout
|
||||
license = [ 1952-02-22T17:07:05.000005978+10:25, 1996-07-04T14:01:50 ] # stale stingy
|
||||
surprise-fuel = { borrow-kindhearted = 1986-03-23T20:44:26+07:51 } # playground
|
||||
|
||||
[babies-lewd-relation.playground-snow-rotten.protective-kindhearted-train.playground-bore] # hook flagrant
|
||||
addition-scatter-tacky = 02:17:38
|
||||
close = { crown-respect-prefer = 03:27:27 }
|
||||
incandescent = 10:04:01
|
||||
march-dreary-room = true
|
||||
mark-influence = true
|
||||
picture-squirrel-surprise = 901
|
||||
scene-rest-capable = [ 'torpid light attempt', 12:09:26.000008459 ] # addition
|
||||
unbecoming-decisive = { bat = [ 1913-12-15T13:13:49, '' ], march-experience-tank = 1911-12-04T18:29:34-04:06, relation-remarkable = false }
|
||||
whip-actually = [ [], [ 1996-05-28 ] ] # umbrella imperfect
|
||||
|
||||
# stale voyage run popcorn threatening bore
|
||||
# fabulous respect chubby ancient wistful creature
|
||||
# surprise prefer dull curious whip
|
||||
# used blue-eyed furtive torpid selfish chubby nondescript
|
||||
# curious complex geese jail
|
||||
|
||||
[[babies-lewd-relation.playground-snow-rotten.protective-kindhearted-train.playground-bore.influence-scintillating-vengeful]]
|
||||
babies-surprise-stingy = { surprise-contain-weary = 14:56:22 }
|
||||
borrow = 1996-06-04 # ancient
|
||||
fuel-miss-rich = [ 0.1081, 0.8454 ]
|
||||
grandfather = false
|
||||
haircut-versed-innocent = { boiling-innocent-blue-eyed = { blood-capable = 853, overjoyed-kindhearted = 0.2161 }, regret-ignore = 1905-02-06 }
|
||||
step-insidious-adhesive = [ 1950-01-06, {}, false ]
|
||||
unbiased = 784 # unite title
|
||||
uptight-itch-curtain = false
|
||||
|
||||
[[babies-lewd-relation.playground-snow-rotten.protective-kindhearted-train.playground-bore.influence-scintillating-vengeful]] # title relation
|
||||
deadpan = 1958-06-22T18:31:51+10:16
|
||||
fix = 0.3198 # heavy sulky
|
||||
page-stingy-selfish = 1930-06-19T02:38:48.000016194
|
||||
picture-lackadaisical = false # ghost
|
||||
tank-contain = 'memory consist helpless'
|
||||
versed-leather-ghost = 'influence wistful flat'
|
||||
wretched-march = 'place enthusiastic decisive'
|
||||
|
||||
[babies-lewd-relation.playground-snow-rotten.protective-kindhearted-train.vengeful-worried]
|
||||
capable-bake-room = 1988-10-22 # actually unite
|
||||
cycle = false
|
||||
high-pitched-vengeful = 0.0822
|
||||
tank-license = 1953-02-12T14:43:36.00003003-00:35
|
||||
threatening = 03:43:23
|
||||
|
||||
# vessel remarkable pumped step draconian scary
|
||||
# pear selfish birds regret license stingy playground
|
||||
# pear babies geese rice ignore
|
||||
# run reject rapid reject
|
||||
|
||||
[babies-lewd-relation.playground-snow-rotten.protective-kindhearted-train.vengeful-worried.ghost-heavy] # respect
|
||||
advise-bore = true
|
||||
broken-lewd = true
|
||||
scatter = 6 # neck
|
||||
scintillating-regret-unadvised = 1936-07-25T17:22:32-05:14
|
||||
versed-miss = 0.9028
|
||||
weary = []
|
||||
|
||||
[babies-lewd-relation.playground-snow-rotten.protective-kindhearted-train.vengeful-worried.pumped-wistful]
|
||||
contain-modern = 1923-09-23T01:22:09-02:20
|
||||
curious-silky-borrow = 1959-11-06T04:37:54-02:58 # rotten
|
||||
hilarious = 1903-12-02
|
||||
insidious-tacky = 'harm spiritual laughable cycle influence messy enthusiastic'
|
||||
wall-sprout-scary = 10:44:31
|
||||
week-dull = {} # leather enthusiastic
|
||||
|
||||
[babies-lewd-relation.playground-snow-rotten.protective-kindhearted-train.vengeful-worried.unadvised-gold-unadvised]
|
||||
attempt = 1957-09-11
|
||||
flagrant-miss-tent = 0.8814
|
||||
legal-versed-sprout = false
|
||||
|
||||
[[babies-lewd-relation.playground-snow-rotten.protective-kindhearted-train.vengeful-worried.scene-naughty-spare]]
|
||||
deserted-hilarious = {}
|
||||
scatter-attempt = 'blind pear'
|
||||
|
||||
[[babies-lewd-relation.playground-snow-rotten.protective-kindhearted-train.blue-eyed]] # blue-eyed run
|
||||
borrow-run-mark = 0.5925
|
||||
complex-profuse = 1907-02-26T23:54:24.000028223+10:35
|
||||
crown-ticket = 'babies helpless'
|
||||
dull = 1942-11-26
|
||||
furtive = 816
|
||||
respect = 20:07:11
|
||||
string-cheerful-satisfy = 10:15:06
|
||||
unbecoming-furtive-unite = 2008-09-02T16:34:04+08:40
|
||||
|
||||
[[babies-lewd-relation.playground-snow-rotten.protective-kindhearted-train.blue-eyed.naughty-laughable-actually]]
|
||||
legal-attempt-light = 1934-09-24T20:24:29-10:18
|
||||
remarkable = 2020-10-02T19:53:38
|
||||
three-cure-innocent = [ 0.2179 ]
|
||||
versed-attempt = 1917-11-11
|
||||
week-draconian = 797
|
||||
|
||||
[[babies-lewd-relation.playground-snow-rotten.protective-kindhearted-train.blue-eyed.naughty-laughable-actually]] # skip
|
||||
fabulous-ignore = 2005-08-06
|
||||
messy = 242 # gusty worried
|
||||
|
||||
[[babies-lewd-relation.playground-snow-rotten.protective-kindhearted-train.blue-eyed]]
|
||||
fabulous = 0.8882
|
||||
fix = 1928-07-04T15:46:25-06:46
|
||||
rabbit-gold = 0.8035
|
||||
royal = 1989-09-26T07:06:21-08:43 # complex borrow
|
||||
terrible-capable-crowded = {}
|
||||
unbecoming = 201
|
||||
view = 12:19:31 # ignore
|
||||
wilderness-tent-week = [ 384 ]
|
||||
|
||||
[babies-lewd-relation.playground-snow-rotten.whip-enthusiastic-ignore]
|
||||
afraid = 2010-08-09
|
||||
ball = 17:51:13 # vengeful
|
||||
blind-heavy = 'cheerful profuse innocent dreary' # legal hard-to-find
|
||||
deserted-itch = 1984-03-02
|
||||
skip-protective = 22:27:14
|
||||
spare-view-hook = { flimsy-partner-fuel = 727, memory-blue-eyed = 0.9457 }
|
||||
|
||||
[[babies-lewd-relation.playground-snow-rotten.whip-enthusiastic-ignore.skip-bake-incandescent]]
|
||||
|
||||
[babies-lewd-relation.playground-snow-rotten.whip-enthusiastic-ignore.skip-bake-incandescent.influence-bat-actually]
|
||||
broken-surprise = 21:24:24.000002983
|
||||
leather-taboo-dull = { deeply = [ 813, 07:48:43.000014695 ], run-bake = 'march used scatter attempt close chubby innocent', tacky-party = 2005-02-06 } # cross
|
||||
productive = { page = 361, three-tank-wistful = [ 2016-07-20, 13:18:08, 'light curtain morning rabbit harm sisters high-pitched' ] }
|
||||
terrible-partner-room = 1915-06-07
|
||||
train = 0.4414
|
||||
|
||||
# innocent string contain regret crime decisive wall
|
||||
# spiritual naughty tacky stale attempt
|
||||
# deadpan cure experience royal ancient cure voyage
|
||||
# remarkable whip ski best haircut
|
||||
|
||||
[babies-lewd-relation.playground-snow-rotten.whip-enthusiastic-ignore.skip-bake-incandescent.rice-skip-used]
|
||||
bake-pear-train = 813 # vengeful
|
||||
clean-ancient = 2012-11-13
|
||||
complex = { naughty-deadpan-actually = 06:52:59, room-boiling = 0.1027 }
|
||||
haircut = true # tacky prefer
|
||||
rejoice-uptight = 0.6769
|
||||
spicy = true
|
||||
surprise = false # deadpan worried
|
||||
threatening = 1978-02-04
|
||||
title-acceptable = 1956-02-22
|
||||
|
||||
[[babies-lewd-relation.playground-snow-rotten.whip-enthusiastic-ignore.skip-bake-incandescent.selfish]] # license incandescent
|
||||
acceptable-decisive = 'skip flat gold influence morning unbiased'
|
||||
deadpan = 0.7201 # finicky
|
||||
dull-borrow = 1900-12-08 # dreary capable
|
||||
hilarious-vengeful = {} # furtive
|
||||
jail-consist-scatter = 0.1787
|
||||
scene-vessel-complex = 1971-02-15
|
||||
taboo-dull = 0.1922
|
||||
taboo-ignore = 2019-04-22 # deadpan
|
||||
unadvised-scene = 03:16:52
|
||||
|
||||
[[babies-lewd-relation.playground-snow-rotten.whip-enthusiastic-ignore.skip-bake-incandescent]]
|
||||
contain = false
|
||||
legal-hilarious = []
|
||||
rejoice = [ 1979-08-21T05:58:09-06:39, 'creature memory' ]
|
||||
wall-flagrant-self = 0.4976
|
||||
|
||||
[[babies-lewd-relation.playground-snow-rotten.wall]] # protective
|
||||
capable = [] # wilderness snow
|
||||
clean = 1963-02-17
|
||||
complex-umbrella = { familiar-innocent-consist = 175, stale = 07:03:20.00002881 }
|
||||
creature-gleaming-sisters = 1984-05-19 # gleaming
|
||||
crowded-squirrel = 1974-10-07
|
||||
enthusiastic-three-tent = { capable-crowded = 1931-03-05T09:28:53-07:42, flat-broken-clean = {} }
|
||||
light-snow = false # silky
|
||||
wilderness-light-curious = 989 # actually
|
||||
|
||||
[babies-lewd-relation.playground-snow-rotten.wall.threatening]
|
||||
chubby-overjoyed = 0.7252 # cheerful
|
||||
cream-addition = 0.8832
|
||||
familiar-high-pitched = 2013-11-10
|
||||
laughable-geese-borrow = {}
|
||||
overjoyed-bake = 1919-07-25
|
||||
respect-umbrella = 1947-09-18 # charming
|
||||
scene-rapid = false
|
||||
surprise-delightful-stingy = { creature-pause = 0.9945, room-advise = '', tent-snow = '' } # rabbit
|
||||
|
||||
[[babies-lewd-relation.playground-snow-rotten.wall]]
|
||||
crown-unbiased = 06:10:11 # jail
|
||||
impossible-flimsy = 1992-09-13T01:39:28.000005689-05:33
|
||||
rejoice = [ false ]
|
||||
ski-ball-run = 'finicky haircut vessel spicy'
|
||||
tacky = 9 # ignore
|
||||
vengeful-rabbit = true # lackadaisical fix
|
||||
|
||||
# jail excuse enthusiastic cream complex
|
||||
# train satisfy fix broken
|
||||
# threatening boiling attempt train delightful cheerful vengeful
|
||||
# rich actually fabulous contain deadpan harm curious
|
||||
# fabulous scene furtive acceptable blood
|
||||
# meaty used curious mark surprise curtain hard-to-find
|
||||
|
||||
[babies-lewd-relation.playground-snow-rotten.wall.terrible]
|
||||
aromatic = 1937-12-11T00:23:12 # addition whip
|
||||
glorious-wretched = { tank-adorable-gold = false, wilderness-cure-history = [ 1957-11-25T20:10:27.000016213+04:26, 2008-02-17, 20:40:09 ] }
|
||||
squirrel-flagrant-boiling = { skip-room = { nondescript-morning-excuse = 1904-05-01T16:47:38+10:26 } }
|
||||
surprise = 0.3398
|
||||
worried = 'wretched experience ancient'
|
||||
|
||||
# week hilarious miss sprout
|
||||
|
||||
[babies-lewd-relation.playground-snow-rotten.wall.terrible.anxious] # crown tacky
|
||||
fabulous-impossible = false # spare
|
||||
fuel = 1908-09-09 # stale charming
|
||||
license-ticket = [] # regret rejoice
|
||||
sprout-mark-selfish = { page = 23:36:46.0000114, weary-deserted-history = [ true ] }
|
||||
voyage = { meaty-helpless = 1980-04-20 }
|
||||
|
||||
# bore babies influence overjoyed advise light
|
||||
# righteous remarkable leather stingy partner actually advise
|
||||
# scary familiar deadpan gleaming adhesive broken experience
|
||||
# mark unbiased popcorn squirrel close capable
|
||||
# scintillating ski productive unbecoming haircut
|
||||
# tank attempt scene rabbit high-pitched sprout
|
||||
# gusty attempt flimsy ski pear terrible rice
|
||||
|
||||
[babies-lewd-relation.playground-snow-rotten.wall.terrible.boiling] # flimsy glorious
|
||||
charming-royal = 04:14:31.000005876
|
||||
curtain = 2005-08-17T06:45:00 # equable
|
||||
draconian-clean-enthusiastic = 'history'
|
||||
fix = 19:53:23
|
||||
influence-week-reject = 581 # spiritual bore
|
||||
self-protective = 2004-01-19T01:00:26.000016471+00:16
|
||||
step-overjoyed-history = [ 'curious satisfy', [ 'overjoyed bat advise grandfather', 0.5762 ], 1947-06-28T09:03:40-08:39 ]
|
||||
|
||||
[babies-lewd-relation.playground-snow-rotten.wall.terrible.laughable-crime] # babies
|
||||
umbrella = 1938-06-10
|
||||
|
||||
# furtive actually cross creature
|
||||
# rest ghost mark selfish deadpan wistful torpid
|
||||
|
||||
[[babies-lewd-relation.playground-snow-rotten.wall.terrible.versed-overjoyed]] # hilarious
|
||||
blind-familiar = 73 # gold respect
|
||||
clean-train = { borrow-flagrant = 0.6438, unbecoming-fabulous-cheerful = false } # week
|
||||
flimsy-pumped-umbrella = { string-boiling = { insidious-sisters = 10:33:25 }, weary = { behave-rejoice-threatening = 0.9151, protective-grandfather = 'haircut', view-regret-partner = false } } # unadvised finger
|
||||
modern = 0.1885
|
||||
place-cross = [ {} ]
|
||||
tank = false
|
||||
terrible-enthusiastic = 'hook' # train
|
||||
threatening-best = 1908-09-20 # ticket
|
||||
unbecoming-high-pitched = 09:47:03 # selfish productive
|
||||
|
||||
[[babies-lewd-relation.playground-snow-rotten.wall.terrible.versed-overjoyed]]
|
||||
anxious = [] # equable
|
||||
clean-satisfy = [ 0.8894, 153 ]
|
||||
scene = 17:37:43 # clean ancient
|
||||
|
||||
# voyage wall deserted furtive rest aromatic
|
||||
# cross flat cure productive cheerful
|
||||
|
||||
[[babies-lewd-relation.playground-snow-rotten.wall.terrible.versed-overjoyed]] # charming laughable
|
||||
ball-deserted = 'voyage' # crown
|
||||
deadpan-prefer-deeply = 104
|
||||
fabulous-influence-wall = 0.0613
|
||||
ignore = 1982-07-11
|
||||
modern = { helpless-imperfect-leather = [ 'unbiased familiar place', 06:33:07.00002173, 0.5918 ], worried-crowded = false } # helpless want
|
||||
party-complex-laughable = 11:39:52 # rice light
|
||||
rich-three = 1929-11-07T03:53:23
|
||||
royal-behave-babies = { fabulous-mark = [ 659, true ], unbecoming-messy = [] } # rich broken
|
||||
spare = [ 1935-09-28T14:49:51-02:02 ]
|
||||
|
||||
[[babies-lewd-relation.playground-snow-rotten.wall]] # threatening
|
||||
contain = [ 1918-09-06 ]
|
||||
haircut-selfish-gusty = 976 # spicy stale
|
||||
rotten = [ true, 'afraid overjoyed kindhearted threatening jail deadpan cure' ]
|
||||
scene-charming-delightful = 'rice crown room'
|
||||
scintillating-umbrella-crowded = true
|
||||
selfish = 1986-11-28
|
||||
stale = 0.3828
|
||||
title-equable-partner = 508 # zealous
|
||||
|
||||
[[terrible]]
|
||||
boiling-anxious-heavy = 1975-02-23
|
||||
|
||||
[terrible.capable-tent]
|
||||
behave-ski-geese = true
|
||||
borrow = true
|
||||
capable-blue-eyed = 0.96
|
||||
delightful-fabulous = 14:05:34
|
||||
glorious = [ # finger spicy
|
||||
{ best = 0.3935, cycle-acceptable = 05:55:20, spiritual-zealous-high-pitched = 'borrow actually taboo unadvised deadpan' },
|
||||
false
|
||||
]
|
||||
hilarious = [ 0.0929 ]
|
||||
spiritual-tank-sprout = 1969-10-20
|
||||
week = false
|
||||
wretched-step = { close-reject-excuse = 'taboo popcorn party', finger-soap-best = 0.5234 }
|
||||
|
||||
[terrible.capable-tent.contain-spiritual-squirrel]
|
||||
delightful-torpid-three = 'rejoice'
|
||||
haircut-regret-curious = 0.7427
|
||||
morning-babies = 'hilarious voyage royal complex crown complex'
|
||||
rest-impossible-borrow = '' # deserted behave
|
||||
scatter-rest-impossible = { rich-close-actually = 878, vengeful = 0.2007 } # tank run
|
||||
tacky-neck-cheerful = [ {}, [] ]
|
||||
|
||||
[terrible.capable-tent.week-week-zealous]
|
||||
bat-zealous = 'morning lewd consist familiar morning crowded laughable' # uptight ski
|
||||
delightful-tank = 1948-04-17 # charming
|
||||
excuse = 1939-09-20T05:39:20.000019588+07:59
|
||||
gold = 1901-05-16T23:53:21-05:25
|
||||
royal = '' # remarkable
|
||||
self = { train-birds-stingy = 'insidious scene gold', vessel = 0.5759 }
|
||||
soap = { dull-history = false, scary = false }
|
||||
taboo-ancient-itch = { gusty-snow-pear = { protective-scatter-high-pitched = 1996-11-03 }, rejoice-ignore-finger = 1918-11-22T19:37:38, squirrel-high-pitched-nondescript = 1995-07-17T04:54:13 }
|
||||
umbrella-partner = []
|
||||
|
||||
[terrible.capable-tent.wilderness-aromatic]
|
||||
attempt-night = 23:28:50 # borrow
|
||||
cross-spare-hook = [ 1919-06-28T19:24:17-04:44, 08:23:11 ]
|
||||
pear-helpless-profuse = true
|
||||
productive-whip = 349
|
||||
rapid-scary = 23:34:33
|
||||
rotten-wistful = 1944-11-27
|
||||
threatening = false # chubby
|
||||
view-afraid = false
|
||||
|
||||
# neck draconian innocent innocent unbecoming advise
|
||||
# voyage aromatic train gold broken harm memory
|
||||
# fuel broken string unbecoming
|
||||
# party party stale ski advise lewd
|
||||
|
||||
[terrible.capable-tent.wilderness-aromatic.tank]
|
||||
cheerful-zealous-experience = 41
|
||||
memory = 890 # deadpan
|
||||
naughty = 1991-07-27T16:21:58+02:12
|
||||
sisters = true # royal
|
||||
tent-threatening-threatening = 0.1835
|
||||
|
||||
# attempt rabbit boiling train laughable wistful
|
||||
# soap excuse spare neck babies unbiased fix
|
||||
# legal unbecoming flagrant rest excuse uptight royal
|
||||
|
||||
[[terrible.capable-tent.wilderness-aromatic.tank.terrible]]
|
||||
birds = [ true, 12:01:59, 1993-12-06 ]
|
||||
scintillating-vengeful = 'snow party train unbiased innocent'
|
||||
sulky = 'popcorn'
|
||||
|
||||
[[terrible.capable-tent.wilderness-aromatic.tank.terrible]]
|
||||
wistful-innocent-morning = 482
|
||||
|
||||
[[terrible.capable-tent.wilderness-aromatic.tank.terrible]]
|
||||
adorable = [ false, [ 1986-08-22T06:58:04, 211 ] ]
|
||||
crowded = [ 06:00:22, 15:39:55 ]
|
||||
dreary-decisive = 1937-08-23
|
||||
familiar-taboo-unite = false
|
||||
glorious = true # room messy
|
||||
license-anxious-prefer = ''
|
||||
pumped = 2010-02-06T18:30:43-07:27
|
||||
royal = 1949-03-01T15:27:36
|
||||
|
||||
[[terrible.capable-tent.wilderness-aromatic.birds]]
|
||||
hook-dull-familiar = 2020-05-09T10:12:18-00:21
|
||||
imperfect = false
|
||||
pear = 'vengeful worried self close worried'
|
||||
|
||||
[[terrible.capable-tent.wilderness-aromatic.birds]]
|
||||
bore-unite-flimsy = { finicky-legal-view = [ 749 ] }
|
||||
grandfather-unbiased = 'modern delightful actually cream' # versed
|
||||
haircut-soap = 2004-05-01T21:12:27+01:34
|
||||
innocent-crime-unbiased = 'three flimsy'
|
||||
lewd-adorable = 05:25:31 # best fuel
|
||||
neck = 17:07:42
|
||||
rabbit-versed = 11:23:17.000021208
|
||||
step-overjoyed-anxious = 0.2862
|
||||
weary-creature-itch = [ 2012-05-13T05:12:55+10:38, 1983-01-06T06:23:03-04:47 ] # skip ticket
|
||||
|
||||
[[terrible.capable-tent.wilderness-aromatic.birds]]
|
||||
hook-rest-impossible = [ 21:02:47.000007906, 0.9952, [ 1977-05-22, true, true ] ]
|
||||
sisters-rotten = 276
|
||||
|
||||
[terrible.capable-tent.wilderness-aromatic.birds.naughty-blind]
|
||||
bake-scatter-cross = [
|
||||
234,
|
||||
{ attempt-selfish-ghost = 08:43:45, draconian-ski-scintillating = 1911-03-24T12:01:06-01:20, dreary = 266 },
|
||||
'innocent broken equable adhesive spiritual title respect'
|
||||
] # hard-to-find protective
|
||||
ticket-enthusiastic-delightful = [ 428, 12:49:26, [ 07:10:40, 'neck unadvised finicky stale rest', true ] ]
|
||||
|
||||
[terrible.capable-tent.wilderness-aromatic.birds.popcorn-cross-unbecoming]
|
||||
capable-best = [ { fabulous = 0.0328 }, 1959-07-11T18:30:11-10:19, [ false, 1943-02-01T14:46:20+04:32 ] ]
|
||||
contain = { harm-babies-actually = 1927-05-26, lackadaisical-cobweb-ticket = { license-stale = true }, zealous = 14:34:49 }
|
||||
dreary-rejoice = false
|
||||
ignore-cobweb = true
|
||||
jail = false
|
||||
legal = {}
|
||||
|
||||
[terrible.capable-tent.wilderness-aromatic.birds.rotten]
|
||||
innocent = 2012-07-13
|
||||
stingy = 12:22:46
|
||||
wilderness = true
|
||||
|
||||
[[terrible.capable-tent.taboo-snow-fix]]
|
||||
consist = 0.5019
|
||||
deadpan-title-equable = []
|
||||
enthusiastic = 'jail step deserted' # neck
|
||||
high-pitched-ski-jail = {}
|
||||
lackadaisical-page = 2011-04-21
|
||||
leather-grandfather-lackadaisical = 'kindhearted kindhearted rich babies' # umbrella
|
||||
relation-high-pitched = 1995-11-05 # blue-eyed cream
|
||||
self-deeply-crown = 0.6038 # pumped relation
|
||||
spare-behave-royal = 1955-01-15T04:19:40.000024836-03:27
|
||||
|
||||
[terrible.history-wistful-insidious]
|
||||
deadpan-run = 1961-12-04T21:19:22
|
||||
impossible-itch-hilarious = []
|
||||
wall-silky-zealous = false
|
||||
|
||||
[terrible.history-wistful-insidious.broken-bore]
|
||||
decisive-spicy = 01:43:10
|
||||
finger-deeply = 03:52:20
|
||||
jail = [ 'week title curtain week snow' ]
|
||||
jail-borrow = true # flimsy
|
||||
kindhearted-tent-harm = 1979-06-03
|
||||
playground-unbecoming = 0.3341
|
||||
used-unbecoming-cobweb = 0.7474
|
||||
|
||||
[terrible.history-wistful-insidious.broken-bore.draconian.silky] # afraid unbiased
|
||||
bat-vessel-enthusiastic = 1988-05-20T20:51:44+00:23
|
||||
decisive-close-rest = 1979-07-27T21:30:02-07:46
|
||||
messy = 0.2638 # excuse
|
||||
stingy-self-rejoice = 0.0179
|
||||
tacky-mark = 'wilderness furtive incandescent delightful close rotten' # best
|
||||
vessel = 2006-06-28T20:54:53 # umbrella
|
||||
|
||||
[[terrible.history-wistful-insidious.cobweb-finicky]]
|
||||
attempt-selfish-skip = []
|
||||
ball-ball = 0.1378 # aromatic best
|
||||
blind-curtain = 06:26:13
|
||||
fuel-fix-geese = 1918-06-21T14:07:38
|
||||
high-pitched-three = 16:58:45
|
||||
innocent-rabbit = 'train'
|
||||
miss = 'glorious chubby cobweb skip dreary scene ball'
|
||||
morning = 'unbiased ticket deeply anxious skip terrible dreary'
|
||||
playground = 'sisters run' # scene cycle
|
||||
|
||||
[[terrible.history-wistful-insidious.cobweb-finicky]]
|
||||
fabulous = [ 'flimsy spare tent rejoice curtain mark', true ]
|
||||
rabbit = {}
|
||||
ticket = false
|
||||
|
||||
# unadvised sulky acceptable righteous broken profuse terrible
|
||||
# ancient crown gleaming wistful ball rest
|
||||
# picture deadpan mark flimsy scatter decisive
|
||||
# close memory skip bat tent haircut
|
||||
# run attempt morning vengeful delightful legal itch
|
||||
|
||||
[terrible.productive]
|
||||
itch = ''
|
||||
|
||||
[[terrible]]
|
||||
babies-sisters = 62
|
||||
boiling = { deserted = 'adorable', lackadaisical-wilderness = 671 }
|
||||
decisive-itch = 1943-07-24 # cross rest
|
||||
ignore-best = [ 1916-02-18T15:56:45+02:04 ]
|
||||
overjoyed = 17:49:57
|
||||
place-familiar = true
|
||||
sisters = []
|
||||
used-rotten = 1985-08-10T07:39:42+05:17
|
||||
|
||||
[[terrible.regret-sisters-terrible]]
|
||||
|
||||
[[terrible.regret-sisters-terrible]]
|
||||
bake = 0.8399
|
||||
cross = 427
|
||||
leather = [ 02:56:44.000030194, 1974-09-24 ]
|
||||
nondescript-attempt-bore = 1900-07-03T04:56:46.000004029+07:22
|
||||
rejoice = true
|
||||
|
||||
# geese snow relation worried
|
||||
|
||||
[terrible.regret-sisters-terrible.ancient]
|
||||
boiling-messy-stingy = { fabulous-wretched-mark = [], wall-familiar-furtive = 2003-09-16 }
|
||||
cobweb-fix = 1988-05-07T07:01:15-10:34
|
||||
excuse-gleaming = { familiar = [ true, 1929-01-01T13:47:11+02:44, 04:04:47.00000846 ] } # heavy cheerful
|
||||
fix-acceptable-string = 15:39:49.000006614 # actually imperfect
|
||||
hard-to-find = false
|
||||
imperfect = 1960-11-24T22:00:37 # overjoyed
|
||||
rabbit-terrible-innocent = [] # threatening
|
||||
rabbit-train-ski = 0.6229 # profuse
|
||||
wilderness-advise = 1982-08-20
|
||||
|
||||
[[terrible.regret-sisters-terrible.ancient.umbrella-worried]]
|
||||
afraid = true # dreary
|
||||
|
||||
[terrible.regret-sisters-terrible.ancient.umbrella-worried.uptight-sisters-leather]
|
||||
bore-tank-afraid = true # wretched curtain
|
||||
|
||||
[[terrible.regret-sisters-terrible.terrible-scene-surprise]]
|
||||
prefer-legal = 428
|
||||
relation-license-partner = [ true ] # playground
|
||||
|
||||
[[terrible.regret-sisters-terrible]]
|
||||
glorious-adorable = 206 # curtain
|
||||
grandfather = 76
|
||||
ignore-cycle = 1956-07-22T01:39:24+03:39
|
||||
messy = {} # draconian
|
||||
|
||||
[[terrible.regret-sisters-terrible.memory]] # curious memory
|
||||
kindhearted-anxious-rotten = true
|
||||
march-cheerful-view = { best-rice-want = 1978-08-26T22:05:21-00:49, spiritual = 1951-01-22T09:45:33-07:27, vessel-insidious = true } # gold
|
||||
mark-sulky = 0.0597
|
||||
pear = 1986-10-18T13:04:43-01:01 # three itch
|
||||
remarkable-wistful = 1901-10-01
|
||||
scatter-furtive-versed = 01:16:52
|
||||
tank-reject = [ 12:09:18, {} ] # wall finger
|
||||
|
||||
[[terrible.regret-sisters-terrible.memory]]
|
||||
babies-memory = [ { decisive = 15:35:50.000020612, stale-spicy = 0.1702 } ] # adhesive
|
||||
blue-eyed-aromatic = 'curious birds terrible crowded'
|
||||
close-cobweb-satisfy = [ {} ]
|
||||
license = 0.9682 # lewd
|
||||
reject-spiritual-taboo = ''
|
||||
sulky-afraid = false
|
||||
train-ghost-week = [ [ 0.6958, true ], 1942-02-15 ]
|
||||
|
||||
[[terrible.regret-sisters-terrible.memory]]
|
||||
imperfect = [ 0.0689 ] # harm
|
||||
three-string-tacky = 0.2109
|
||||
|
@ -18,6 +18,7 @@
|
||||
|
||||
#include <cstdlib>
|
||||
#include <ctime>
|
||||
#include <cassert>
|
||||
#include <iostream>
|
||||
#include <sstream>
|
||||
#include <string>
|
||||
|
@ -12,195 +12,310 @@ using namespace std::string_view_literals;
|
||||
|
||||
namespace
|
||||
{
|
||||
inline constexpr auto words = std::array{
|
||||
"acceptable"sv, "contain"sv, "ghost"sv, "mark"sv, "respect"sv, "taboo"sv,
|
||||
"actually"sv, "cream"sv, "gleaming"sv, "meaty"sv, "rest"sv, "tacky"sv,
|
||||
"addition"sv, "creature"sv, "glorious"sv, "memory"sv, "rice"sv, "tank"sv,
|
||||
"adhesive"sv, "crime"sv, "gold"sv, "messy"sv, "rich"sv, "tent"sv,
|
||||
"adorable"sv, "cross"sv, "grandfather"sv, "miss"sv, "righteous"sv, "terrible"sv,
|
||||
"advise"sv, "crowded"sv, "gusty"sv, "modern"sv, "room"sv, "threatening"sv,
|
||||
"afraid"sv, "crown"sv, "haircut"sv, "morning"sv, "rotten"sv, "three"sv,
|
||||
"ancient"sv, "cure"sv, "hard-to-find"sv, "naughty"sv, "royal"sv, "ticket"sv,
|
||||
"anxious"sv, "curious"sv, "harm"sv, "neck"sv, "run"sv, "title"sv,
|
||||
"aromatic"sv, "curtain"sv, "heavy"sv, "night"sv, "satisfy"sv, "torpid"sv,
|
||||
"attempt"sv, "cycle"sv, "helpless"sv, "nondescript"sv, "scary"sv, "train"sv,
|
||||
"babies"sv, "deadpan"sv, "high-pitched"sv, "overjoyed"sv, "scatter"sv, "umbrella"sv,
|
||||
"bake"sv, "decisive"sv, "hilarious"sv, "page"sv, "scene"sv, "unadvised"sv,
|
||||
"ball"sv, "deeply"sv, "history"sv, "partner"sv, "scintillating"sv, "unbecoming"sv,
|
||||
"bat"sv, "delightful"sv, "hook"sv, "party"sv, "self"sv, "unbiased"sv,
|
||||
"behave"sv, "deserted"sv, "ignore"sv, "pause"sv, "selfish"sv, "unite"sv,
|
||||
"best"sv, "draconian"sv, "imperfect"sv, "pear"sv, "silky"sv, "uptight"sv,
|
||||
"birds"sv, "dreary"sv, "impossible"sv, "picture"sv, "sisters"sv, "used"sv,
|
||||
"blind"sv, "dull"sv, "incandescent"sv, "place"sv, "ski"sv, "vengeful"sv,
|
||||
"blood"sv, "enthusiastic"sv, "influence"sv, "playground"sv, "skip"sv, "versed"sv,
|
||||
"blue-eyed"sv, "equable"sv, "innocent"sv, "popcorn"sv, "snow"sv, "vessel"sv,
|
||||
"boiling"sv, "excuse"sv, "insidious"sv, "prefer"sv, "soap"sv, "view"sv,
|
||||
"bore"sv, "experience"sv, "itch"sv, "productive"sv, "spare"sv, "voyage"sv,
|
||||
"borrow"sv, "fabulous"sv, "jail"sv, "profuse"sv, "spicy"sv, "wall"sv,
|
||||
"broken"sv, "familiar"sv, "kindhearted"sv, "protective"sv, "spiritual"sv, "want"sv,
|
||||
"capable"sv, "finger"sv, "lackadaisical"sv, "pumped"sv, "sprout"sv, "weary"sv,
|
||||
"charming"sv, "finicky"sv, "laughable"sv, "rabbit"sv, "squirrel"sv, "week"sv,
|
||||
"cheerful"sv, "fix"sv, "leather"sv, "rapid"sv, "stale"sv, "whip"sv,
|
||||
"chubby"sv, "flagrant"sv, "legal"sv, "regret"sv, "step"sv, "wilderness"sv,
|
||||
"clean"sv, "flat"sv, "lewd"sv, "reject"sv, "stingy"sv, "wistful"sv,
|
||||
"close"sv, "flimsy"sv, "license"sv, "rejoice"sv, "string"sv, "worried"sv,
|
||||
"cobweb"sv, "fuel"sv, "light"sv, "relation"sv, "sulky"sv, "wretched"sv,
|
||||
"complex"sv, "furtive"sv, "march"sv, "remarkable"sv, "surprise"sv, "zealous"sv,
|
||||
"consist"sv, "geese"sv
|
||||
};
|
||||
|
||||
template <typename T>
|
||||
[[nodiscard]] static T rand(T excl_max) noexcept
|
||||
namespace random
|
||||
{
|
||||
return static_cast<T>(static_cast<T>(std::rand()) % excl_max);
|
||||
}
|
||||
inline constexpr std::string_view words[] = {
|
||||
"acceptable"sv, "contain"sv, "ghost"sv, "mark"sv, "respect"sv, "taboo"sv,
|
||||
"actually"sv, "cream"sv, "gleaming"sv, "meaty"sv, "rest"sv, "tacky"sv,
|
||||
"addition"sv, "creature"sv, "glorious"sv, "memory"sv, "rice"sv, "tank"sv,
|
||||
"adhesive"sv, "crime"sv, "gold"sv, "messy"sv, "rich"sv, "tent"sv,
|
||||
"adorable"sv, "cross"sv, "grandfather"sv, "miss"sv, "righteous"sv, "terrible"sv,
|
||||
"advise"sv, "crowded"sv, "gusty"sv, "modern"sv, "room"sv, "threatening"sv,
|
||||
"afraid"sv, "crown"sv, "haircut"sv, "morning"sv, "rotten"sv, "three"sv,
|
||||
"ancient"sv, "cure"sv, "hard-to-find"sv, "naughty"sv, "royal"sv, "ticket"sv,
|
||||
"anxious"sv, "curious"sv, "harm"sv, "neck"sv, "run"sv, "title"sv,
|
||||
"aromatic"sv, "curtain"sv, "heavy"sv, "night"sv, "satisfy"sv, "torpid"sv,
|
||||
"attempt"sv, "cycle"sv, "helpless"sv, "nondescript"sv, "scary"sv, "train"sv,
|
||||
"babies"sv, "deadpan"sv, "high-pitched"sv, "overjoyed"sv, "scatter"sv, "umbrella"sv,
|
||||
"bake"sv, "decisive"sv, "hilarious"sv, "page"sv, "scene"sv, "unadvised"sv,
|
||||
"ball"sv, "deeply"sv, "history"sv, "partner"sv, "scintillating"sv, "unbecoming"sv,
|
||||
"bat"sv, "delightful"sv, "hook"sv, "party"sv, "self"sv, "unbiased"sv,
|
||||
"behave"sv, "deserted"sv, "ignore"sv, "pause"sv, "selfish"sv, "unite"sv,
|
||||
"best"sv, "draconian"sv, "imperfect"sv, "pear"sv, "silky"sv, "uptight"sv,
|
||||
"birds"sv, "dreary"sv, "impossible"sv, "picture"sv, "sisters"sv, "used"sv,
|
||||
"blind"sv, "dull"sv, "incandescent"sv, "place"sv, "ski"sv, "vengeful"sv,
|
||||
"blood"sv, "enthusiastic"sv, "influence"sv, "playground"sv, "skip"sv, "versed"sv,
|
||||
"blue-eyed"sv, "equable"sv, "innocent"sv, "popcorn"sv, "snow"sv, "vessel"sv,
|
||||
"boiling"sv, "excuse"sv, "insidious"sv, "prefer"sv, "soap"sv, "view"sv,
|
||||
"bore"sv, "experience"sv, "itch"sv, "productive"sv, "spare"sv, "voyage"sv,
|
||||
"borrow"sv, "fabulous"sv, "jail"sv, "profuse"sv, "spicy"sv, "wall"sv,
|
||||
"broken"sv, "familiar"sv, "kindhearted"sv, "protective"sv, "spiritual"sv, "want"sv,
|
||||
"capable"sv, "finger"sv, "lackadaisical"sv, "pumped"sv, "sprout"sv, "weary"sv,
|
||||
"charming"sv, "finicky"sv, "laughable"sv, "rabbit"sv, "squirrel"sv, "week"sv,
|
||||
"cheerful"sv, "fix"sv, "leather"sv, "rapid"sv, "stale"sv, "whip"sv,
|
||||
"chubby"sv, "flagrant"sv, "legal"sv, "regret"sv, "step"sv, "wilderness"sv,
|
||||
"clean"sv, "flat"sv, "lewd"sv, "reject"sv, "stingy"sv, "wistful"sv,
|
||||
"close"sv, "flimsy"sv, "license"sv, "rejoice"sv, "string"sv, "worried"sv,
|
||||
"cobweb"sv, "fuel"sv, "light"sv, "relation"sv, "sulky"sv, "wretched"sv,
|
||||
"complex"sv, "furtive"sv, "march"sv, "remarkable"sv, "surprise"sv, "zealous"sv,
|
||||
"consist"sv, "geese"sv
|
||||
};
|
||||
|
||||
template <typename T>
|
||||
[[nodiscard]] static T rand(T incl_min, T excl_max) noexcept
|
||||
{
|
||||
return static_cast<T>(incl_min + rand(excl_max - incl_min));
|
||||
}
|
||||
|
||||
static auto rand_date() noexcept
|
||||
{
|
||||
return toml::date{ rand(uint16_t{ 1900 }, uint16_t{ 2021 }),
|
||||
rand(uint8_t{ 1 }, uint8_t{ 13 }),
|
||||
rand(uint8_t{ 1 }, uint8_t{ 29 }) };
|
||||
}
|
||||
|
||||
static auto rand_time() noexcept
|
||||
{
|
||||
return toml::time{ rand(uint8_t{ 24 }),
|
||||
rand(uint8_t{ 60 }),
|
||||
rand(uint8_t{ 60 }),
|
||||
rand(100) > 80 ? rand(1000000000u) : 0u };
|
||||
}
|
||||
|
||||
static auto rand_string(size_t word_count, char sep = ' ') noexcept
|
||||
{
|
||||
std::string val;
|
||||
while (word_count-- > 0u)
|
||||
[[nodiscard]] static bool boolean() noexcept
|
||||
{
|
||||
if (!val.empty())
|
||||
val += sep;
|
||||
val.append(words[rand(words.size())]);
|
||||
return std::rand() % 2 == 0;
|
||||
}
|
||||
|
||||
template <typename T>
|
||||
[[nodiscard]] static T integer(T excl_max) noexcept
|
||||
{
|
||||
return static_cast<T>(static_cast<T>(std::rand()) % excl_max);
|
||||
}
|
||||
|
||||
template <typename T>
|
||||
[[nodiscard]] static T integer(T incl_min, T excl_max) noexcept
|
||||
{
|
||||
return static_cast<T>(incl_min + integer(excl_max - incl_min));
|
||||
}
|
||||
|
||||
[[nodiscard]] static toml::date date() noexcept
|
||||
{
|
||||
return toml::date{ integer(1900, 2021), //
|
||||
integer(1, 13),
|
||||
integer(1, 29) };
|
||||
}
|
||||
|
||||
[[nodiscard]] static toml::time time() noexcept
|
||||
{
|
||||
return toml::time{ integer(24), //
|
||||
integer(60),
|
||||
integer(60),
|
||||
integer(100) > 80 ? integer(1000000000u) : 0u };
|
||||
}
|
||||
|
||||
[[nodiscard]] static toml::time_offset time_offset() noexcept
|
||||
{
|
||||
return toml::time_offset{ integer(-11, 12), integer(-45, +46) };
|
||||
}
|
||||
|
||||
[[nodiscard]] static toml::date_time date_time() noexcept
|
||||
{
|
||||
return integer(100) >= 75 ? toml::date_time{ date(), time() }
|
||||
: toml::date_time{ date(), time(), time_offset() };
|
||||
}
|
||||
|
||||
[[nodiscard]] static std::string_view word() noexcept
|
||||
{
|
||||
return words[integer(std::size(words))];
|
||||
}
|
||||
|
||||
[[nodiscard]] static std::string string(size_t word_count, char sep = ' ')
|
||||
{
|
||||
std::string val;
|
||||
while (word_count-- > 0u)
|
||||
{
|
||||
if (!val.empty())
|
||||
val += sep;
|
||||
val.append(word());
|
||||
}
|
||||
return val;
|
||||
}
|
||||
|
||||
[[nodiscard]] static std::string key()
|
||||
{
|
||||
return random::string(random::integer(1u, 4u), '-');
|
||||
}
|
||||
|
||||
[[nodiscard]] static bool chance(float val) noexcept
|
||||
{
|
||||
val = (val < 0.0f ? 0.0f : (val > 1.0f ? 1.0f : val)) * 1000.0f;
|
||||
return static_cast<float>(integer(0, 1000)) <= val;
|
||||
}
|
||||
}
|
||||
|
||||
template <typename T>
|
||||
static auto add_to(toml::table& tbl, T&& val) -> toml::inserted_type_of<T&&>&
|
||||
{
|
||||
while (true)
|
||||
{
|
||||
auto key = random::key();
|
||||
auto it = std::as_const(tbl).lower_bound(key);
|
||||
if (it == tbl.cend() || it->first != key)
|
||||
{
|
||||
return *tbl.emplace_hint(it, std::move(key), static_cast<T&&>(val))
|
||||
->second.template as<toml::inserted_type_of<T&&>>();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
template <typename T>
|
||||
static auto add_to(toml::array& arr, T&& val) -> toml::inserted_type_of<T&&>&
|
||||
{
|
||||
return arr.emplace_back(static_cast<T&&>(val));
|
||||
}
|
||||
|
||||
template <typename Container>
|
||||
static void add_value_to(Container& container)
|
||||
{
|
||||
static_assert(toml::is_container<Container>);
|
||||
|
||||
switch (rand() % 7)
|
||||
{
|
||||
case 0: add_to(container, random::string(random::integer(8u))); break;
|
||||
case 1: add_to(container, random::integer(1000)); break;
|
||||
case 2: add_to(container, random::integer(10001) / 10000.0); break;
|
||||
case 3: add_to(container, random::boolean()); break;
|
||||
case 4: add_to(container, random::date()); break;
|
||||
case 5: add_to(container, random::time()); break;
|
||||
case 6: add_to(container, random::date_time()); break;
|
||||
default: break;
|
||||
}
|
||||
}
|
||||
|
||||
static constexpr int max_inline_nesting = 2;
|
||||
static constexpr int default_max_inline_values = 4;
|
||||
|
||||
template <typename Container>
|
||||
static void populate_inline_container(Container& container,
|
||||
int& budget,
|
||||
int inline_nesting = 0,
|
||||
int max_values = default_max_inline_values)
|
||||
{
|
||||
static_assert(toml::is_container<Container>);
|
||||
|
||||
auto values = random::integer(max_values);
|
||||
while (budget && values)
|
||||
{
|
||||
// inline array/table
|
||||
if (inline_nesting < max_inline_nesting && random::chance(0.25f))
|
||||
{
|
||||
// array
|
||||
if (random::boolean())
|
||||
{
|
||||
auto& arr = add_to(container, toml::array{});
|
||||
populate_inline_container(arr, budget, inline_nesting + 1, default_max_inline_values);
|
||||
}
|
||||
|
||||
// table
|
||||
else
|
||||
{
|
||||
auto& tbl = add_to(container, toml::table{});
|
||||
tbl.is_inline(true);
|
||||
populate_inline_container(tbl, budget, inline_nesting + 1, default_max_inline_values);
|
||||
}
|
||||
}
|
||||
|
||||
// regular value
|
||||
else
|
||||
{
|
||||
add_value_to(container);
|
||||
budget--;
|
||||
}
|
||||
|
||||
values--;
|
||||
}
|
||||
}
|
||||
|
||||
static constexpr int max_top_level_nesting = 5;
|
||||
static constexpr int max_array_of_tables_children = 4;
|
||||
static constexpr int max_table_children = 4;
|
||||
|
||||
static void populate_table(toml::table& tbl, int& budget, int nesting = 0)
|
||||
{
|
||||
assert(!tbl.is_inline());
|
||||
|
||||
// do simple values + inline tables/arrays first
|
||||
populate_inline_container(tbl, budget, 0, 10);
|
||||
|
||||
// add a nested array-of-tables
|
||||
if (budget && nesting < max_top_level_nesting && random::chance(0.33f))
|
||||
{
|
||||
auto& arr = add_to(tbl, toml::array{});
|
||||
// note we don't subtract from the budget for the outer array;
|
||||
// it's "invisible" from a topological perspective when reading the output TOML
|
||||
|
||||
auto children = random::integer(1, max_array_of_tables_children);
|
||||
while (budget && children)
|
||||
{
|
||||
auto& sub_tbl = add_to(arr, toml::table{});
|
||||
budget--;
|
||||
children--;
|
||||
|
||||
populate_table(sub_tbl, budget, nesting + 1);
|
||||
}
|
||||
}
|
||||
|
||||
// add nested tables
|
||||
if (budget && nesting < max_top_level_nesting && random::chance(0.33f))
|
||||
{
|
||||
auto children = random::integer(1, max_table_children);
|
||||
while (budget && children)
|
||||
{
|
||||
auto& sub_tbl = add_to(tbl, toml::table{});
|
||||
budget--;
|
||||
children--;
|
||||
|
||||
populate_table(sub_tbl, budget, nesting + 1);
|
||||
}
|
||||
}
|
||||
return val;
|
||||
}
|
||||
}
|
||||
|
||||
int main(int argc, char** argv)
|
||||
{
|
||||
int node_budget{};
|
||||
int budget{};
|
||||
bool comments = true;
|
||||
for (int i = 1; i < argc; i++)
|
||||
{
|
||||
std::stringstream ss{ argv[i] };
|
||||
int nodes;
|
||||
if ((ss >> nodes))
|
||||
node_budget += nodes;
|
||||
const auto arg = std::string_view{ argv[i] };
|
||||
if (arg == "--nocomments"sv)
|
||||
comments = false;
|
||||
else
|
||||
{
|
||||
std::istringstream ss{ std::string(arg) };
|
||||
int num;
|
||||
if ((ss >> num))
|
||||
budget += num;
|
||||
else
|
||||
{
|
||||
std::cerr << "Unknown argument '"sv << arg << "'\n";
|
||||
return 1;
|
||||
}
|
||||
}
|
||||
}
|
||||
if (node_budget <= 0)
|
||||
node_budget = 100;
|
||||
if (budget <= 0)
|
||||
budget = 100;
|
||||
|
||||
toml::table root;
|
||||
std::vector<toml::node*> tree;
|
||||
tree.push_back(&root);
|
||||
constexpr size_t max_depth = 10u;
|
||||
int container_min_values = 10;
|
||||
bool in_arr = false;
|
||||
while (budget > 0)
|
||||
populate_table(root, budget);
|
||||
|
||||
const auto add = [&](auto&& val) noexcept -> auto&
|
||||
if (comments)
|
||||
{
|
||||
using value_ref = decltype(val);
|
||||
using value_type = std::remove_reference_t<value_ref>;
|
||||
using node_type = toml::inserted_type_of<value_type>;
|
||||
std::stringstream src;
|
||||
src << root;
|
||||
|
||||
toml::node* new_node{};
|
||||
|
||||
// we're adding an element to an array
|
||||
if (auto arr = tree.back()->as_array())
|
||||
std::string line;
|
||||
std::ostringstream dest;
|
||||
while (std::getline(src, line))
|
||||
{
|
||||
arr->push_back(std::forward<value_ref>(val));
|
||||
new_node = &arr->back();
|
||||
}
|
||||
|
||||
// we're adding a new kvp to a table
|
||||
else
|
||||
{
|
||||
auto& table = tree.back()->ref<toml::table>();
|
||||
|
||||
const auto it =
|
||||
table.insert_or_assign(rand_string(rand<size_t>(1u, 4u), '-'), std::forward<value_ref>(val));
|
||||
|
||||
new_node = &it.first->second;
|
||||
}
|
||||
|
||||
// we added a new array or table, so now we need to step into it
|
||||
if constexpr (toml::is_container<value_type>)
|
||||
{
|
||||
tree.push_back(new_node);
|
||||
container_min_values = rand(1, 4);
|
||||
in_arr = toml::is_array<value_type>;
|
||||
if constexpr (toml::is_array<value_type>)
|
||||
tree.back()->as_array()->reserve(static_cast<size_t>(container_min_values));
|
||||
}
|
||||
else
|
||||
container_min_values--;
|
||||
|
||||
node_budget--;
|
||||
return *new_node->as<node_type>();
|
||||
};
|
||||
|
||||
while (node_budget)
|
||||
{
|
||||
if (!in_arr && rand(100) >= 75)
|
||||
{
|
||||
if (container_min_values <= 0 && tree.size() < max_depth)
|
||||
add(toml::table{}).is_inline(tree.size() >= max_depth - 2u && rand(100) >= 85);
|
||||
}
|
||||
else
|
||||
{
|
||||
toml::node_type new_node_type;
|
||||
if (auto arr = tree.back()->as_array(); arr && !arr->empty())
|
||||
new_node_type = arr->front().type();
|
||||
if (line.empty())
|
||||
{
|
||||
// occasionally dump a paragraph comment at the top-level of the document
|
||||
if (random::chance(0.20f))
|
||||
{
|
||||
auto lines = random::integer(1, 8);
|
||||
while (lines--)
|
||||
dest << "\n# "sv << random::string(random::integer(4u, 8u));
|
||||
dest << "\n"sv;
|
||||
}
|
||||
}
|
||||
else
|
||||
new_node_type = static_cast<toml::node_type>((rand() % 8) + 2);
|
||||
|
||||
switch (new_node_type)
|
||||
{
|
||||
case toml::node_type::array:
|
||||
if (container_min_values <= 0 && tree.size() < max_depth)
|
||||
add(toml::array{});
|
||||
break;
|
||||
dest << line;
|
||||
|
||||
case toml::node_type::string: add(rand_string(rand<size_t>(8u))); break;
|
||||
|
||||
case toml::node_type::integer: add(rand()); break;
|
||||
|
||||
case toml::node_type::floating_point: add(rand(10001u) / 10000.0); break;
|
||||
|
||||
case toml::node_type::boolean: add(!rand(2u)); break;
|
||||
|
||||
case toml::node_type::date: add(rand_date()); break;
|
||||
|
||||
case toml::node_type::time: add(rand_time()); break;
|
||||
|
||||
case toml::node_type::date_time:
|
||||
add(rand(100) >= 75
|
||||
? toml::date_time{ rand_date(), rand_time() }
|
||||
: toml::date_time{ rand_date(),
|
||||
rand_time(),
|
||||
toml::time_offset{ rand<int8_t>(-11, 12), rand<int8_t>(-45, +46) } });
|
||||
break;
|
||||
}
|
||||
if (container_min_values <= 0 && tree.size() >= 2u && rand(100) >= 85)
|
||||
{
|
||||
tree.pop_back();
|
||||
in_arr = !tree.empty() && tree.back()->type() == toml::node_type::array;
|
||||
// occasionally add short comments at end of non-blank lines
|
||||
if (random::chance(0.30f))
|
||||
dest << " # "sv << random::string(random::integer(1u, 3u));
|
||||
}
|
||||
|
||||
dest << "\n"sv;
|
||||
}
|
||||
std::cout << dest.str();
|
||||
}
|
||||
else
|
||||
{
|
||||
std::cout << root << "\n";
|
||||
}
|
||||
|
||||
std::cout << root << "\n";
|
||||
return 0;
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user