namespace STVrogue.TestInfrastructure { /// /// NOTE: This is for Part-2 of the project. /// /// /// A GamePlay represents a recorded run of a game, which can be replayed /// again to check some correctness property. The method /// runs a replay, and as it goes checks the property you give to it, whether /// the property is satisfied by the run, or violated. /// /// Being an interface, here we only define /// the signature of the methods relevant for doing a replay. To actually do a replay /// you need to implement this interface. /// The class has been designed to implement /// this interface. /// /// /// /// The type of the state of the game /// whose runs we want to replay. /// public interface GamePlay { /// /// Reset the recorded game-play. /// /// NOTE: reset your random generators too, if the replays /// might call them. /// public void ResetReplayState(); /// /// Return the id/name of this gameplay. /// public string ReplayId(); /// /// Replay this recorded gameplay to check the given correctness property. /// It returns Valid if the gameplay satisfied the property, or Invalid if the property /// is violated. /// It returns Inconclusive if neither Valid nor Invalid can be concluded. /// /// /// The correctness property to check. It is exprrssed as /// an instance of . /// public Judgement Satisfies(TemporalProperty phi); } }