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.tick_count(), 70);
|
||||||
assert_eq!(recording.end_tick(), 120);
|
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));
|
assert_eq!(recording.replay(), Ok(world));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user