Commit 7a58a6f
committed
feat(generator): full engine rewrite honouring every wizard knob
The vendored fm_generator was wiring a handful of parameters (feature
count, relation mix, bool-connective probs) and silently ignoring the
rest — Arithmetic level, Type level, aggregate functions, string
constraints, feature cardinality, GROUP_CARDINALITY toggle, attribute
type distribution, MIN/MAX_VARS_PER_CONSTRAINT, ENSURE_SATISFIABLE,
filename suffixes, PROB_LEN_FUNCTION, CTC_DIST_* — were all noop.
Changes
- Rewrite operations/generate_models.py so every Params field is
consumed. Added arithmetic, aggregate and string constraint builders
with correct operator distributions and gated by the level flags.
- Rewrite models/models.py with an ENSURE_SATISFIABLE retry loop
(pysat) and filename suffix composition from counts of features /
constraints.
- Expose missing knobs in the frontend: DIST_BOOLEAN/INTEGER/REAL/STRING
in step4 and CTC_DIST_BOOLEAN/INTEGER/REAL/STRING in step3, each
gated by the step2 major/minor level selection. Sum-to-1 validation
with live badges. Disabled probability fields submit 0.0 so inactive
types can't skew the distribution.
- Rebuild the fm_generator wheel shipped to Pyodide.
Tests
- New test_engine.py (31 cases): every level and probability knob
asserted directly against generate_single_model output.
- New test_wizard_outputs.py (140 cases): POST full wizard configs,
feed the resulting Params through the engine, parse the UVL and
assert the output matches what the user selected — level combos,
operator dominance, cardinality bounds, filename suffixes, etc.
- Updated legacy wizard-flow test defaults for the new required
dist fields.1 parent 563a87c commit 7a58a6f
10 files changed
Lines changed: 2275 additions & 134 deletions
File tree
- app/modules/generator
- assets/js
- templates/generator
- tests
- vendor/fm_generator/FMGenerator
- models
- operations
Binary file not shown.
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
732 | 732 | | |
733 | 733 | | |
734 | 734 | | |
| 735 | + | |
| 736 | + | |
| 737 | + | |
| 738 | + | |
| 739 | + | |
| 740 | + | |
| 741 | + | |
| 742 | + | |
| 743 | + | |
| 744 | + | |
| 745 | + | |
| 746 | + | |
| 747 | + | |
| 748 | + | |
| 749 | + | |
| 750 | + | |
| 751 | + | |
| 752 | + | |
| 753 | + | |
| 754 | + | |
| 755 | + | |
| 756 | + | |
| 757 | + | |
| 758 | + | |
| 759 | + | |
735 | 760 | | |
736 | 761 | | |
737 | 762 | | |
| |||
921 | 946 | | |
922 | 947 | | |
923 | 948 | | |
| 949 | + | |
| 950 | + | |
| 951 | + | |
| 952 | + | |
| 953 | + | |
| 954 | + | |
| 955 | + | |
| 956 | + | |
| 957 | + | |
| 958 | + | |
| 959 | + | |
| 960 | + | |
| 961 | + | |
| 962 | + | |
| 963 | + | |
| 964 | + | |
| 965 | + | |
| 966 | + | |
| 967 | + | |
| 968 | + | |
| 969 | + | |
| 970 | + | |
924 | 971 | | |
925 | 972 | | |
926 | 973 | | |
| |||
967 | 1014 | | |
968 | 1015 | | |
969 | 1016 | | |
| 1017 | + | |
| 1018 | + | |
| 1019 | + | |
| 1020 | + | |
| 1021 | + | |
970 | 1022 | | |
971 | 1023 | | |
972 | 1024 | | |
| |||
1085 | 1137 | | |
1086 | 1138 | | |
1087 | 1139 | | |
| 1140 | + | |
| 1141 | + | |
| 1142 | + | |
| 1143 | + | |
| 1144 | + | |
| 1145 | + | |
| 1146 | + | |
| 1147 | + | |
| 1148 | + | |
| 1149 | + | |
| 1150 | + | |
| 1151 | + | |
| 1152 | + | |
| 1153 | + | |
| 1154 | + | |
| 1155 | + | |
| 1156 | + | |
| 1157 | + | |
| 1158 | + | |
| 1159 | + | |
| 1160 | + | |
| 1161 | + | |
| 1162 | + | |
1088 | 1163 | | |
1089 | 1164 | | |
1090 | 1165 | | |
| |||
1300 | 1375 | | |
1301 | 1376 | | |
1302 | 1377 | | |
| 1378 | + | |
| 1379 | + | |
| 1380 | + | |
| 1381 | + | |
| 1382 | + | |
| 1383 | + | |
| 1384 | + | |
| 1385 | + | |
| 1386 | + | |
| 1387 | + | |
| 1388 | + | |
| 1389 | + | |
| 1390 | + | |
| 1391 | + | |
| 1392 | + | |
| 1393 | + | |
| 1394 | + | |
| 1395 | + | |
| 1396 | + | |
| 1397 | + | |
| 1398 | + | |
1303 | 1399 | | |
1304 | 1400 | | |
1305 | 1401 | | |
| |||
1343 | 1439 | | |
1344 | 1440 | | |
1345 | 1441 | | |
| 1442 | + | |
| 1443 | + | |
| 1444 | + | |
| 1445 | + | |
| 1446 | + | |
1346 | 1447 | | |
1347 | 1448 | | |
1348 | 1449 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
117 | 117 | | |
118 | 118 | | |
119 | 119 | | |
120 | | - | |
121 | | - | |
| 120 | + | |
| 121 | + | |
122 | 122 | | |
123 | 123 | | |
124 | 124 | | |
| |||
129 | 129 | | |
130 | 130 | | |
131 | 131 | | |
132 | | - | |
| 132 | + | |
| 133 | + | |
| 134 | + | |
| 135 | + | |
| 136 | + | |
| 137 | + | |
| 138 | + | |
133 | 139 | | |
134 | 140 | | |
135 | 141 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
31 | 31 | | |
32 | 32 | | |
33 | 33 | | |
| 34 | + | |
| 35 | + | |
| 36 | + | |
| 37 | + | |
| 38 | + | |
| 39 | + | |
| 40 | + | |
| 41 | + | |
| 42 | + | |
| 43 | + | |
| 44 | + | |
| 45 | + | |
| 46 | + | |
| 47 | + | |
| 48 | + | |
| 49 | + | |
| 50 | + | |
| 51 | + | |
| 52 | + | |
| 53 | + | |
| 54 | + | |
| 55 | + | |
| 56 | + | |
| 57 | + | |
| 58 | + | |
| 59 | + | |
| 60 | + | |
| 61 | + | |
| 62 | + | |
34 | 63 | | |
35 | 64 | | |
36 | 65 | | |
| |||
204 | 233 | | |
205 | 234 | | |
206 | 235 | | |
| 236 | + | |
| 237 | + | |
| 238 | + | |
| 239 | + | |
| 240 | + | |
| 241 | + | |
| 242 | + | |
| 243 | + | |
| 244 | + | |
| 245 | + | |
| 246 | + | |
| 247 | + | |
| 248 | + | |
| 249 | + | |
| 250 | + | |
| 251 | + | |
207 | 252 | | |
208 | 253 | | |
209 | 254 | | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1 | 1 | | |
2 | | - | |
| 2 | + | |
3 | 3 | | |
4 | 4 | | |
5 | 5 | | |
| |||
36 | 36 | | |
37 | 37 | | |
38 | 38 | | |
39 | | - | |
| 39 | + | |
| 40 | + | |
| 41 | + | |
| 42 | + | |
| 43 | + | |
| 44 | + | |
| 45 | + | |
| 46 | + | |
| 47 | + | |
| 48 | + | |
| 49 | + | |
| 50 | + | |
| 51 | + | |
| 52 | + | |
| 53 | + | |
| 54 | + | |
| 55 | + | |
| 56 | + | |
| 57 | + | |
| 58 | + | |
| 59 | + | |
| 60 | + | |
| 61 | + | |
| 62 | + | |
| 63 | + | |
| 64 | + | |
40 | 65 | | |
41 | 66 | | |
42 | 67 | | |
| |||
316 | 341 | | |
317 | 342 | | |
318 | 343 | | |
| 344 | + | |
| 345 | + | |
| 346 | + | |
| 347 | + | |
| 348 | + | |
| 349 | + | |
| 350 | + | |
| 351 | + | |
| 352 | + | |
| 353 | + | |
| 354 | + | |
| 355 | + | |
| 356 | + | |
| 357 | + | |
| 358 | + | |
| 359 | + | |
| 360 | + | |
| 361 | + | |
| 362 | + | |
| 363 | + | |
| 364 | + | |
| 365 | + | |
| 366 | + | |
| 367 | + | |
| 368 | + | |
| 369 | + | |
| 370 | + | |
319 | 371 | | |
320 | 372 | | |
321 | 373 | | |
| |||
0 commit comments