From d986f2a5dbbc87076699adee581f9499114f46f7 Mon Sep 17 00:00:00 2001 From: Steven Wroblewski Date: Thu, 1 Oct 2026 13:20:15 +0200 Subject: [PATCH] Test: Startzeitpunkt einer dekodierten Aufzeichnung ist festgeschrieben MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 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 --- core/tests/replay.rs | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/core/tests/replay.rs b/core/tests/replay.rs index 51711cf..53f4e1e 100644 --- a/core/tests/replay.rs +++ b/core/tests/replay.rs @@ -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)); }