Test: Startzeitpunkt einer dekodierten Aufzeichnung ist festgeschrieben

Recording::from_bytes leitet start_tick aus der gespeicherten Startwelt
ab. Kein Test prüfte das: Setzte ein Fehler start_tick beim Dekodieren
auf 0, blieb er unbemerkt, und eine so dekodierte Aufzeichnung würde
beim erneuten Kodieren oder Verlängern abstürzen.

Der Test a_recording_can_start_in_the_middle_of_a_session kodiert die
Aufzeichnung jetzt, dekodiert sie wieder und prüft, dass sie beim
selben Takt endet und der ursprünglichen gleicht. Mit start_tick = 0
beim Dekodieren schlägt er fehl (Endtakt 70 statt 120).

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
This commit is contained in:
Steven Wroblewski
2026-10-01 13:20:15 +02:00
parent 8aaeae5cf7
commit d986f2a5db
+7
View File
@@ -106,6 +106,13 @@ fn a_recording_can_start_in_the_middle_of_a_session() {
}
assert_eq!(recording.tick_count(), 70);
assert_eq!(recording.end_tick(), 120);
// Decoding derives the start tick from the stored start world. The
// decoded recording must end at the same tick and equal the original.
let (decoded, _) = Recording::from_bytes(&recording.to_bytes(&world)).unwrap();
assert_eq!(decoded.end_tick(), 120);
assert_eq!(decoded, recording);
assert_eq!(recording.replay(), Ok(world));
}