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:
@@ -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));
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user