public void ShouldBeAbleToSaveMachineState()
        {
            Memory memory = new Memory();
            memory.LoadInstructions(SamplePrograms.HelloWorldInstructions);

            Machine expectedMachine = new Machine(memory, new Registers());
            expectedMachine.Run();

            StateSaver stateSaver = new StateSaver();
            stateSaver.SaveMachine(expectedMachine, _machineSaveFile);

            FileAssert.Exists(_machineSaveFile);

            Machine actualMachine = stateSaver.LoadMachine(_machineSaveFile);

            Assert.AreEqual(expectedMachine.State, actualMachine.State);
            Assert.AreEqual(expectedMachine.InstructionRegister, actualMachine.InstructionRegister);
            Assert.AreEqual(expectedMachine.ProgramCounter, actualMachine.ProgramCounter);
        }