Commit d6ea798
committed
feat(tests): the kitchen sink -- every 6E rule no corpus character takes, oracle-verified
PeterB: "the objects are derived from the rules -- not the corpus. so
regardless if a char exercises it, it needs to be future-proofed. there
are some obscure powers no one ever takes. but someone will some day."
Measured against the full registry and all 655 oracle fixtures, 24
registered 6E rules appeared in no character at all: seven powers
(ADJACENT, ADJACENTFIXED, DIFFERINGMODIFIER, DIMENSIONALALL,
DIMENSIONALGROUP, ENDURANCERESERVEREC, RAPID), thirteen modifiers
(CANBEMISSILEDEFLECTED, CUMULATIVE, DELAYEDEFFECT, EXPLOSION,
HALFRANGEMODIFIER, NND, NOTTHROUGHMINDLINK, ONLYONAPPROPRIATETERRAIN,
ONLYTOSTARTING, SUBJECTTORANGEMODIFIER, TIMELIMIT, TURNMODE, VISIBLE),
CUSTOMTALENT, FAVOR, RESOURCE_POOL and RANGEDDC.
tests/kitchen_sink.py generates one character carrying all of them.
Deterministic (fixed ids, no timestamps), written to a temp dir at
collection, so it is never redistributed and never skips -- it is
nobody's build. tests/fixtures/authored/KitchenSink.json is the Java
oracle's verdict on it, compared per object by the same harness as
Ravel, Bokor and PowerLad: 41 objects, 0 mismatches on cost or display,
468 = 468 total points.
It found two defects on its first run, neither reachable from the corpus:
* DIFFERINGMODIFIER charged 5 real where HD charges 0. The port never
implemented getRealCostPreList, whose last line is `ret -=
getLevels()`: the levels are points already paid for, only the
increment is charged. Its display was never ported either.
* RAPID printed "Rapid ( x10)" without " with Sight Group". Its display
override read _selected_option, always None for a sense adder --
the base class's own docstring says so and uses option_alias.
Also restored PowerLad.hdc to the authored directory (it was on the
Desktop), so the no-skips guard's four skips are gone.
1615 passed, 0 skipped.1 parent 3b4cacf commit d6ea798
5 files changed
Lines changed: 1394 additions & 3 deletions
File tree
- kirby_cost/objects/powers
- tests
- fixtures/authored
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
6 | 6 | | |
7 | 7 | | |
8 | 8 | | |
| 9 | + | |
9 | 10 | | |
10 | 11 | | |
11 | 12 | | |
| |||
50 | 51 | | |
51 | 52 | | |
52 | 53 | | |
| 54 | + | |
| 55 | + | |
| 56 | + | |
| 57 | + | |
| 58 | + | |
| 59 | + | |
| 60 | + | |
| 61 | + | |
| 62 | + | |
| 63 | + | |
| 64 | + | |
| 65 | + | |
| 66 | + | |
| 67 | + | |
| 68 | + | |
| 69 | + | |
| 70 | + | |
| 71 | + | |
| 72 | + | |
| 73 | + | |
| 74 | + | |
| 75 | + | |
| 76 | + | |
| 77 | + | |
| 78 | + | |
| 79 | + | |
| 80 | + | |
| 81 | + | |
| 82 | + | |
| 83 | + | |
| 84 | + | |
| 85 | + | |
| 86 | + | |
| 87 | + | |
| 88 | + | |
| 89 | + | |
| 90 | + | |
| 91 | + | |
| 92 | + | |
| 93 | + | |
| 94 | + | |
| 95 | + | |
| 96 | + | |
| 97 | + | |
| 98 | + | |
| 99 | + | |
| 100 | + | |
| 101 | + | |
| 102 | + | |
| 103 | + | |
| 104 | + | |
| 105 | + | |
| 106 | + | |
| 107 | + | |
| 108 | + | |
| 109 | + | |
| 110 | + | |
| 111 | + | |
| 112 | + | |
| 113 | + | |
| 114 | + | |
| 115 | + | |
| 116 | + | |
| 117 | + | |
| 118 | + | |
| 119 | + | |
| 120 | + | |
| 121 | + | |
| 122 | + | |
| 123 | + | |
| 124 | + | |
| 125 | + | |
| 126 | + | |
| 127 | + | |
| 128 | + | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
36 | 36 | | |
37 | 37 | | |
38 | 38 | | |
39 | | - | |
| 39 | + | |
| 40 | + | |
| 41 | + | |
| 42 | + | |
| 43 | + | |
| 44 | + | |
| 45 | + | |
| 46 | + | |
| 47 | + | |
40 | 48 | | |
41 | | - | |
42 | | - | |
| 49 | + | |
| 50 | + | |
| 51 | + | |
43 | 52 | | |
44 | 53 | | |
45 | 54 | | |
| |||
0 commit comments