Commit Graph

110 Commits

Author SHA1 Message Date
lilleman 5971037362 Test that the fejkdata binary without --seed draws a new seed each run 2026-10-12 18:34:15 +02:00
lilleman 9528ecd8b0 Answer architecture round 1: a custom CLI names itself by its file, --version names its module beside fejkdata's and follows a replace, the module path comes from the library's type, the end-to-end test runs main in a subprocess, the CLI tests find the shipped modules by their manifests, and Your own CLI sits under Library 2026-10-11 21:19:57 +02:00
lilleman 35f1eeffb2 Make the CLI the library call cli.Main, with fejkdata's own main one line over data.Modules() 2026-10-11 21:19:57 +02:00
lilleman 35487cd36d Test the CLI as package cli's Main over the modules it is given, and fejkdata's main over the shipped packages 2026-10-11 21:19:57 +02:00
lilleman 26f3c95031 Test that each shipped module sits in the folder its namespace spells, that a locale alone fails at its address naming the missing geo, and that a mounted root folder is named by its namespace 2026-10-11 16:02:48 +02:00
lilleman 29a76d5d9a Test that a manifest's namespace mounts its source under a dot path, that each shipped module loads from data/<lowered namespace>, and that a load failure's note reaches Fake, FakeTemplate and FakeStruct once 2026-10-11 16:02:48 +02:00
lilleman b8eba1eb35 Ship en_US, sv_SE, misc, geo/SE and geo/US as Go packages exporting FS, listed by data.Modules(), and fail a bare New naming WithDataFS 2026-10-11 16:02:48 +02:00
lilleman 3368f085fd Test that the shipped data loads from a Go package per module, that a bare New fails naming WithDataFS, and that a read nothing provides names the modules its reader's manifest reads 2026-10-11 16:02:48 +02:00
lilleman c783d4af23 Answer architecture round 1: one owner keeps a folder's loaded and unloaded names apart, each loaded category is checked against its index entry, addSource returns what it replaced, the manifest cache goes, ErrLoad exits 1, and the docs say what New and Fake now refuse 2026-10-10 11:24:32 +02:00
lilleman 642fe3a506 Test that a stale index entry fails its first reach naming the manifest, that such a failure wraps ErrLoad and exits 1, and that a data path naming a file says it is no directory 2026-10-10 11:24:32 +02:00
lilleman 48e2b1ce9f Reword the bindOptions, parseInput and datatypeOf comments, the --help paragraph on blank stdin, and the empty-table and no-datatype errors 2026-10-08 12:37:59 +02:00
lilleman 9baa77c752 Drop the CLI's no-data hint, keep the number underflow rule in grammar/number.go, and name the JSON a template may be 2026-10-08 12:37:59 +02:00
lilleman 295347a455 Test that --no-shipped-data alone reports the library's no-data note as it is 2026-10-08 12:37:59 +02:00
lilleman 357a2a276d Print the CSV header at -n 0, refuse --separator with a record format, refuse a date field in time(), read a bare number template as a format string, and say when no data is loaded 2026-10-08 12:37:59 +02:00
lilleman 332b99ad88 Test the CSV header at -n 0, --separator refused with a record format, a date field in time() refused, a bare number template printed as written, and the no-data note 2026-10-08 12:37:59 +02:00
lilleman c337dc4436 Test what stability round 1 found untested: a parent's zero-weight rows, a frame per draw of a choice item, ignored flags against the run without them, two leading slashes, and an option too close to 0 2026-10-08 12:37:59 +02:00
lilleman 8f1cd76bf1 Render blank stdin, read a category's own fields as fresh draws, refuse a bare number or boolean in a record column, and refuse a one-item choice of weight 0 2026-10-08 12:37:59 +02:00
lilleman dd09d7ae82 Test blank stdin rendering, a category reading itself as a fresh draw, a bare number or boolean refused in a record column, a one-item choice of weight 0 refused, and a hidden rows file read 2026-10-08 12:37:59 +02:00
lilleman 3dfaa8d0fa Let --repeat 0 print nothing, or an empty array under --format json 2026-10-08 12:37:59 +02:00
lilleman 24a4b6ed24 Test --repeat 0 writing no render and no record 2026-10-08 12:37:59 +02:00
lilleman f036f859d6 Load a generator with no data, a repeat or count of 0, and a name a choice's item binds for that item's own reads 2026-10-08 12:37:59 +02:00
lilleman 1e159fdf3a Test a generator with no data, a repeat or count of 0 rendering nothing, and a name a choice's item binds and reads 2026-10-08 12:37:59 +02:00
lilleman ee236d7955 Load whatever is well-formed and means one thing: ignore a part with no effect, print a constant sample, render any JSON value, draw no weight-0 item, and let a name, a rows file, a struct or a CLI flag go unused 2026-10-08 12:37:59 +02:00
lilleman 052a52fc7a Test that what is well-formed and means one thing loads: ignored parts, constant samples, any JSON value, weight 0, an unread name, a stray rows file, a tagless struct and flags with no effect 2026-10-08 12:37:59 +02:00
lilleman 57bd06c16f Answer architecture round 3 and principles audits round 2: a weight drawn against nothing names the drop, null alone on stdin names jq, the CLI-copy decision names hasEmptySegment, the padding and layout decisions quote what they catch, and the padded binding is filed 2026-10-08 12:37:59 +02:00
lilleman c8193da3d0 Test a weight of 0 drawn against nothing naming the drop, and null alone on stdin naming jq 2026-10-08 12:37:59 +02:00
lilleman d8acc9f3f3 Load a default written out in every position, refuse null outside a column again, read a field once per alternation, refuse an empty segment in the CLI's lone reference, and hold a declared datatype as one value 2026-10-08 12:37:59 +02:00
lilleman 49736bd2b6 Test that a default written out loads in every position, null outside a column is refused, an alternation reads a field once, and the CLI's lone reference refuses an empty segment 2026-10-08 12:37:59 +02:00
lilleman 6b26b18104 Let a declared datatype win over a column read, count a repeat as written, refuse null alone on stdin and a second leading slash, and hand NewTemplate stdin as sent 2026-10-08 12:37:59 +02:00
lilleman 1a022dbd79 Test a declared datatype over a column read, repeats counting as written, null alone on stdin, one leading slash, and the CLI's lone reference against the grammar 2026-10-08 12:37:59 +02:00
lilleman e63efe327f Load each spelling that only restated a shorter one, as that shorter form 2026-10-08 12:37:59 +02:00
lilleman 91b65e3ded Test that each spelling goal 5.7 no longer refuses loads as its shorter form 2026-10-08 12:37:59 +02:00
lilleman 3e932d5e5f Answer architecture round 5, stability round 4 and product-owner round 4: an argument that is a lone reference is echoed back, and a hint for a template holding a backslash pipes it through printf 2026-10-07 21:58:29 +02:00
lilleman 75184b44cb Answer prose round 3: --format text names the default, the record sentence in --help reads on one pass, and the padded-JSON decision points at the stdin ruling 2026-10-07 21:58:29 +02:00
lilleman 0de54c3b15 Answer architecture round 4, stability round 3, product-owner round 3 and prose round 2: stdin trims JSON's own whitespace around any JSON value, the padded-JSON title names NewTemplate and the CLI, the JSON examples hold no backslash for echo, an argument's example is built only from a template or a valid reference and shell-quoted, the text scope of adding nothing, blank stdin, and the stdin decision in four paragraphs 2026-10-07 21:58:29 +02:00
lilleman e5babf413d Answer architecture round 3, stability round 2, product-owner round 2 and prose round 1: the CLI renders exactly the template on stdin and adds nothing, --separator defaults to empty, whitespace around JSON is dropped, a lone reference under --format allows one newline, a blank stdin is refused, an unexpected argument names the spelling to use, and the prose names one lone reference 2026-10-07 21:58:29 +02:00
lilleman 58a7b16a7f Answer architecture round 2, stability round 1 and product-owner round 1: a format string on stdin keeps every byte while JSON or a lone reference drops one newline, an operand's error names stdin, a file or the pipe, {//x} is refused and "{/x}" read as its record, plain echo and a heredoc in the examples, goal 7 reads one command line, decision titles drop argument, and items 157 to 159 filed 2026-10-07 21:58:29 +02:00
lilleman 83b4b0bdf0 Answer architecture round 1: stdin drops one newline, \n or \r\n, and reaches the library unchanged, inputError names the input's fault, two decisions and item 110 stop naming a CLI argument, the gate exemption moves to the floor entry, and item 156 asks about the JSON string 2026-10-07 21:58:29 +02:00
lilleman 2bf043aefc Read the CLI's template from stdin, drop one newline ending it, trim the whitespace around a JSON template, and refuse an argument 2026-10-07 21:58:29 +02:00
lilleman b68ec83f29 Test the CLI reading its template from stdin, dropping one trailing newline, trimming around JSON and refusing an argument 2026-10-07 21:58:29 +02:00
lilleman ec1dcbf9d3 Answer prose round 1: name the parent after .., mark the step down as the one exception to the shared draw, and plainer errors 2026-10-05 00:23:18 +02:00
lilleman 406232e8f9 Answer stability round 1 and product-owner round 1: spell .. in the fence's and the link column's advice, take it in struct tags, and show the whole climb 2026-10-05 00:23:18 +02:00
lilleman bded47846d State the seed exception once, with pin-then-regenerate advice, and word --seed's help as the README's row 2026-10-04 17:17:46 +02:00
lilleman 6eb9880a3f Name the version in every seed promise, and say to regenerate seeded fixtures when it changes 2026-10-04 17:17:46 +02:00
lilleman a9448d1a99 Delete comments restating their code, and doc.go's partial list of draw fences 2026-09-30 22:01:04 +02:00
lilleman 21b48c8c41 Correct the false comments and delete dead code 2026-09-28 21:46:24 +02:00
lilleman fab6ab4f2e Move the project to GitHub, where a stranger can file an issue and open a PR 2026-09-21 00:30:16 +02:00
lilleman b0db82f2f1 Rename misc.country to misc.territory, name each one's sovereign state, and state the four data rules that settle it 2026-09-18 23:02:45 +02:00
lilleman e9d8603611 Expect misc.territory and the sovereign it names, in place of misc.country 2026-09-18 23:02:43 +02:00
lilleman 35dc998b03 Test that a fieldless path names its record and the quoting a shell needs 2026-09-18 20:43:37 +02:00