Commit graph Aetheria/tests
Author SHA1 Message Date
Meta Vens
78c6c78e60 SignatureTests: light every channel in the sum fixture (a mutant dropping Reflection from the sum survived on a zero)
Builds and passes are verified at the previous commit; this commit changes the test only.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-11 09:59:05 +02:00
Meta Vens
1d14edea3a Signatures: every light signature names its channel and item through Entity.SetSignature
VisibilitySources holds Signature (channel, strength, item); the eight direct writes
go through the one writer; Visibility stays the sum; SignatureOn(channel) splits it.
VisibilityData gains Key(3) Channel. No number changes. Not yet built or tested at this
commit (verification follows).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-11 09:13:24 +02:00
Meta Vens
93b7ff8da0 Merge eureka/aetheria-release-envelope-from-columns: the evasion envelope is the box extremes of the thrusters' columns at live thrust
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-11 04:46:26 +02:00
Meta Vens
ab80aa8f73 Envelope: pin each side as the sum of its thrusters; drop the unused ManoeuvreEnvelope operator +; document Column(Thrust) against the allocator's Column(NominalThrust)
Builds not verified yet at this commit; verification follows on Yggdrasil.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-11 04:08:09 +02:00
Meta Vens
e386e1c437 Merge eureka/aetheria-release-lock-warning: a painted ship owns a typed incoming-lock warning
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-11 03:53:33 +02:00
Meta Vens
7437b13a5b TheEnvelopeIsWhatTheGrantAllows: let the grant settle one tick
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-11 01:21:05 +02:00
Meta Vens
844e363cbf Envelope tests under a partial and a nil power grant: live thrust and the unpowered gate are pinned (two Stryker-style hand mutants survived without them)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-11 01:19:06 +02:00
Meta Vens
02ca78f1e1 ReachIsWhatTheShipCanDo: the Longinus's reach is bounded above by the allocated reach (1.3 nose-on, 1.2 broadside), not open
Finding cut-thrust-allocator.s3.longinus-envelope-unbounded. The allocated reach carries the envelope's turn terms, which now include the
drives' yaw, so the measured broadside lower bound moves from .9 to .85 of it.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-11 00:26:43 +02:00
Meta Vens
3056171c41 TheEnvelopeCountsTheMains: yaw is rad/s, fixture threshold .1
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-11 00:23:07 +02:00
Meta Vens
db3103a026 Envelope from columns: Ship.RecalculateEnvelope sums the thruster columns' box extremes; Thruster.Manoeuvre and TorqueFloor deleted
Unverified at this commit (first build still to run); ceiling test not yet restored.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-11 00:14:31 +02:00
Meta Vens
efaa8f5b54 LockWarningTests: pin the full-lock strength through the launcher's own Execute (a zone tick resolves the shot a full lock fires) 2026-10-10 23:45:21 +02:00
Meta Vens
230aeccdd3 Merge thrust-allocator-wire: Ship.Update hands intent and live columns to ThrustAllocator
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

# Conflicts:
#	tests/Aetheria.Shared.Tests/RestoredHullsTests.cs
2026-10-10 23:44:54 +02:00
Meta Vens
a403b44ab5 LockWarningTests: a full lock fires and spends the launcher's lock; read the emitter's own Lock only below it 2026-10-10 23:43:03 +02:00
Meta Vens
3022741745 LockWarningTests: author the launcher as LauncherData (the catalog round-trips it); last commit's tests did not run 2026-10-10 23:41:54 +02:00
Meta Vens
1c5c602054 Lock warning fix 1: publish paints in a zone phase, one lock-indicator curve, strength and progress-term pins
- Zone.Update publishes every entity's paints before any entity updates (Entity.PublishPaints), so a broken lock clears on the same tick whatever the entity order.
- ActionGameManager.ApplyLockProgress is the one lock-indicator curve, called by the outgoing and the incoming indicator.
- LockWarningTests drive the real LockWeapon through Zone.Update; pins on strength across 0.15..1.0, the direction and sensor progress terms, and both entity orders.

Not yet run: this commit's tests have not been built.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-10 23:29:27 +02:00
Meta Vens
91fe002596 ThrottleLock comment describes the floor; test pins the wormhole gate on the allocator
Builds: not yet verified at this commit.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-10 22:19:37 +02:00
Meta Vens
8d9acf269d Package recentres on the grid's centre of mass and generates map icon, shield, tractor; no collider
AetherDb ship-authoring centre prints Shape.CenterOfMass; Package asks it and moves Ship Root so that point sits
at the world origin, after regenerating the unowned map icon, shield and tractor from the render meshes (Keep
leaves one alone). Package never makes a hull collider (ruling package-frame-defer-collider). smoke_package's
bound-collection rollback cases now rebind to a different path so a rollback that restores keys but not values fails.

