You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Tests: convert audit-flagged tests into TDD bug reproducers and strengthen oracles
Audit follow-up pass over the test suite, squashed from four commits. No engine
or production code is touched: red tests reproduce real defects and stay
failing until the engine is fixed; the rest of the strengthened tests pin the
contract where the engine is already correct.
- Rewrite the masking tests in the 12 masks-bug classes to assert the correct,
domain-expected behavior instead of pinning the engine's broken output:
AlertProcessingService inverted Greater/Less operators; degenerate Renko
bricks and the Heikin-Ashi Open outside [Low, High]; the candle leak after
SubscriptionFinished when Count is exhausted; VolumeProfile Value Area
boundary defects; Level1DepthBuilderManager leaking the managed depth
subscription id; invalid MarketDepth.Sparse books; OfflineMessageAdapter
addressing the replaced order Done to the wrong transaction id;
OrderLogMessageAdapter dropping the subscription id on built ticks;
OrderMatcher FOK destructive book consumption and empty ghost levels;
SecurityProvider dropping Skip in the lookup-all paging branch; Statistics
double-counting cumulative commission; SubscriptionOnlineManager misrouting
hist+live history and unsubscribe errors.
- Strengthen the audit's suspicious classes (vacuous, tautological, inert and
weak oracles) into load-bearing tests and reproduce the residual core bugs:
the FillGaps wrapper missing OwnInnerAdapter so Dispose does not cascade;
BasketRoutingManager duplicating the parent subscription id and dropping data
for pinned-adapter subscriptions; continuous-contract volume not reset on
rollover; Import losing sub-second precision and the missing board ExpiryTime
mapping; MarketOrderAlgo.IsFinished stuck after Cancel; ClearDatesCacheAsync
not invalidating the cached dates; string condition parameters dropped from
snapshot serialization; StorageBuffer buffering PositionChange with
EnabledPositions off; StrategyParamHelper distorted float/double optimization
ranges, off-by-one iteration count and bool GetRandom; the Renko volume
profile counting tick volume once per brick; hist+live children never
receiving their own subscription error; InMemorySecurityStorage ignoring the
forced flag and never matching code-only ids; DecomposedStrategy.CanAttach
claiming foreign orders.
- Unify Absolute protective units as an offset from the protected entry price
(the same entry +/- level formula the engine already applies to Percent) and
pin that contract consistently across the protection tests; the offset tests
fail against the current raw-price-level engine behavior. Add real activation
oracles for MarketOrderFlag and the limit close-by-timeout path.
- Reproduce the remaining audit bugs that need test doubles and add the first
ServerProtectiveBehaviour coverage via a mock adapter: the self-created
RemoteMarketDataDrive transport adapter never disposed; BasketMessageAdapter
dropping out-data for known pinned-adapter subscriptions; the
CandleBuilderManager Count leak for candles built from ticks; the
ServerProtectiveBehaviour isTake flag hard-coded to the condition interface
so stop-only registrations are mislabeled as takes. Absolute protective
levels are verified as offsets from entry, each side on its own registration.
0 commit comments