C# not yet built when committed; the Blender smokes and Python unit tests pass.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-10 21:02:22 +02:00
Meta Vens
e1788e19c1 Tests: the Longinus's reach bound is derived from the allocator's own push, not a widened constant; stale mixer comments and unused using UniRx removed
Builds; not yet run (the run follows).
2026-10-10 20:32:18 +02:00
Meta Vens
5a6e81db75 wip reach probe 2026-10-10 20:23:27 +02:00
Meta Vens
54ac0fcfa7 Merge eureka/aetheria-release-ships-addon-frame-r4: ships authoring tool and add-on frame
# Conflicts:
#	tests/Aetheria.Shared.Tests/ShipSchemaPinTests.cs
2026-10-10 19:54:03 +02:00
Meta Vens
90f1775cb9 LockWarningTests: a paint waiting in the inbox does not outlive a deactivation
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-10 19:49:56 +02:00
Meta Vens
66641b46de ThrustAllocatorTests: throttles stay in bounds and floors hold wherever the solve ends
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-10 19:47:53 +02:00
Meta Vens
6fff037ac7 LockWarningTests: find the launcher gear by its weapon behaviour
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-10 19:46:48 +02:00
Meta Vens
9f779d42c0 ThrottleLockTests: the twin comparison reads to the solver's precision (1e-4)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-10 19:42:37 +02:00
Meta Vens
033d37eda0 LockWarningTests: build the launcher as the existing lock fixtures do (a plain gear, the LockWeapon beside it)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-10 19:41:04 +02:00
Meta Vens
9ff6e4ba42 Tests: the floor's stick-independence at the allocator; throttle-lock twin diagnostics
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-10 19:39:42 +02:00
Meta Vens
3400268681 Tests: forward floor under the lock, thermal death tick, nominal columns under total brownout
Not yet run; this commit may not pass. Co-Authored-By below.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-10 19:26:51 +02:00
Meta Vens
e5cfc0d676 Lock warning: a painted ship owns a typed incoming-lock warning carrying the lock's strength
LockWeapon.Execute paints its target with its own Lock (the one value the outgoing indicator also reads);
Entity publishes the one-tick inbox as IncomingLocks; the HUD shows one incoming indicator on the strongest
warning with the outgoing indicator's curves. Unity HUD code not compiled here; tests not yet run at this commit.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-10 19:25:22 +02:00
Meta Vens
caa424f424 BrownoutTests: a throttle under the old .01 gate still asks for its power
Hand mutant powerrequest-gate-01 survived: the gate's only reach is the energy asked.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-10 16:08:04 +02:00
Meta Vens
0caf1fa525 ConsumablesFirstSetCommandTests: the landed designs carry the thermal pins and linear Quality terms (the shipped-catalog pins cannot see the command)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-10 15:53:25 +02:00
Meta Vens
b517642cd5 ConsumablesFirstSetTests: conductivity measured at 1; the thermal pins hold
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-10 15:53:07 +02:00
Meta Vens
3cb721e130 ConsumablesFirstSetTests: specific heat measured at 1
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-10 15:52:13 +02:00
Meta Vens
e2d421621d ConsumablesFirstSetTests: pin the quality exponent and thermal constants; command test: dry run writes nothing, re-run is a no-op
The two Lows from Soul s1 (follow-up catalog-merge-replay-order). The thermal constants are placeholders
(-1) in this commit: it builds and fails by design, the next commit pins the measured values.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-10 15:49:27 +02:00
Meta Vens
4d1635b472 Merge origin/master (verse-grammar) into eureka/aetheria-release-consumables-first-set
GameData/Aetheria.cc is master's blob, not this branch's; the consumables-first-set
apply is replayed in the next commit. The AetherDb command list takes both new
commands. This merge commit does not build until the apply and test seeding follow.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-10 15:47:01 +02:00
Meta Vens
5a2f44db94 ThrottleLockTests: a full stick is the hull's whole forward thrust
Hand mutant move-clamped (forward intent capped at .9) survived the .5 bounds.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-10 15:43:52 +02:00
Meta Vens
35af29304e ConsumableSupplyTests: seed the VerseGrammar global (master's new test used TestCatalogGlobal, which verse-grammar retired)
Mechanical merge fix. The merge commit before this does not build.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-10 15:34:06 +02:00
Meta Vens
c4578cbd1f Merge origin/master into ghostlight-verse/verse-grammar
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-10 15:32:31 +02:00
Meta Vens
859ecad83a verse-grammar apply: the grammar update builds a new record instead of editing the cached one; replace test compares fields
The command mutated the cache's own VerseGrammar before the batch upsert, so the upsert was redundant and two Soul
mutants (update branch dropped; Same ignoring description or render path) survived: the replace test judged the result
with the same Same() the command uses. The test now reads the fields. Unrun until the full job.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-10 14:39:44 +02:00
Meta Vens
6666f81385 Tests: the tiny-imbalance flight runs six seconds; the stick's length and no stick are pinned
The Longinus the fixture builds has no heatsinks: its drives overheat and shut down at
about seven seconds (measured: drift -0.006 deg to tick 360, then the thermal shutdown),
so the 600-tick flight of the spec reads the shutdown, not the allocator.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-10 14:29:18 +02:00
Meta Vens
7378c8f1a8 ThrustAllocationTests: fix the diagnostic string (does not build the previous commit)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-10 14:27:35 +02:00
Meta Vens
158aeecf70 ThrustAllocationTests: probe the tiny-imbalance drift (temporary diagnostics)
Does not claim green.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-10 14:26:50 +02:00
Meta Vens
95a1395235 ThrustAllocationTests: heat the degraded drive stepwise; report the drift
The commit does not claim a green run; both tests were red in the previous run.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-10 14:25:38 +02:00
Meta Vens
ab450e72d3 Tests follow the allocator: warm-up, free thruster power, heat-detuned drives
The allocator reads Item.Active every tick, so fixtures that fire a thruster on their
first update warm its performance first; flight fixtures take the thrusters' energy draw
to zero so a brownout does not scale the turn; the Duel drives are mismatched after they
heat apart, and degraded by heat (the Large Drive has no durability term); the
consumer sits at (2,1), the Skiff's interior centre column. ReachIsWhatTheShipCanDo's
Longinus ceiling is 1.3 (measured 1.195 nose-on, 1.249 broadside).

Previous test commits do not build or pass; this one is unverified until the full run.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-10 14:24:05 +02:00
Meta Vens
cf6503bf4e Merge origin/master into consumable-supply 2026-10-10 14:05:56 +02:00
Meta Vens
c5e8e45e61 VerseGrammarTests: Author keeps its own grammar parameter (6c1b448c renamed it too; the test project did not compile)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-10 14:05:04 +02:00
Meta Vens
6c1b448c0e VerseGrammarTests: RootWith parameter does not shadow the loop variable (972848cb did not compile the test project)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-10 14:03:57 +02:00
Meta Vens
972848cb5f VerseGrammar: Open refuses a role named actor and two verbs with one name; edge and command-update pins
ValidateAll (one owner, called by AetheriaStores.Open) refuses duplicate verb names; Validate refuses the reserved role
name actor. Tests pin the name-class edges (a z 0 9 _), a null role element, the starter verb replaced when only its
description or render path differs, the grammar global updated in place, and the fixture's second allegiance and zero-role
speak. The test's scoped registry is TestCatalog.Registry(). Builds; unverified until the full run.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-10 14:02:10 +02:00
Meta Vens
3f5eb6b5c3 Merge origin/master into ghostlight-verse/verse-grammar
Takes master's catalog pointer (GameData/Aetheria.cc) and its TestCatalog.Registry fixture path;
VerseGrammar is the global scratch catalogs author (TestCatalogGlobal stays deleted: the shipped
registry now has a real global, so a test-only second one would have to be authored beside it).
StatResolverTests, TestCatalogTests and AetheriaStoresTests author VerseGrammar.

Does not pass the suite: the catalog is master's and holds no grammar until the verse-grammar apply commit follows.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-10 14:00:03 +02:00
Meta Vens
ffda2a8a76 Tests: add the missing usings (UniRx, System.Linq)
Fixes the compile errors of the previous commit; that commit does not build.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-10 13:47:58 +02:00
Meta Vens
df61900db8 Rewrite the tests that read the mixer; add the ship-level allocator tests
EvasionTerm: the aggregate reads go; SteeringTests: ATurnIsThatFractionOfTheHullsTurn;
Brownout/ConditionRatio seat the lone thruster on the centre column; ThrottleLockTests
compare a locked ship to an unlocked twin through the same ticks; ThrustAllocationTests
(Duel flight, lost/degraded/repaired drives, dead thrusters, full turn, arena-stepped
flight); ThrustAllocatorTests.AMicroIntentIsServed.

Not yet verified green at this commit; the test project builds only against the
deleted aggregates' removal in the previous commit.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-10 13:44:22 +02:00